-rw-r--r-- | kabc/converter/opie/opieconverter.cpp | 69 | ||||
-rw-r--r-- | kabc/converter/opie/opieconverter.h | 11 | ||||
-rw-r--r-- | kaddressbook/xxport/opie/opie_xxport.cpp | 14 | ||||
-rw-r--r-- | kaddressbook/xxport/opie/opie_xxportE.pro | 3 |
4 files changed, 77 insertions, 20 deletions
diff --git a/kabc/converter/opie/opieconverter.cpp b/kabc/converter/opie/opieconverter.cpp index d785fbc..b4e9f1c 100644 --- a/kabc/converter/opie/opieconverter.cpp +++ b/kabc/converter/opie/opieconverter.cpp @@ -31,18 +31,44 @@ $Id$ #include "opieconverter.h" #include <qpe/categories.h> +#include <qpe/categoryselect.h> using namespace KABC; -OpieConverter::OpieConverter() +OpieConverter::OpieConverter() : catDB(0) { } OpieConverter::~OpieConverter() { + deinit(); +} + +bool OpieConverter::init() +{ + catDB = new Categories(); + if (catDB) + { + catDB->load( categoryFileName() ); + return true; + } + else + { + return false; + } + +} + +void OpieConverter::deinit() +{ + if (catDB) + { + delete catDB; + catDB = 0; + } } bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) { @@ -60,11 +86,18 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { addr.insertEmail( *it, ((*it) == contact.defaultEmail()) ); } + if (!contact.defaultEmail().isEmpty()) addr.insertEmail(contact.defaultEmail(), true); // home + if ((!contact.homeStreet().isEmpty()) || + (!contact.homeCity().isEmpty()) || + (!contact.homeState().isEmpty()) || + (!contact.homeZip().isEmpty()) || + (!contact.homeCountry().isEmpty())) + { Address homeaddress; homeaddress.setType(Address::Home); //US homeaddress.setPostOfficeBox( "" ); //US homeaddress.setExtended( "" ); @@ -74,8 +107,9 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) homeaddress.setPostalCode( contact.homeZip() ); homeaddress.setCountry( contact.homeCountry() ); addr.insertAddress( homeaddress ); + } if (!contact.homePhone().isEmpty()) { PhoneNumber homephone; @@ -103,8 +137,14 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) addr.setUrl( contact.homeWebpage() ); // business + if ((!contact.businessStreet().isEmpty()) || + (!contact.businessCity().isEmpty()) || + (!contact.businessState().isEmpty()) || + (!contact.businessZip().isEmpty()) || + (!contact.businessCountry().isEmpty())) + { Address businessaddress; businessaddress.setType(Address::Work); //US businessaddress.setPostOfficeBox( "" ); //US businessaddress.setExtended( "" ); @@ -114,8 +154,10 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) businessaddress.setPostalCode( contact.businessZip() ); businessaddress.setCountry( contact.businessCountry() ); addr.insertAddress( businessaddress ); + } + if (!contact.businessPhone().isEmpty()) { PhoneNumber businessphone; @@ -160,14 +202,11 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", contact.spouse() ); addr.insertCustom( "KADDRESSBOOK", "X-Gender", contact.gender() ); if (contact.anniversary().isValid()) { - int orgformat = KGlobal::locale()->getIntDateFormat(); - KGlobal::locale()->setIntDateFormat( 2 ); // = Qt::ISODate - QString dt = KGlobal::locale()->formatDate(contact.anniversary(), true); + QString dt = KGlobal::locale()->formatDate(contact.anniversary(), true, KLocale::ISODate); //US qDebug("OpieConverter::opieToAddressee found:%s", dt.latin1()); - KGlobal::locale()->setIntDateFormat(orgformat ); addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); } addr.insertCustom( "KADDRESSBOOK", "X-Children", contact.children() ); @@ -189,11 +228,11 @@ bool OpieConverter::opieToAddressee( OContact &contact, Addressee &addr ) //US QStringList groupList() const; QStringList cats = contact.categoryNames("Contacts"); - for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { - qDebug("Cat: %s", (*it).latin1()); - } +// for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { +// qDebug("Cat: %s", (*it).latin1()); +// } addr.setCategories( contact.categoryNames("Contacts") ); // qDebug("Groups: %s", contact.groups().latin1()); @@ -322,17 +361,15 @@ bool OpieConverter::addresseeToOpie( const Addressee &addr, OContact &contact ) contact.setCategories( cat ); */ Categories catDB; - catDB.dump(); -//US catDB.load( contact.categoryFileName() ); - catDB.load( "contact" ); - + catDB.load( categoryFileName() ); QStringList cats = addr.categories(); - for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { - qDebug("categories: %s", (*it).latin1()); -// contact.setCategories(catDB.id(*it)); - } + QArray<int> iar; + if ( !cats.isEmpty() ) { + QArray<int> iar = catDB.ids("contact", cats); + contact.setCategories(iar); + } return true; } diff --git a/kabc/converter/opie/opieconverter.h b/kabc/converter/opie/opieconverter.h index ef7300b..7d2ad85 100644 --- a/kabc/converter/opie/opieconverter.h +++ b/kabc/converter/opie/opieconverter.h @@ -32,8 +32,10 @@ $Id$ #include "addressee.h" #include <opie/ocontact.h> +class Categories; + namespace KABC { class OpieConverter { @@ -46,9 +48,12 @@ public: /** * Destructor. */ - ~OpieConverter(); + virtual ~OpieConverter(); + + virtual bool init(); + virtual void deinit(); /** * Converts a vcard string to an addressee. * @@ -64,8 +69,12 @@ public: * @param contact The opie contact. */ bool addresseeToOpie( const Addressee &addr, OContact &contact ); + private: + Categories* catDB; + + }; } #endif diff --git a/kaddressbook/xxport/opie/opie_xxport.cpp b/kaddressbook/xxport/opie/opie_xxport.cpp index d1def18..8ee0725 100644 --- a/kaddressbook/xxport/opie/opie_xxport.cpp +++ b/kaddressbook/xxport/opie/opie_xxport.cpp @@ -106,8 +106,20 @@ bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString addressBook()->error( i18n( "Unable to access file '%1'." ).arg( fileName ) ); return false; } + KABC::OpieConverter mConverter; + + bool res = mConverter.init(); + if (!res) + { + QString text( i18n( "Unable to initialize opie converter.<br>Most likely a problem with the category file." ) ); + qDebug(text); + KMessageBox::error( parentWidget(), text ); + delete access; + return false; + } + //Now check if the file has already entries, and ask the user if he wants to delete them first. OContactAccess::List contactList = access->allRecords(); if (contactList.count() > 0) { @@ -117,10 +129,8 @@ bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString access->clear(); } } - KABC::OpieConverter mConverter; - bool res; KABC::Addressee::List::ConstIterator it; for ( it = list.begin(); it != list.end(); ++it ) { OContact c; diff --git a/kaddressbook/xxport/opie/opie_xxportE.pro b/kaddressbook/xxport/opie/opie_xxportE.pro index a660a48..c373e37 100644 --- a/kaddressbook/xxport/opie/opie_xxportE.pro +++ b/kaddressbook/xxport/opie/opie_xxportE.pro @@ -7,10 +7,11 @@ MOC_DIR = moc/$(PLATFORM) DESTDIR = $(QPEDIR)/lib DEFINES += KAB_EMBEDDED -INCLUDEPATH += ../.. ../../.. ../../../kabc ../../../kabc/converter/opie ../../../microkde ../../../microkde/kdeui ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../qtcompat $(QPEDIR)/include +INCLUDEPATH += ../.. ../../.. ../../../kabc ../../../kabc/converter/opie ../../../microkde ../../../microkde/kdeui ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../qtcompat $(OPIEDIR)/include LIBS += -L$(QPEDIR)/lib +LIBS += -L$(OPIEDIR)/lib LIBS += -lmicrokde LIBS += -lmicrokabc LIBS += -lopie LIBS += -lqpe |