Diffstat (limited to 'kabc/plugins/sharpdtm/sharpdtmconverter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kabc/plugins/sharpdtm/sharpdtmconverter.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp index f3bf2c5..fccf625 100644 --- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp +++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp @@ -273,34 +273,45 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa } return true; } bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) { bool cellHome = false, cellWork = false; // name database->writeField(ZdbAdrs::LastName, addr.familyName()); database->writeField(ZdbAdrs::FirstName, addr.givenName()); database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); database->writeField(ZdbAdrs::Title, addr.prefix()); database->writeField(ZdbAdrs::Suffix, addr.suffix()); //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()); + QString formattedName = addr.formattedName(); + if ( formattedName.isEmpty() ) { + if ( !addr.familyName().isEmpty() ) { + formattedName = addr.familyName(); + if ( !addr.givenName().isEmpty() ) { + formattedName += ", "; + formattedName += addr.givenName(); + } + } else + formattedName = addr.givenName(); + } + database->writeField(ZdbAdrs::FileAs, formattedName); + database->writeField(ZdbAdrs::FullName, 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(" "); database->writeField(ZdbAdrs::Emails, emails ); database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() ); // home const Address homeaddress = addr.address(Address::Home); if (!homeaddress.isEmpty()) { database->writeField(ZdbAdrs::HomeStreet, homeaddress.street()); database->writeField(ZdbAdrs::HomeCity, homeaddress.locality()); database->writeField(ZdbAdrs::HomeState, homeaddress.region()); @@ -336,33 +347,33 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da } PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); if (!businessphone.number().isEmpty()) database->writeField(ZdbAdrs::BusinessPhone, businessphone.number()); PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); if (!businessfax.number().isEmpty()) database->writeField(ZdbAdrs::BusinessFax, businessfax.number()); PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); if (!businessmobile.number().isEmpty()) { cellWork = true; database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); } PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell ); - if (!businessmobile.number().isEmpty()) { + if (! mobile.number().isEmpty()) { if ( ! cellHome ) database->writeField(ZdbAdrs::HomeMobile, mobile.number()); else if (! cellWork ) database->writeField(ZdbAdrs::BusinessMobile, mobile.number()); } PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); if (!businesspager.number().isEmpty()) database->writeField(ZdbAdrs::BusinessPager, businesspager.number()); database->writeField(ZdbAdrs::JobTitle, addr.role()); database->writeField(ZdbAdrs::Company, addr.organization()); database->writeField(ZdbAdrs::Profession, addr.custom( "KADDRESSBOOK", "X-Profession" )); database->writeField(ZdbAdrs::Assistant, addr.custom( "KADDRESSBOOK", "X-AssistantsName" )); database->writeField(ZdbAdrs::Department, addr.custom( "KADDRESSBOOK", "X-Department" )); |