-rw-r--r-- | Makefile.Embedded | 14 | ||||
-rw-r--r-- | kabc/converter/qtopia/qtopiaE.pro | 12 | ||||
-rw-r--r-- | kabc/converter/qtopia/qtopiaconverter.cpp | 46 | ||||
-rw-r--r-- | kabc/converter/qtopia/qtopiaconverter.h | 4 |
4 files changed, 45 insertions, 31 deletions
diff --git a/Makefile.Embedded b/Makefile.Embedded index aaba10a..3160017 100644 --- a/Makefile.Embedded +++ b/Makefile.Embedded @@ -1,17 +1,18 @@ DISTPATH = $(shell pwd) DISTDIR = $(shell basename $(DISTPATH)) SUBDIRS = libical/src/libical libical/src/libicalss qtcompat microkde \ - libkcal libkdepim kabc kabc/converter/opie kabc/formats/binary kabc/plugins/file kabc/plugins/dir \ + libkcal libkdepim kabc kabc/converter/opie kabc/converter/qtopia kabc/formats/binary \ + kabc/plugins/file kabc/plugins/dir \ kabc/plugins/ldap kabc/plugins/opie kabc/plugins/qtopia \ korganizer kalarmd kaddressbook/xxport/opie kaddressbook all: tmake for i in $(SUBDIRS); do pushd $$i; \ make -f Makefile$(PLATFORM) || exit 1; popd; \ done objects: for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done mkdir -p libical/lib/$(PLATFORM) @@ -32,30 +33,32 @@ dist: cd ..; tar czf kdepim.src.tar.gz --exclude=obj --exclude=moc kdepim mkipks kdepim.control mkipks korganizer-alarm.control tmake: objects qtcompat/Makefile$(PLATFORM) microkde/Makefile$(PLATFORM) \ libkcal/Makefile$(PLATFORM) \ libkdepim/Makefile$(PLATFORM) korganizer/Makefile$(PLATFORM) \ kalarmd/Makefile$(PLATFORM) \ libical/src/libical/Makefile$(PLATFORM) \ libical/src/libicalss/Makefile$(PLATFORM) \ kabc/Makefile$(PLATFORM) \ kabc/converter/opie/Makefile$(PLATFORM) \ + kabc/converter/qtopia/Makefile$(PLATFORM) \ kabc/formats/binary/Makefile$(PLATFORM) \ kabc/plugins/file/Makefile$(PLATFORM) \ kabc/plugins/dir/Makefile$(PLATFORM) \ kabc/plugins/ldap/Makefile$(PLATFORM) \ kabc/plugins/opie/Makefile$(PLATFORM) \ - kabc/plugins/qtopia/Makefile$(PLATFORM) kaddressbook/xxport/opie/Makefile$(PLATFORM) \ + kabc/plugins/qtopia/Makefile$(PLATFORM) \ + kaddressbook/xxport/opie/Makefile$(PLATFORM) \ kaddressbook/Makefile$(PLATFORM) qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" qtcompat.pro -o Makefile$(PLATFORM) microkde/Makefile$(PLATFORM): microkde/microkdeE.pro cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" microkdeE.pro -o Makefile$(PLATFORM) libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" libkcalE.pro -o Makefile$(PLATFORM) @@ -70,26 +73,29 @@ kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" korganizerE.pro -o Makefile$(PLATFORM) libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" libicalE.pro -o Makefile$(PLATFORM) libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" libicalssE.pro -o Makefile$(PLATFORM) kabc/Makefile$(PLATFORM): kabc/kabcE.pro cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" kabcE.pro -o Makefile$(PLATFORM) -kabc/converter/opie/Makefile$(PLATFORM): kabc/converter/opie/opieconverterE.pro - cd kabc/converter/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" opieconverterE.pro -o Makefile$(PLATFORM) +kabc/converter/opie/Makefile$(PLATFORM): kabc/converter/opie/opieE.pro + cd kabc/converter/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" opieE.pro -o Makefile$(PLATFORM) + +kabc/converter/qtopia/Makefile$(PLATFORM): kabc/converter/qtopia/qtopiaE.pro + cd kabc/converter/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" qtopiaE.pro -o Makefile$(PLATFORM) kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" kabcformat_binaryE.pro -o Makefile$(PLATFORM) kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" fileE.pro -o Makefile$(PLATFORM) kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" dirE.pro -o Makefile$(PLATFORM) kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" ldapE.pro -o Makefile$(PLATFORM) diff --git a/kabc/converter/qtopia/qtopiaE.pro b/kabc/converter/qtopia/qtopiaE.pro index e026f2a..4241b8b 100644 --- a/kabc/converter/qtopia/qtopiaE.pro +++ b/kabc/converter/qtopia/qtopiaE.pro @@ -1,32 +1,30 @@ TEMPLATE = lib -INCLUDEPATH += . ../.. ../../../microkde ../../../microkde/kdecore $(OPIEDIR)/include $(OPEDIR)/include +INCLUDEPATH += . ../.. ../../../microkde ../../../microkde/kdecore $(QPEDIR)/include #CONFIG += staticlib OBJECTS_DIR = obj/$(PLATFORM) MOC_DIR = moc/$(PLATFORM) #for static linkage, put it here #DESTDIR=../../lib/$(PLATFORM) #for dynamic linkage, put it here DESTDIR=$(QPEDIR)/lib LIBS += -lmicrokde LIBS += -lmicrokabc LIBS += -L$(QPEDIR)/lib LIBS += -L$(OPIEDIR)/lib -LIBS += -lopie +LIBS += -lqpepim LIBS += -lqpe -LIBS += -lqte - -TARGET = microkabc_opieconverter +TARGET = microkabc_qtopiaconverter # Input HEADERS += \ - opieconverter.h \ + qtopiaconverter.h \ SOURCES += \ - opieconverter.cpp \ + qtopiaconverter.cpp \ diff --git a/kabc/converter/qtopia/qtopiaconverter.cpp b/kabc/converter/qtopia/qtopiaconverter.cpp index 7aa76fe..e3dd3e6 100644 --- a/kabc/converter/qtopia/qtopiaconverter.cpp +++ b/kabc/converter/qtopia/qtopiaconverter.cpp @@ -22,75 +22,70 @@ Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ //US #include "kglobal.h" #include "qtopiaconverter.h" -//US #include <qpe/categories.h> +#include <qpe/categories.h> //US #include <qpe/categoryselect.h> using namespace KABC; QtopiaConverter::QtopiaConverter() : catDB(0) { } QtopiaConverter::~QtopiaConverter() { deinit(); } bool QtopiaConverter::init() { -/*US catDB = new Categories(); if (catDB) { catDB->load( categoryFileName() ); return true; } else { return false; } -*/ -return true; } void QtopiaConverter::deinit() { -/*US if (catDB) { delete catDB; catDB = 0; } -*/ } bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &addr ) { // name addr.setFormattedName(contact.fileAs()); addr.setFamilyName( contact.lastName() ); addr.setGivenName( contact.firstName() ); addr.setAdditionalName( contact.middleName() ); - addr.setPrefix( contact.title() ); + addr.setPrefix( contact.nameTitle() ); addr.setSuffix( contact.suffix() ); // email QStringList emails = contact.emailList(); 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); @@ -195,25 +190,30 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a } addr.setRole( contact.jobTitle() ); //? addr.setOrganization( contact.company() ); addr.insertCustom( "KADDRESSBOOK", "X-Profession", contact.profession() ); addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", contact.assistant() ); addr.insertCustom( "KADDRESSBOOK", "X-Department", contact.department() ); addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", contact.manager() ); addr.insertCustom( "KADDRESSBOOK", "X-Office", contact.office() ); //personal addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", contact.spouse() ); - addr.insertCustom( "KADDRESSBOOK", "X-Gender", contact.gender() ); + // qtopia uses this categorization: + // enum GenderType { UnspecifiedGender=0, Male, Female }; + if (contact.gender() == PimContact::Male) + addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); + else if (contact.gender() == PimContact::Female) + addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); if (contact.anniversary().isValid()) { QString dt = KGlobal::locale()->formatDate(contact.anniversary(), true, KLocale::ISODate); //US qDebug("OpieConverter::opieToAddressee found:%s", dt.latin1()); addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); } addr.insertCustom( "KADDRESSBOOK", "X-Children", contact.children() ); if (contact.birthday().isValid()) addr.setBirthday( contact.birthday() ); @@ -222,41 +222,43 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a // others //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. QString notes = contact.notes(); notes += "\nBusinessWebPage: " + contact.businessWebpage() + "\n"; addr.setNote( contact.notes() ); //US QString groups() const { return find( Qtopia::Groups ); } //US QStringList groupList() const; + QArray<int> catArray = contact.categories(); + QString cat; - QStringList cats = contact.categoryNames("Contacts"); - addr.setCategories( cats ); -// for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { -// qDebug("Cat: %s", (*it).latin1()); -// } + for ( unsigned int i=0; i < catArray.size(); i++ ) { + cat = catDB->label("contact", catArray[i]); + if ( !cat.isEmpty() ) + addr.insertCategory( cat ); + } return true; } bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &contact ) { // name contact.setLastName(addr.familyName()); contact.setFirstName(addr.givenName()); contact.setMiddleName(addr.additionalName()); - contact.setTitle(addr.prefix()); + contact.setNameTitle(addr.prefix()); contact.setSuffix(addr.suffix()); contact.setFileAs(); // email QStringList emails = addr.emails(); for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { contact.insertEmail(*it); } contact.setDefaultEmail( addr.preferredEmail() ); @@ -313,41 +315,49 @@ bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &cont contact.setJobTitle(addr.role()); contact.setCompany(addr.organization()); contact.setProfession(addr.custom( "KADDRESSBOOK", "X-Profession" )); contact.setAssistant(addr.custom( "KADDRESSBOOK", "X-AssistantsName" )); contact.setDepartment(addr.custom( "KADDRESSBOOK", "X-Department" )); contact.setManager(addr.custom( "KADDRESSBOOK", "X-ManagersName" )); contact.setOffice(addr.custom( "KADDRESSBOOK", "X-Office" )); //personal contact.setSpouse(addr.custom( "KADDRESSBOOK", "X-Spouse" )); - contact.setGender(addr.custom( "KADDRESSBOOK", "X-Gender" )); + // qtopia uses this categorization: + // enum GenderType { UnspecifiedGender=0, Male, Female }; + QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" ); + if (gt = "male") + contact.setGender(PimContact::Male); + else if (gt = "female") + contact.setGender(PimContact::Female); + else + contact.setGender(PimContact::UnspecifiedGender); + QDate dt = KGlobal::locale()->readDate( addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate contact.setAnniversary( dt ); contact.setChildren(addr.custom( "KADDRESSBOOK", "X-Children" )); contact.setBirthday(addr.birthday().date()); contact.setNickname(addr.nickName()); // other contact.setNotes(addr.note()); //US QString groups() const { return find( Qtopia::Groups ); } //US QStringList groupList() const; -/*US QStringList cats = addr.categories(); QArray<int> iar; if ( !cats.isEmpty() ) { - QArray<int> iar = catDB.ids("contact", cats); + QArray<int> iar = catDB->ids("contact", cats); contact.setCategories(iar); } -*/ + return true; } diff --git a/kabc/converter/qtopia/qtopiaconverter.h b/kabc/converter/qtopia/qtopiaconverter.h index aaa267a..7397113 100644 --- a/kabc/converter/qtopia/qtopiaconverter.h +++ b/kabc/converter/qtopia/qtopiaconverter.h @@ -23,25 +23,25 @@ Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #ifndef KABC_QTOPIACONVERTER_H #define KABC_QTOPIACONVERTER_H #include <qstring.h> #include "addressee.h" #include <qpe/pim/contact.h> -//US class Categories; +class Categories; namespace KABC { class QtopiaConverter { public: /** * Constructor. */ QtopiaConverter(); @@ -61,19 +61,19 @@ public: */ bool qtopiaToAddressee( const PimContact &contact, Addressee &addr ); /** * Converts an addressee to a vcard string. * * @param addr The addressee. * @param contact The qtopia contact. */ bool addresseeToQtopia( const Addressee &addr, PimContact &contact ); private: -//US Categories* catDB; + Categories* catDB; }; } #endif |