author | zautrix <zautrix> | 2004-10-30 00:27:02 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-30 00:27:02 (UTC) |
commit | af857a738da80e9eb68cf311832d44ecb9caf1dd (patch) (side-by-side diff) | |
tree | 7e45bdfeb5d2f70f8125f5fed20c28366de91c9a | |
parent | 84afedde379f67982d96dc9efa7abf9d200734e4 (diff) | |
download | kdepimpi-af857a738da80e9eb68cf311832d44ecb9caf1dd.zip kdepimpi-af857a738da80e9eb68cf311832d44ecb9caf1dd.tar.gz kdepimpi-af857a738da80e9eb68cf311832d44ecb9caf1dd.tar.bz2 |
fixed DTM sync cat handling
-rw-r--r-- | bin/kdepim/WhatsNew.txt | 11 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.cpp | 2 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/sharpdtmconverter.cpp | 110 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/sharpdtmconverter.h | 1 |
4 files changed, 86 insertions, 38 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 756ccc1..f38dd70 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt @@ -7,2 +7,4 @@ asking the user, if unsaved changed are pending when closing the app. +And PwM/Pi handles now different texts for the +fields Description, Username, Password, configurable per category. @@ -47,5 +49,10 @@ packages installable on SD again. -PwM/Pi handles now different texts for the -fields Description, Username, Password, configurable per category. +Fixed the writing of addressbook data in DTM sync. +Empty fields in KA/Pi were not removed. +Added better category handling in KA/Pi: +Menu "change selected has now" +Set Categories and +Add Categories option. +Possible to configure a view to display categories. diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp index 7069f5d..6413b42 100644 --- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp +++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp @@ -203,2 +203,3 @@ bool ResourceSharpDTM::save( Ticket *ticket ) res = mAccess->finishEditCard(&id);; + mConverter->setCategories( (*it), mAccess, id ); map.insert(id,(*it).uid()); @@ -230,2 +231,3 @@ bool ResourceSharpDTM::save( Ticket *ticket ) res = mAccess->finishEditCard(&id); + mConverter->setCategories( (*it), mAccess, id ); map.insert(id,(*it).uid()); diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp index 396be0a..ae4cfbb 100644 --- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp +++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp @@ -309,8 +309,4 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() ); - - // home const Address homeaddress = addr.address(Address::Home); - if (!homeaddress.isEmpty()) { - //qDebug("write home address "); database->writeField(ZdbAdrs::HomeStreet, homeaddress.street()); @@ -320,24 +316,15 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da database->writeField(ZdbAdrs::HomeCountry, homeaddress.country()); - } PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); - if (!homephone.number().isEmpty()) database->writeField(ZdbAdrs::HomePhone, homephone.number()); - PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); - if (!homefax.number().isEmpty()) database->writeField(ZdbAdrs::HomeFax, homefax.number()); - PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); - if (!homemobile.number().isEmpty()) { database->writeField(ZdbAdrs::HomeMobile, homemobile.number()); + if (!homemobile.number().isEmpty()) { cellHome = true; } - database->writeField(ZdbAdrs::HomeWebPage, addr.url().url()); - - // business const Address businessaddress = addr.address(Address::Work); - if (!businessaddress.isEmpty()) { //qDebug("write business address "); @@ -348,6 +335,4 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da database->writeField(ZdbAdrs::BusinessCountry, businessaddress.country()); - } PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); - if (!businessphone.number().isEmpty()) database->writeField(ZdbAdrs::BusinessPhone, businessphone.number()); @@ -355,3 +340,2 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); - if (!businessfax.number().isEmpty()) database->writeField(ZdbAdrs::BusinessFax, businessfax.number()); @@ -359,5 +343,5 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); + database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); if (!businessmobile.number().isEmpty()) { cellWork = true; - database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); } @@ -372,3 +356,2 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); - if (!businesspager.number().isEmpty()) database->writeField(ZdbAdrs::BusinessPager, businesspager.number()); @@ -398,15 +381,15 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da - - QDate dt = KGlobal::locale()->readDate( - addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate + QString dateS ; + QDate dt = KGlobal::locale()->readDate(addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate if ( dt.isValid() ) { - QString dateS = KGlobal::locale()->formatDate(dt, true ); - database->writeField(ZdbAdrs::Anniversary, dateS ); + dateS = KGlobal::locale()->formatDate(dt, true ); } + database->writeField(ZdbAdrs::Anniversary, dateS ); database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" )); dt = addr.birthday().date(); + dateS = ""; if ( dt.isValid() ) { - QString dateS = KGlobal::locale()->formatDate(dt, true ); - database->writeField(ZdbAdrs::Birthday, dateS); + dateS = KGlobal::locale()->formatDate(dt, true ); } + database->writeField(ZdbAdrs::Birthday, dateS); database->writeField(ZdbAdrs::Nickname, addr.nickName()); @@ -422,17 +405,72 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da - QStringList cats = addr.categories(); - int ii; - for ( ii = 0; ii < cats.count() ;++ii ) { - if ( !catDB->exists( cats[ii] )) - catDB->addCategory(cats[ii]); + return true; +} + + +bool SharpDTMConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ) +{ + QStringList list = addr.categories(); + + QArray<int> ids(list.count()); + uint index = 0; + for(uint i=0; i<ids.size(); i++){ + if(catDB->exists(list[i])){ + ids[index] = catDB->id(list[i]); + qDebug("set ex cat %d %s ",ids[index] , list[i].latin1()); + index++; + } else { + ids[index] = catDB->addCategory(list[i]); + qDebug("add new cat %d %s ",ids[index] , list[i].latin1()); + index++; } - QArray<int> iar; - if ( !cats.isEmpty() ) { - QArray<int> iar = catDB->ids(cats); - //qDebug("***cat count is %d ", iar.count()); - database->updateCategories(contact, iar); + } + bool res ; + if ( res = database->updateCategories(contact, ids) ) + qDebug("cat updated "); + else + qDebug("error cat updating "); + + return res; } +#if 0 + m_pCategories = new SlCategories; +catDB + + if(categories == QString::null) return true; + QStringList list = CSVParser::parse(categories); + QArray<int> ids(list.count()); + uint index = 0; + for(uint i=0; i<ids.size(); i++){ +#if 0 + bool ok; + ids[index] = list[i].toInt(&ok); + if(ok){ + index++; + } else { + if(m_pCategories->exists(list[i])){ + ids[index] = m_pCategories->id(list[i]); + index++; + } + } +#else + if(m_pCategories->exists(list[i])){ + ids[index] = m_pCategories->id(list[i]); + index++; + } else if(m_addCategory){ + ids[index] = m_pCategories->addCategory(list[i]); + index++; + } +#endif + } + if(ids.size() > 0 && index == 0){ return true; + } else if(index != ids.size()){ + ids.resize(index); + } + if(!m_pZdb->updateCategories(id, ids)){ + return false; } + return true; +#endif diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.h b/kabc/plugins/sharpdtm/sharpdtmconverter.h index a04083e..db1bf2d 100644 --- a/kabc/plugins/sharpdtm/sharpdtmconverter.h +++ b/kabc/plugins/sharpdtm/sharpdtmconverter.h @@ -77,2 +77,3 @@ public: bool addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ); + bool setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ); |