summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-21 07:05:01 (UTC)
committer zautrix <zautrix>2004-09-21 07:05:01 (UTC)
commit434ddaa08e0a650422ef271332a1d11879028095 (patch) (side-by-side diff)
treee4f229120d8bfa9febb7ab123b1311329f0e6aa4
parented49c55dac215ac2ed9286ebfc36e5a19417f0bb (diff)
downloadkdepimpi-434ddaa08e0a650422ef271332a1d11879028095.zip
kdepimpi-434ddaa08e0a650422ef271332a1d11879028095.tar.gz
kdepimpi-434ddaa08e0a650422ef271332a1d11879028095.tar.bz2
DTM sync fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp8
-rw-r--r--kabc/addressee.cpp28
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp57
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp119
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.h1
-rw-r--r--version2
6 files changed, 118 insertions, 97 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index adb451f..5fb49eb 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -239,5 +239,3 @@ void AddressBook::init(const QString &config, const QString &family )
QString fami = family;
- qDebug("new ab ");
if (config != 0) {
- qDebug("config != 0 ");
if ( family == "syncContact" ) {
@@ -608,3 +606,3 @@ void AddressBook::preExternSync( AddressBook* aBook, const QString& csd )
{
- qDebug("AddressBook::preExternSync ");
+ //qDebug("AddressBook::preExternSync ");
AddressBook::Iterator it;
@@ -618,6 +616,6 @@ void AddressBook::postExternSync( AddressBook* aBook , const QString& csd)
{
- qDebug("AddressBook::postExternSync ");
+ //qDebug("AddressBook::postExternSync ");
AddressBook::Iterator it;
for ( it = begin(); it != end(); ++it ) {
- qDebug("check uid %s ", (*it).uid().latin1() );
+ // qDebug("check uid %s ", (*it).uid().latin1() );
if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ||
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index e241281..31ce1d6 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -45,2 +45,4 @@ using namespace KABC;
static bool matchBinaryPattern( int value, int pattern );
+static bool matchBinaryPatternA( int value, int pattern );
+static bool matchBinaryPatternP( int value, int pattern );
@@ -383,3 +385,3 @@ void Addressee::setOriginalExternalUID( const QString &id )
mData->empty = false;
- qDebug("*******Set orig uid %s ", id.latin1());
+ //qDebug("*******Set orig uid %s ", id.latin1());
mData->originalExternalUID = id;
@@ -396,3 +398,3 @@ void Addressee::setUid( const QString &id )
detach();
- qDebug("****setuid %s ", id.latin1());
+ //qDebug("****setuid %s ", id.latin1());
mData->empty = false;
@@ -1292,3 +1294,3 @@ PhoneNumber Addressee::phoneNumber( int type ) const
for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
- if ( matchBinaryPattern( (*it).type(), type ) ) {
+ if ( matchBinaryPatternP( (*it).type(), type ) ) {
if ( (*it).type() & PhoneNumber::Pref )
@@ -1529,3 +1531,3 @@ Address Addressee::address( int type ) const
for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) {
- if ( matchBinaryPattern( (*it).type(), type ) ) {
+ if ( matchBinaryPatternA( (*it).type(), type ) ) {
if ( (*it).type() & Address::Pref )
@@ -1837,3 +1839,2 @@ QDataStream &KABC::operator>>( QDataStream &s, Addressee &a )
}
-
bool matchBinaryPattern( int value, int pattern )
@@ -1851 +1852,18 @@ bool matchBinaryPattern( int value, int pattern )
}
+
+bool matchBinaryPatternP( int value, int pattern )
+{
+
+ if ( pattern == 0 )
+ return ( value == 0 );
+ else
+ return ( (pattern |PhoneNumber::Pref ) == ( value |PhoneNumber::Pref ) );
+}
+bool matchBinaryPatternA( int value, int pattern )
+{
+
+ if ( pattern == 0 )
+ return ( value == 0 );
+ else
+ return ( (pattern | Address::Pref) == ( value | Address::Pref ) );
+}
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index bba5f9a..48d3985 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -131,3 +131,3 @@ bool ResourceSharpDTM::doOpen()
SlZDataBase::addressbookItems(),
- NULL, true);
+ NULL, false);
@@ -141,3 +141,3 @@ bool ResourceSharpDTM::doOpen()
mConverter = new SharpDTMConverter();
- bool res = mConverter->init();
+ bool res = mConverter->init();
if ( !res )
@@ -226,9 +226,10 @@ bool ResourceSharpDTM::save( Ticket *ticket )
KABC::Addressee addressee;
- qDebug("1NEW id is %d", id);
res = mConverter->sharpToAddressee( id, mAccess, addressee );
addressee.setUid((*it).uid() );
- addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM );
- changedAddressees.append( addressee );
+ addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
res = mAccess->finishEditCard(&id);
- qDebug("2NEW id is %d", id);
+ //qDebug("2NEW id is %d", id);
+ addressee.setExternalUID( QString::number( id ) );
+ addressee.setOriginalExternalUID( QString::number( id ) );
+ changedAddressees.append( addressee );
@@ -236,5 +237,3 @@ bool ResourceSharpDTM::save( Ticket *ticket )
qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
- else {
- qDebug("added card success ");
- }
+
}
@@ -257,2 +256,3 @@ bool ResourceSharpDTM::save( Ticket *ticket )
//changed
+ qDebug("changed ****");
res = mAccess->startEditCard(id);
@@ -271,5 +271,3 @@ bool ResourceSharpDTM::save( Ticket *ticket )
qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
- else {
- qDebug("change card succes ");
- }
+
}
@@ -282,38 +280,3 @@ bool ResourceSharpDTM::save( Ticket *ticket )
}
-
-
-
-
-
-
-
-
- }
-
-#if 0
- // old code
- CardId id = 0; // 0 means new card
- KABC::Addressee addressee = (*it);
-
- res = mAccess->startEditCard(id);
- if (res == true)
- {
- res = mConverter->addresseeToSharp( *it, mAccess, id );
- if (res == true)
- {
- res = mAccess->finishEditCard(&id);
- if (res == false)
- qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
}
- else
- {
- qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
- mAccess->cancelEditCard();
- }
- }
- else
- {
- qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1());
- }
-#endif
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
index b065bf3..f3bf2c5 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
@@ -28,2 +28,3 @@ $Id$
#include "kglobal.h"
+#include <qregexp.h>
@@ -33,2 +34,3 @@ $Id$
#include <sl/slcategories.h>
+#include <libkdepim/ksyncprofile.h>
//US #include <qpe/categoryselect.h>
@@ -75,2 +77,3 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
addr.setOriginalExternalUID( QString::number( contact ) );
+ addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
@@ -78,4 +81,4 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
// name
- qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!");
- addr.setFormattedName(db->readField(ZdbAdrs::FileAs));
+ //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!");
+ addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); // needs fix
@@ -88,13 +91,20 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
- // email
QString emailstr = db->readField(ZdbAdrs::Emails);
- qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
- QStringList emails = QStringList::split(",", emailstr);
-
+ emailstr.replace( QRegExp(","), " " );
+ emailstr.replace( QRegExp(";"), " " );
+ emailstr.replace( QRegExp(":"), " " );
+ //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
+ QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace());
+ bool defE = false;
+ bool found = false;
for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
- addr.insertEmail( *it, ((*it) == db->readField(ZdbAdrs::DefaultEmail)) );
+ if (found )
+ defE = false;
+ else
+ found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower());
+ addr.insertEmail( *it, defE );
}
-
- if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
- addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true);
+ if ( ! found )
+ if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
+ addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true);
@@ -200,3 +210,3 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
- addr.setRole( db->readField(ZdbAdrs::JobTitle) ); //?
+ addr.setRole( db->readField(ZdbAdrs::JobTitle) );
addr.setOrganization( db->readField(ZdbAdrs::Company) );
@@ -212,4 +222,4 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
QString gen = db->readField(ZdbAdrs::Gender);
- qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1());
- qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited");
+ //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1());
+ //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited");
@@ -221,10 +231,9 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
- QDate ann = db->readDateField(ZdbAdrs::Anniversary);
-
+ QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) );
if (ann.isValid()) {
QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
-//US
-// qDebug("QtopiaConverter::qtopiaToAddressee found:%s", dt.latin1());
+ //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1());
addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt);
}
+
@@ -233,3 +242,4 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
- QDate birthd = db->readDateField(ZdbAdrs::Birthday);
+ QDate birthd = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Birthday) );
+ //qDebug("birtd %s ", birthd.toString().latin1());
if (birthd.isValid())
@@ -242,4 +252,5 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
QString notes = db->readField(ZdbAdrs::Notes);
- notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n";
-
+ //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n";
+ if ( addr.url().isEmpty() )
+ addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) );
addr.setNote( db->readField(ZdbAdrs::Notes) );
@@ -251,3 +262,3 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
- qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" );
+ //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" );
QArray<int> catArray = db->readCategories();
@@ -268,2 +279,3 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
{
+ bool cellHome = false, cellWork = false;
// name
@@ -275,10 +287,10 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
- qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!");
+ //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() );
database->writeField(ZdbAdrs::FileAs, addr.formattedName());
-
+ database->writeField(ZdbAdrs::FullName, addr.formattedName());
// email
- qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!");
- qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee");
- QString emails = addr.emails().join(",");
+ //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!");
+ //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee");
+ QString emails = addr.emails().join(" ");
database->writeField(ZdbAdrs::Emails, emails );
@@ -307,4 +319,6 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell );
- if (!homemobile.number().isEmpty())
+ if (!homemobile.number().isEmpty()) {
database->writeField(ZdbAdrs::HomeMobile, homemobile.number());
+ cellHome = true;
+ }
@@ -332,4 +346,13 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell );
- if (!businessmobile.number().isEmpty())
- database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number());
+ if (!businessmobile.number().isEmpty()) {
+ cellWork = true;
+ database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number());
+ }
+ PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell );
+ if (!businessmobile.number().isEmpty()) {
+ if ( ! cellHome )
+ database->writeField(ZdbAdrs::HomeMobile, mobile.number());
+ else if (! cellWork )
+ database->writeField(ZdbAdrs::BusinessMobile, mobile.number());
+ }
@@ -352,8 +375,8 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" );
- qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1());
- qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?");
- qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee");
- if (gt = "male")
+ //qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1());
+ //qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?");
+ //qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee");
+ if (gt == "male")
database->writeField(ZdbAdrs::Gender, "male");
- else if (gt = "female")
+ else if (gt == "female")
database->writeField(ZdbAdrs::Gender, "female");
@@ -365,7 +388,12 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
- database->writeField(ZdbAdrs::Anniversary, dt );
-
+ if ( dt.isValid() ) {
+ QString dateS = KGlobal::locale()->formatDate(dt, true );
+ database->writeField(ZdbAdrs::Anniversary, dateS );
+ }
database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" ));
-
- database->writeField(ZdbAdrs::Birthday, addr.birthday().date());
+ dt = addr.birthday().date();
+ if ( dt.isValid() ) {
+ QString dateS = KGlobal::locale()->formatDate(dt, true );
+ database->writeField(ZdbAdrs::Birthday, dateS);
+ }
database->writeField(ZdbAdrs::Nickname, addr.nickName());
@@ -379,5 +407,10 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
- qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works");
+ //qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works");
QStringList cats = addr.categories();
+ int ii;
+ for ( ii = 0; ii < cats.count() ;++ii ) {
+ if ( !catDB->exists( cats[ii] ))
+ catDB->addCategory(cats[ii]);
+ }
QArray<int> iar;
@@ -385,2 +418,3 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
QArray<int> iar = catDB->ids(cats);
+ qDebug("***cat count is %d ", iar.count());
database->updateCategories(contact, iar);
@@ -390 +424,8 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
}
+
+QDate SharpDTMConverter::convertDate( QString s)
+{
+ QDate dt = KGlobal::locale()->readDate( s );
+ return dt;
+ return QDate ();
+}
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.h b/kabc/plugins/sharpdtm/sharpdtmconverter.h
index 99e0413..a04083e 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.h
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.h
@@ -80,2 +80,3 @@ public:
SlCategory::SlCategories* catDB;
+ QDate convertDate( QString );
diff --git a/version b/version
index 8ddae61..006e0aa 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-version = "1.9.5b";
+version = "1.9.5c";