-rw-r--r-- | kabc/converter/opie/opieconverter.cpp | 11 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 3 |
2 files changed, 11 insertions, 3 deletions
diff --git a/kabc/converter/opie/opieconverter.cpp b/kabc/converter/opie/opieconverter.cpp index 0b6a55e..46e14dd 100644 --- a/kabc/converter/opie/opieconverter.cpp +++ b/kabc/converter/opie/opieconverter.cpp @@ -107,242 +107,249 @@ bool OpieConverter::opieToAddressee( const OContact &contact, Addressee &addr ) homeaddress.setPostalCode( contact.homeZip() ); homeaddress.setCountry( contact.homeCountry() ); addr.insertAddress( homeaddress ); } if (!contact.homePhone().isEmpty()) { PhoneNumber homephone; homephone.setType( PhoneNumber::Home ); homephone.setNumber( contact.homePhone() ); addr.insertPhoneNumber( homephone ); } if (!contact.homeFax().isEmpty()) { PhoneNumber homefax; homefax.setType( PhoneNumber::Home | PhoneNumber::Fax ); homefax.setNumber( contact.homeFax() ); addr.insertPhoneNumber( homefax ); } if (!contact.homeMobile().isEmpty()) { PhoneNumber homemobile; homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell ); homemobile.setNumber( contact.homeMobile() ); addr.insertPhoneNumber( homemobile ); } 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( "" ); businessaddress.setStreet( contact.businessStreet() ); businessaddress.setLocality( contact.businessCity() ); businessaddress.setRegion( contact.businessState() ); businessaddress.setPostalCode( contact.businessZip() ); businessaddress.setCountry( contact.businessCountry() ); addr.insertAddress( businessaddress ); } if (!contact.businessPhone().isEmpty()) { PhoneNumber businessphone; businessphone.setType( PhoneNumber::Work ); businessphone.setNumber( contact.businessPhone() ); addr.insertPhoneNumber( businessphone ); } if (!contact.businessFax().isEmpty()) { PhoneNumber businessfax; businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax ); businessfax.setNumber( contact.businessFax() ); addr.insertPhoneNumber( businessfax ); } if (!contact.businessMobile().isEmpty()) { PhoneNumber businessmobile; businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell ); businessmobile.setNumber( contact.businessMobile() ); addr.insertPhoneNumber( businessmobile ); } if (!contact.businessPager().isEmpty()) { PhoneNumber businesspager; businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager ); businesspager.setNumber( contact.businessPager() ); addr.insertPhoneNumber( businesspager ); } 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() ); + if (contact.gender() == 1) + addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female" ); + else if (contact.gender() == 2) + addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male" ); 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() ); addr.setNickName( contact.nickname() ); // 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; QStringList cats = contact.categoryNames("Contacts"); addr.setCategories( cats ); // for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { // qDebug("Cat: %s", (*it).latin1()); // } return true; } bool OpieConverter::addresseeToOpie( const Addressee &addr, OContact &contact ) { // name contact.setLastName(addr.familyName()); contact.setFirstName(addr.givenName()); contact.setMiddleName(addr.additionalName()); contact.setTitle(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() ); // home const Address homeaddress = addr.address(Address::Home); if (!homeaddress.isEmpty()) { contact.setHomeStreet(homeaddress.street()); contact.setHomeCity(homeaddress.locality()); contact.setHomeState(homeaddress.region()); contact.setHomeZip(homeaddress.postalCode()); contact.setHomeCountry(homeaddress.country()); } PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); if (!homephone.number().isEmpty()) contact.setHomePhone(homephone.number()); PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); if (!homefax.number().isEmpty()) contact.setHomeFax(homefax.number()); PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); if (!homemobile.number().isEmpty()) contact.setHomeMobile(homemobile.number()); contact.setHomeWebpage(addr.url().url()); // business const Address businessaddress = addr.address(Address::Work); if (!businessaddress.isEmpty()) { contact.setBusinessStreet(businessaddress.street()); contact.setBusinessCity(businessaddress.locality()); contact.setBusinessState(businessaddress.region()); contact.setBusinessZip(businessaddress.postalCode()); contact.setBusinessCountry(businessaddress.country()); } PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); if (!businessphone.number().isEmpty()) contact.setBusinessPhone(businessphone.number()); PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); if (!businessfax.number().isEmpty()) contact.setBusinessFax(businessfax.number()); PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); if (!businessmobile.number().isEmpty()) contact.setBusinessMobile(businessmobile.number()); PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); if (!businesspager.number().isEmpty()) contact.setBusinessPager(businesspager.number()); 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" )); + QString gend = addr.custom( "KADDRESSBOOK", "X-Gender" ); + if (gend == "female") + contact.setGender("1"); + else if (gend == "male") + contact.setGender("2"); 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; QStringList cats = addr.categories(); QArray<int> iar; if ( !cats.isEmpty() ) { QArray<int> iar = catDB->ids("contact", cats); contact.setCategories(iar); } return true; } diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 1a34e4d..8daca33 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -70,193 +70,194 @@ #include <qapp.h> #include <qmenubar.h> //#include <qtoolbar.h> #include <qmessagebox.h> #include <kdebug.h> #include <kiconloader.h> // needed for SmallIcon #include <kresources/kcmkresources.h> #include <ktoolbar.h> #include <kcmkabconfig.h> //US#include <qpe/resource.h> // needed for Resource::loadPixmap //#include <qlabel.h> #endif // KAB_EMBEDDED #include <kcmkabconfig.h> #include <kresources/selectdialog.h> #include <kmessagebox.h> #include <picture.h> #include <resource.h> //US#include <qsplitter.h> #include <qvbox.h> #include <qlayout.h> #include <qclipboard.h> #include <libkdepim/categoryselectdialog.h> #include "addresseeutil.h" #include "undocmds.h" #include "addresseeeditordialog.h" #include "viewmanager.h" #include "details/detailsviewcontainer.h" #include "kabprefs.h" #include "xxportmanager.h" #include "incsearchwidget.h" #include "jumpbuttonbar.h" #include "extensionmanager.h" #include "addresseeconfig.h" #include <kcmultidialog.h> #ifdef _WIN32_ #include "kaimportoldialog.h" #endif bool pasteWithNewUid = true; #ifdef KAB_EMBEDDED KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ mReadWrite( readWrite ), mModified( false ), mMainWindow(client) #else //KAB_EMBEDDED KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), mReadWrite( readWrite ), mModified( false ) #endif //KAB_EMBEDDED { #ifdef KAB_EMBEDDED //US we define here our own global actioncollection. //mActionCollection = new KActionCollection(this); #endif //KAB_EMBEDDED mExtensionBarSplitter = 0; mIsPart = !parent->inherits( "KAddressBookMain" ); mAddressBook = KABC::StdAddressBook::self(); KABC::StdAddressBook::setAutomaticSave( false ); #ifndef KAB_EMBEDDED mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); #endif //KAB_EMBEDDED connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), SLOT( addressBookChanged() ) ); mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, "X-Department", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, "X-Profession", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, "X-AssistantsName", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, "X-ManagersName", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, "X-SpousesName", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, "X-Office", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, "X-IMAddress", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, "X-Anniversary", "KADDRESSBOOK" ); -//US added this field to become compatible with Opie addressbook + //US added this field to become compatible with Opie/qtopia addressbook + // values can be "female" or "male" or "". An empty field represents undefined. mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, "X-Gender", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, "X-Children", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, "X-FreeBusyUrl", "KADDRESSBOOK" ); initGUI(); mIncSearchWidget->setFocus(); connect( mViewManager, SIGNAL( selected( const QString& ) ), SLOT( setContactSelected( const QString& ) ) ); connect( mViewManager, SIGNAL( executed( const QString& ) ), SLOT( editContact( const QString& ) ) ); connect( mViewManager, SIGNAL( deleteRequest( ) ), SLOT( deleteContacts( ) ) ); connect( mViewManager, SIGNAL( modified() ), SLOT( setModified() ) ); connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); connect( mXXPortManager, SIGNAL( modified() ), SLOT( setModified() ) ); connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), SLOT( incrementalSearch( const QString& ) ) ); connect( mIncSearchWidget, SIGNAL( fieldChanged() ), mJumpButtonBar, SLOT( recreateButtons() ) ); #ifndef KAB_EMBEDDED connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), mXXPortManager, SLOT( importVCard( const KURL& ) ) ); connect( mDetails, SIGNAL( sendEmail( const QString& ) ), SLOT( sendMail( const QString& ) ) ); connect( mDetails, SIGNAL( browse( const QString& ) ), SLOT( browse( const QString& ) ) ); mAddressBookService = new KAddressBookService( this ); #endif //KAB_EMBEDDED mEditorDialog = 0; createAddresseeEditorDialog( this ); setModified( false ); } KABCore::~KABCore() { // save(); //saveSettings(); //KABPrefs::instance()->writeConfig(); delete AddresseeConfig::instance(); mAddressBook = 0; KABC::StdAddressBook::close(); #ifdef KAB_EMBEDDED //US we define here our own global actioncollection. // delete mActionCollection; #endif //KAB_EMBEDDED } void KABCore::restoreSettings() { bool state = KABPrefs::instance()->mJumpButtonBarVisible; mActionJumpBar->setChecked( state ); setJumpButtonBarVisible( state ); state = KABPrefs::instance()->mDetailsPageVisible; mActionDetails->setChecked( state ); setDetailsVisible( state ); QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; if ( splitterSize.count() == 0 ) { splitterSize.append( width() / 2 ); splitterSize.append( width() / 2 ); } mMiniSplitter->setSizes( splitterSize ); if ( mExtensionBarSplitter ) { splitterSize = KABPrefs::instance()->mExtensionsSplitter; if ( splitterSize.count() == 0 ) { splitterSize.append( width() / 2 ); splitterSize.append( width() / 2 ); } mExtensionBarSplitter->setSizes( splitterSize ); } #ifndef KAB_EMBEDDED QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter; if ( splitterSize.count() == 0 ) { splitterSize.append( width() / 2 ); splitterSize.append( width() / 2 ); } |