Diffstat (limited to 'kabc/converter/sharpdtm/sharpdtmconverter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kabc/converter/sharpdtm/sharpdtmconverter.cpp | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/kabc/converter/sharpdtm/sharpdtmconverter.cpp b/kabc/converter/sharpdtm/sharpdtmconverter.cpp deleted file mode 100644 index 8f8334e..0000000 --- a/kabc/converter/sharpdtm/sharpdtmconverter.cpp +++ b/dev/null @@ -1,384 +0,0 @@ -/* - This file is part of libkabc. - Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. -*/ - -/* -Enhanced Version of the file for platform independent KDE tools. -Copyright (c) 2004 Ulf Schenk - -$Id$ -*/ - -#include "kglobal.h" - - -#include "sharpdtmconverter.h" - -#include <sl/slcategories.h> -//US #include <qpe/categoryselect.h> - - -using namespace KABC; -using namespace SlCategory; - -SharpDTMConverter::SharpDTMConverter() : catDB(0) -{ -} - -SharpDTMConverter::~SharpDTMConverter() -{ - deinit(); -} - -bool SharpDTMConverter::init() -{ - catDB = new SlCategory::SlCategories(); - - if (!catDB) - return false; - -// catDB->load( categoryFileName() ); - return true; -} - -void SharpDTMConverter::deinit() -{ - if (catDB) - { - delete catDB; - catDB = 0; - } -} - -bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) -{ - SlZDataBase* db = (SlZDataBase*)database; - // name - qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); - addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); - - addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); - addr.setGivenName( db->readField(ZdbAdrs::FirstName) ); - addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) ); - addr.setPrefix( db->readField(ZdbAdrs::Title) ); - addr.setSuffix( db->readField(ZdbAdrs::Suffix) ); - - - // 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); - - for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { - addr.insertEmail( *it, ((*it) == db->readField(ZdbAdrs::DefaultEmail)) ); - } - - if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) - addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true); - - // home - if ((!db->readField(ZdbAdrs::HomeStreet).isEmpty()) || - (!db->readField(ZdbAdrs::HomeCity).isEmpty()) || - (!db->readField(ZdbAdrs::HomeState).isEmpty()) || - (!db->readField(ZdbAdrs::HomeZip).isEmpty()) || - (!db->readField(ZdbAdrs::HomeCountry).isEmpty())) - { - Address homeaddress; - homeaddress.setType(Address::Home); -//US homeaddress.setPostOfficeBox( "" ); -//US homeaddress.setExtended( "" ); - homeaddress.setStreet( db->readField(ZdbAdrs::HomeStreet) ); - homeaddress.setLocality( db->readField(ZdbAdrs::HomeCity) ); - homeaddress.setRegion( db->readField(ZdbAdrs::HomeState) ); - homeaddress.setPostalCode( db->readField(ZdbAdrs::HomeZip) ); - homeaddress.setCountry( db->readField(ZdbAdrs::HomeCountry) ); - - addr.insertAddress( homeaddress ); - } - - if (!db->readField(ZdbAdrs::HomePhone).isEmpty()) - { - PhoneNumber homephone; - homephone.setType( PhoneNumber::Home ); - homephone.setNumber( db->readField(ZdbAdrs::HomePhone) ); - addr.insertPhoneNumber( homephone ); - } - - if (!db->readField(ZdbAdrs::HomeFax).isEmpty()) - { - PhoneNumber homefax; - homefax.setType( PhoneNumber::Home | PhoneNumber::Fax ); - homefax.setNumber( db->readField(ZdbAdrs::HomeFax) ); - addr.insertPhoneNumber( homefax ); - } - - if (!db->readField(ZdbAdrs::HomeMobile).isEmpty()) - { - PhoneNumber homemobile; - homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell ); - homemobile.setNumber( db->readField(ZdbAdrs::HomeMobile) ); - addr.insertPhoneNumber( homemobile ); - } - - addr.setUrl( db->readField(ZdbAdrs::HomeWebPage) ); - - - // business - if ((!db->readField(ZdbAdrs::BusinessStreet).isEmpty()) || - (!db->readField(ZdbAdrs::BusinessCity).isEmpty()) || - (!db->readField(ZdbAdrs::BusinessState).isEmpty()) || - (!db->readField(ZdbAdrs::BusinessZip).isEmpty()) || - (!db->readField(ZdbAdrs::BusinessCountry).isEmpty())) - { - Address businessaddress; - businessaddress.setType(Address::Work); -//US businessaddress.setPostOfficeBox( "" ); -//US businessaddress.setExtended( "" ); - businessaddress.setStreet( db->readField(ZdbAdrs::BusinessStreet) ); - businessaddress.setLocality( db->readField(ZdbAdrs::BusinessCity) ); - businessaddress.setRegion( db->readField(ZdbAdrs::BusinessState) ); - businessaddress.setPostalCode( db->readField(ZdbAdrs::BusinessZip) ); - businessaddress.setCountry( db->readField(ZdbAdrs::BusinessCountry) ); - - addr.insertAddress( businessaddress ); - } - - - if (!db->readField(ZdbAdrs::BusinessPhone).isEmpty()) - { - PhoneNumber businessphone; - businessphone.setType( PhoneNumber::Work ); - businessphone.setNumber( db->readField(ZdbAdrs::BusinessPhone) ); - addr.insertPhoneNumber( businessphone ); - } - - if (!db->readField(ZdbAdrs::BusinessFax).isEmpty()) - { - PhoneNumber businessfax; - businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax ); - businessfax.setNumber( db->readField(ZdbAdrs::BusinessFax) ); - addr.insertPhoneNumber( businessfax ); - } - - if (!db->readField(ZdbAdrs::BusinessMobile).isEmpty()) - { - PhoneNumber businessmobile; - businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell ); - businessmobile.setNumber( db->readField(ZdbAdrs::BusinessMobile) ); - addr.insertPhoneNumber( businessmobile ); - } - - if (!db->readField(ZdbAdrs::BusinessPager).isEmpty()) - { - PhoneNumber businesspager; - businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager ); - businesspager.setNumber( db->readField(ZdbAdrs::BusinessPager) ); - addr.insertPhoneNumber( businesspager ); - } - - addr.setRole( db->readField(ZdbAdrs::JobTitle) ); //? - addr.setOrganization( db->readField(ZdbAdrs::Company) ); - addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) ); - addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) ); - addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) ); - addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) ); - addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) ); - - //personal - addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) ); - - 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"); - - if (gen == "male") - addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); - else if (gen == "female") - addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); - - - QDate ann = db->readDateField(ZdbAdrs::Anniversary); - - if (ann.isValid()) { - QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); -//US -// qDebug("QtopiaConverter::qtopiaToAddressee found:%s", dt.latin1()); - addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); - } - - addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) ); - - - QDate birthd = db->readDateField(ZdbAdrs::Birthday); - if (birthd.isValid()) - addr.setBirthday( birthd ); - - addr.setNickName( db->readField(ZdbAdrs::Nickname) ); - - // others - //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. - QString notes = db->readField(ZdbAdrs::Notes); - notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n"; - - addr.setNote( db->readField(ZdbAdrs::Notes) ); - - - -//US QString groups() const { return find( Qtopia::Groups ); } -//US QStringList groupList() const; - - qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" ); - QArray<int> catArray = db->readCategories(); - QString cat; - - for ( unsigned int i=0; i < catArray.size(); i++ ) { - cat = catDB->label(catArray[i]); - if ( cat.isEmpty() ) - addr.insertCategory(QString::number(catArray[i])); - else - addr.insertCategory( cat ); - } - - return true; -} - -bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) -{ - // 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!!"); - database->writeField(ZdbAdrs::FileAs, 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(","); - 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()); - database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode()); - 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()); - - database->writeField(ZdbAdrs::HomeWebPage, addr.url().url()); - - - // business - const Address businessaddress = addr.address(Address::Work); - if (!businessaddress.isEmpty()) { - database->writeField(ZdbAdrs::BusinessStreet, businessaddress.street()); - database->writeField(ZdbAdrs::BusinessCity, businessaddress.locality()); - database->writeField(ZdbAdrs::BusinessState, businessaddress.region()); - database->writeField(ZdbAdrs::BusinessZip, businessaddress.postalCode()); - database->writeField(ZdbAdrs::BusinessCountry, businessaddress.country()); - } - - 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()) - database->writeField(ZdbAdrs::BusinessMobile, businessmobile.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" )); - database->writeField(ZdbAdrs::Manager, addr.custom( "KADDRESSBOOK", "X-ManagersName" )); - database->writeField(ZdbAdrs::Office, addr.custom( "KADDRESSBOOK", "X-Office" )); - - //personal - database->writeField(ZdbAdrs::Spouse, addr.custom( "KADDRESSBOOK", "X-Spouse" )); - - 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") - database->writeField(ZdbAdrs::Gender, "male"); - else if (gt = "female") - database->writeField(ZdbAdrs::Gender, "female"); - else - database->writeField(ZdbAdrs::Gender, ""); - - - QDate dt = KGlobal::locale()->readDate( - addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate - database->writeField(ZdbAdrs::Anniversary, dt ); - - database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" )); - - database->writeField(ZdbAdrs::Birthday, addr.birthday().date()); - database->writeField(ZdbAdrs::Nickname, addr.nickName()); - - // other - database->writeField(ZdbAdrs::Notes, addr.note()); - -//US QString groups() const { return find( Qtopia::Groups ); } -//US QStringList groupList() const; - - - qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works"); - - QStringList cats = addr.categories(); - QArray<int> iar; - if ( !cats.isEmpty() ) { - QArray<int> iar = catDB->ids(cats); - database->updateCategories(contact, iar); - } - - return true; -} |