-rw-r--r-- | kabc/addressee.cpp | 23 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/sharpdtmconverter.cpp | 20 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 32 |
3 files changed, 50 insertions, 25 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 3b238f5..82b4b9b 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -285,6 +285,9 @@ void Addressee::computeCsum(const QString &dev) void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) { + // merge all standard non-outlook fields. + //if isSubSet (e.g. mobile phone sync) merge all fields detach(); + if ( isSubSet ) { if ( mData->name.isEmpty() ) mData->name = ad.mData->name; if ( mData->formattedName.isEmpty() ) mData->formattedName = ad.mData->formattedName; @@ -294,19 +297,21 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) if ( mData->prefix.isEmpty() ) mData->prefix = ad.mData->prefix; if ( mData->suffix.isEmpty() ) mData->suffix = ad.mData->suffix; + if ( mData->title .isEmpty() ) mData->title = ad.mData->title ; + if ( mData->role.isEmpty() ) mData->role = ad.mData->role ; if ( mData->nickName.isEmpty() ) mData->nickName = ad.mData->nickName; + if ( mData->organization.isEmpty() ) mData->organization = ad.mData->organization ; + if ( mData->note.isEmpty() ) mData->note = ad.mData->note ; + if ( !mData->secrecy.isValid() ) mData->secrecy = ad.mData->secrecy; + if ( ( !mData->url.isValid() && ad.mData->url.isValid() ) ) mData->url = ad.mData->url ; if ( !mData->birthday.isValid() ) if ( ad.mData->birthday.isValid()) mData->birthday = ad.mData->birthday; + + } if ( mData->mailer.isEmpty() ) mData->mailer = ad.mData->mailer; if ( !mData->timeZone.isValid() ) mData->timeZone = ad.mData->timeZone; if ( !mData->geo.isValid() ) mData->geo = ad.mData->geo; - if ( mData->title .isEmpty() ) mData->title = ad.mData->title ; - if ( mData->role.isEmpty() ) mData->role = ad.mData->role ; - if ( mData->organization.isEmpty() ) mData->organization = ad.mData->organization ; - if ( mData->note.isEmpty() ) mData->note = ad.mData->note ; if ( mData->productId.isEmpty() ) mData->productId = ad.mData->productId; if ( mData->sortString.isEmpty() ) mData->sortString = ad.mData->sortString; - if ( !mData->secrecy.isValid() ) mData->secrecy = ad.mData->secrecy; - if ( ( !mData->url.isValid() && ad.mData->url.isValid() ) ) mData->url = ad.mData->url ; QStringList t; QStringList tAD; @@ -314,4 +319,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) // ********** phone numbers + if ( isSubSet ) { PhoneNumber::List phoneAD = ad.phoneNumbers(); PhoneNumber::List::Iterator phoneItAD; @@ -331,4 +337,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) mData->phoneNumbers.append( *phoneItAD ); } + } if ( isSubSet ) { // ************* emails; @@ -341,4 +348,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) // ************* categories; + if ( isSubSet ) { t = mData->categories; tAD = ad.mData->categories; @@ -346,4 +354,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) if ( !t.contains(tAD[iii] ) ) mData->categories.append( tAD[iii] ); + } QStringList::ConstIterator it; for( it = ad.mData->custom.begin(); it != ad.mData->custom.end(); ++it ) { @@ -390,4 +399,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) } } + if ( isSubSet ) { KABC::Address::List::Iterator addressIterA; for ( addressIterA = ad.mData->addresses.begin(); addressIterA != ad.mData->addresses.end(); ++addressIterA ) { @@ -407,4 +417,5 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) } } + } //qDebug("merge contact %s ", ad.uid().latin1()); setUid( ad.uid() ); diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp index ae4cfbb..8165b4c 100644 --- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp +++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp @@ -81,5 +81,6 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa // name //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); - addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); // needs fix + addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); + addr.setName(db->readField(ZdbAdrs::FullName)); addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); @@ -223,9 +224,10 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa //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"); - - if (gen == "male") + if (gen == "1") addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); - else if (gen == "female") + else if (gen == "2") addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); + else + addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef"); @@ -235,5 +237,7 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1()); addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); - } + } else + addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", " "); + @@ -299,5 +303,5 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da } database->writeField(ZdbAdrs::FileAs, formattedName); - database->writeField(ZdbAdrs::FullName, formattedName); + database->writeField(ZdbAdrs::FullName, addr.name()); // email @@ -374,7 +378,7 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da //qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee"); if (gt == "male") - database->writeField(ZdbAdrs::Gender, "male"); + database->writeField(ZdbAdrs::Gender, "1"); else if (gt == "female") - database->writeField(ZdbAdrs::Gender, "female"); + database->writeField(ZdbAdrs::Gender, "2"); else database->writeField(ZdbAdrs::Gender, ""); diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 42e147f..d970ff1 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -2354,16 +2354,26 @@ void KABCore::removeVoice() if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) return; - KABC::Addressee::List list; XXPortSelectDialog dlg( this, false, this ); - if ( dlg.exec() ) - list = dlg.contacts(); - else + if ( !dlg.exec() ) return; - KABC::Addressee::List::Iterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - if ( (*it).removeVoice() ) - addrModified((*it), false ); + mAddressBook->setUntagged(); + dlg.tagSelected(); + message(i18n("Removing voice..."), false ); + KABC::AddressBook::Iterator it; + for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { + if ( (*it).tagged() ) { + (*it).removeVoice(); } } + message(i18n("Refreshing view...") ); + qApp->processEvents(); + mViewManager->refreshView( "" ); + Addressee add; + mDetails->setAddressee( add ); + message(i18n("Remove voice completed!") ); + + + +} void KABCore::setFormattedName() @@ -3132,5 +3142,5 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode) bool syncOK = false; if ( abLocal.load() ) { - qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); + qDebug("Sync:AB loaded %s,sync mode %d",filename.latin1(), mode ); bool external = false; bool isXML = false; @@ -3142,5 +3152,5 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode) external = !manager->mIsKapiFile; if ( external ) { - qDebug("Setting vcf mode to external "); + qDebug("Sync:Setting vcf mode to external "); mGlobalSyncMode = SYNC_MODE_EXTERNAL; AddressBook::Iterator it; @@ -3162,5 +3172,5 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode) if ( external ) abLocal.removeSyncAddressees( !isXML); - qDebug("Saving remote AB "); + qDebug("Sync:Saving remote AB "); if ( ! abLocal.saveAB()) qDebug("Error writing back AB to file "); |