diff options
Diffstat (limited to 'kpilot/conduits/abbrowserconduit/kabcRecord.cc')
-rw-r--r-- | kpilot/conduits/abbrowserconduit/kabcRecord.cc | 710 |
1 files changed, 0 insertions, 710 deletions
diff --git a/kpilot/conduits/abbrowserconduit/kabcRecord.cc b/kpilot/conduits/abbrowserconduit/kabcRecord.cc deleted file mode 100644 index 9b49a2cad..000000000 --- a/kpilot/conduits/abbrowserconduit/kabcRecord.cc +++ /dev/null @@ -1,710 +0,0 @@ -/* KPilot -** -** Copyright (C) 2000,2001 by Dan Pilone -** Copyright (C) 2002-2003 by Reinhold Kainhofer -** Copyright (C) 2007 by Adriaan de Groot <groot@kde.org> -** -** The abbrowser conduit copies addresses from the Pilot's address book to -** the KDE addressbook maintained via the kabc library. This file -** deals with the actual copying of HH addresses to KABC addresses -** and back again. -*/ - -/* -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or -** (at your option) any later version. -** -** This program 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 General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program in a file called COPYING; if not, write to -** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -** MA 02110-1301, USA. -*/ - -/* -** Bug reports and questions can be sent to kde-pim@kde.org. -*/ - -#include "options.h" - -#include <tqregexp.h> - -#include <kglobal.h> -#include <kabc/addressee.h> - -#include "kabcRecord.h" - -/** - * Okay, this is so that we can map the Pilot phone types to Phone Number - * types. Email addresses are NOT included in this map, and are handled - * separately (not in PhoneNumber at all). The Pilot has 8 different kinds - * of phone numbers (which may be *labeled* however you like). These - * need to be mapped to the things that KABC::PhoneNumber handles. - * - * From KABC::PhoneNumber - * enum Types { Home = 1, Work = 2, Msg = 4, Pref = 8, Voice = 16, Fax = 32, - * Cell = 64, Video = 128, Bbs = 256, Modem = 512, Car = 1024, - * Isdn = 2048, Pcs = 4096, Pager = 8192 }; - * - * - * From PilotAddress: - * enum EPhoneType { - * eWork=0, eHome, eFax, eOther, eEmail, eMain, - * ePager, eMobile - * }; - * - * This array must have as many elements as PilotAddress::PhoneType - * and its elements must be KABC::PhoneNumber::Types. - */ - -static KABC::PhoneNumber::Types pilotToPhoneMap[8] = { - KABC::PhoneNumber::Work, // eWork - KABC::PhoneNumber::Home, // eHome, - KABC::PhoneNumber::Fax, // eFax, - (KABC::PhoneNumber::Types)0, // eOther -> wasn't mapped properly, - (KABC::PhoneNumber::Types)0, // eEmail -> shouldn't occur, - KABC::PhoneNumber::Home, // eMain - KABC::PhoneNumber::Pager, // ePager, - KABC::PhoneNumber::Cell // eMobile -} ; - -KABC::PhoneNumber::List KABCSync::getPhoneNumbers(const PilotAddress &a) -{ - FUNCTIONSETUP; - - KABC::PhoneNumber::List list; - TQString test; - - PhoneSlot shownPhone = a.getShownPhone(); - - DEBUGKPILOT << fname << ": preferred pilot index is: [" - << shownPhone << "], preferred phone number is: [" - << a.getField(shownPhone) << "]" << endl; - - for (PhoneSlot i = PhoneSlot::begin(); i.isValid(); ++i) - { - // skip email entries - if ( a.getPhoneType(i) == PilotAddressInfo::eEmail ) - { - continue; - } - - test = a.getField(i); - // only look at this if the field is populated - if (test.isEmpty()) - { - continue; - } - - int phoneType = pilotToPhoneMap[a.getPhoneType(i)]; - - // only populate a PhoneNumber if we have a corresponding type - if (phoneType >=0) - { - // if this is the preferred phone number, set it as such - if (shownPhone == i) - { - phoneType |= KABC::PhoneNumber::Pref; - DEBUGKPILOT << fname << ": found preferred pilot index: [" - << i << "], text: [" << test << "]" << endl; - } - KABC::PhoneNumber ph(test, phoneType); - list.append(ph); - } - else - { - DEBUGKPILOT << fname << ": whoopsie. pilot phone number: [" - << test << "], index: [" << i << "], type: [" - << phoneType << "], has no corresponding PhoneNumber type." << endl; - } - } - - DEBUGKPILOT << fname << ": returning: [" - << list.count() << "] phone numbers." << endl; - - return list; -} - -void KABCSync::setPhoneNumbers(const PilotAddressInfo &info, - PilotAddress &a, - const KABC::PhoneNumber::List &list) -{ - FUNCTIONSETUP; - TQString test; - - // clear all phone numbers (not e-mails) first - for ( PhoneSlot i = PhoneSlot::begin(); i.isValid() ; ++i ) - { - PilotAddressInfo::EPhoneType ind = a.getPhoneType( i ); - if (ind != PilotAddressInfo::eEmail) - { - a.setField(i, TQString()); - } - } - - // now iterate through the list and for each PhoneNumber in the list, - // iterate through our phone types using our map and set the first one - // we find as the type of address for the Pilot - for(KABC::PhoneNumber::List::ConstIterator listIter = list.begin(); - listIter != list.end(); ++listIter) - { - KABC::PhoneNumber phone = *listIter; - - PilotAddressInfo::EPhoneType phoneType = PilotAddressInfo::eHome; - - for ( int pilotPhoneType = PilotAddressInfo::eWork; - pilotPhoneType <= PilotAddressInfo::eMobile; - ++pilotPhoneType) - { - int phoneKey = pilotToPhoneMap[pilotPhoneType]; - if ( phone.type() & phoneKey) - { - DEBUGKPILOT << fname << ": found pilot type: [" - << pilotPhoneType << "] (" - << info.phoneLabel( (PilotAddressInfo::EPhoneType)pilotPhoneType) - << ") for PhoneNumber: [" - << phone.number() << "]" << endl; - - phoneType = (PilotAddressInfo::EPhoneType) pilotPhoneType; - break; - } - } - PhoneSlot fieldSlot = - a.setPhoneField(phoneType, phone.number(), PilotAddress::NoFlags); - - // if this is the preferred phone number, then set it as such - if (fieldSlot.isValid() && (phone.type() & KABC::PhoneNumber::Pref)) - { - DEBUGKPILOT << fname << ": found preferred PhoneNumber. " - << "setting showPhone to index: [" - << fieldSlot << "], PhoneNumber: [" - << phone.number() << "]" << endl; - a.setShownPhone( fieldSlot ); - } - - if (!fieldSlot.isValid()) - { - DEBUGKPILOT << fname << ": Phone listing overflowed." << endl; - } - } - - DEBUGKPILOT << fname << ": Pilot's showPhone now: [" - << a.getShownPhone() << "]." << endl; - - // after setting the numbers, make sure that something sensible is set as the - // shownPhone on the Pilot if nothing is yet... - TQString pref = a.getField(a.getShownPhone()); - if (!a.getShownPhone().isValid() || pref.isEmpty()) - { - DEBUGKPILOT << fname << ": Pilot's showPhone: [" - << a.getShownPhone() - << "] not properly set to a default." - << endl; - - for (PhoneSlot i = PhoneSlot::begin(); i.isValid(); ++i) - { - pref = a.getField(i); - if (!pref.isEmpty()) - { - a.setShownPhone( i ); - DEBUGKPILOT << fname << ": Pilot's showPhone now: [" - << a.getShownPhone() - << "], and that's final." << endl; - break; - } - } - } -} - -unsigned int KABCSync::bestMatchedCategory(const TQStringList &pccategories, - const PilotAddressInfo &info, - unsigned int hhcategory) -{ - FUNCTIONSETUP; - // No categories in list, must be unfiled - if (pccategories.size()<1) - { - return Pilot::Unfiled; - } - - // See if the suggested hhcategory is in the list, and if - // so that is the best match. - if (Pilot::validCategory(hhcategory) && - pccategories.contains(info.categoryName(hhcategory))) - { - return hhcategory; - } - - // Look for the first category from the list which is available on - // the handheld as well. - for(TQStringList::ConstIterator it = pccategories.begin(); it != pccategories.end(); ++it) - { - // Do not map unknown to unfiled when looking for category - int c = info.findCategory( *it, false ); - if ( c >= 0) - { - Q_ASSERT(Pilot::validCategory(c)); - return c; - } - } - - // didn't find anything. return null - return Pilot::Unfiled; -} - -void KABCSync::setCategory(KABC::Addressee & abEntry, const TQString &cat) -{ - if ( (!cat.isEmpty())) - { - abEntry.insertCategory(cat); - } -} - - -TQString KABCSync::getFieldForHHCustom( - const unsigned int index, - const KABC::Addressee &abEntry, - const KABCSync::Settings &settings) -{ - FUNCTIONSETUPL(4); - - TQString retval; - - if (index>3) - { - WARNINGKPILOT << "Bad index number " << index << endl; - retval = TQString(); - } - if (settings.customMapping().count() != 4) - { - WARNINGKPILOT << "Mapping does not have 4 elements." << index << endl; - retval = TQString(); - } - - switch (settings.custom(index)) - { - case eCustomBirthdate: - if (settings.dateFormat().isEmpty()) - { - retval = KGlobal::locale()->formatDate(abEntry.birthday().date()); - } - else - { - TQString tmpfmt(KGlobal::locale()->dateFormat()); - KGlobal::locale()->setDateFormat(settings.dateFormat()); - TQString ret(KGlobal::locale()->formatDate(abEntry.birthday().date())); - KGlobal::locale()->setDateFormat(tmpfmt); - retval = ret; - } - break; - case eCustomURL: - retval = abEntry.url().url(); - break; - case eCustomIM: - retval = abEntry.custom(CSL1("KADDRESSBOOK"), CSL1("X-IMAddress")); - break; - case eCustomField: - default: - retval = abEntry.custom(appString, CSL1("CUSTOM")+TQString::number(index)); - break; - } - - return retval; -} - -void KABCSync::setFieldFromHHCustom( - const unsigned int index, - KABC::Addressee &abEntry, - const TQString &value, - const KABCSync::Settings &settings) -{ - FUNCTIONSETUPL(4); - - if (index>3) - { - WARNINGKPILOT << "Bad index number " << index << endl; - return; - } - if (settings.customMapping().count() != 4) - { - WARNINGKPILOT << "Mapping does not have 4 elements." << index << endl; - return; - } - - switch (settings.custom(index)) - { - case eCustomBirthdate: - { - TQDate bdate; - bool ok=false; - if (settings.dateFormat().isEmpty()) - { - // empty format means use locale setting - bdate=KGlobal::locale()->readDate(value, &ok); - } - else - { - // use given format - bdate=KGlobal::locale()->readDate(value, settings.dateFormat(), &ok); - } - - if (!ok) - { - TQString format = KGlobal::locale()->dateFormatShort(); - TQRegExp re(CSL1("%[yY][^%]*")); - format.remove(re); // Remove references to year and following punctuation - bdate = KGlobal::locale()->readDate(value, format, &ok); - } - DEBUGKPILOT << "Birthdate from " << index << "-th custom field: " - << bdate.toString() << endl; - DEBUGKPILOT << "Is Valid: " << bdate.isValid() << endl; - if (bdate.isValid()) - { - abEntry.setBirthday(bdate); - } - else - { - abEntry.insertCustom(CSL1("KADDRESSBOOK"), CSL1("X-Birthday"), value); - } - break; - } - case eCustomURL: - abEntry.setUrl(value); - break; - case eCustomIM: - abEntry.insertCustom(CSL1("KADDRESSBOOK"), CSL1("X-IMAddress"), value); - break; - case eCustomField: - default: - abEntry.insertCustom(appString, CSL1("CUSTOM")+TQString::number(index), value); - break; - } -} - - -/** First search for a preferred address. If we don't have one, search - * for home or work as specified in the config dialog. If we don't have - * such one, either, search for the other type. If we still have no luck, - * return an address with preferred + home/work flag (from config dlg). */ -KABC::Address KABCSync::getAddress(const KABC::Addressee &abEntry, const KABCSync::Settings &s) -{ - // preferhome == (AbbrowserSettings::pilotStreet==0) - - // Check for preferred address first - KABC::Address ad(abEntry.address(KABC::Address::Pref)); - if (!ad.isEmpty()) return ad; - - // Look for home or work, whichever is preferred - int type = s.preferHome() ? KABC::Address::Home : KABC::Address::Work; - ad=abEntry.address(type); - if (!ad.isEmpty()) return ad; - - // Switch preference if still none found - type = !s.preferHome() ? KABC::Address::Home : KABC::Address::Work; - ad=abEntry.address(type); - if (!ad.isEmpty()) return ad; - - // Last-ditch attempt; see if there is a preferred home or work address - type = s.preferHome() ? KABC::Address::Home : KABC::Address::Work; - return abEntry.address(type | KABC::Address::Pref); -} - - -TQString KABCSync::getFieldForHHOtherPhone(const KABC::Addressee & abEntry, const KABCSync::Settings &s) -{ - switch(s.fieldForOtherPhone()) - { - case eOtherPhone: - return abEntry.phoneNumber(0).number(); - case eAssistant: - return abEntry.custom(CSL1("KADDRESSBOOK"), CSL1("AssistantsName")); - case eBusinessFax: - return abEntry.phoneNumber(KABC::PhoneNumber::Fax | KABC::PhoneNumber::Work).number(); - case eCarPhone: - return abEntry.phoneNumber(KABC::PhoneNumber::Car).number(); - case eEmail2: - return abEntry.emails().first(); - case eHomeFax: - return abEntry.phoneNumber(KABC::PhoneNumber::Fax | KABC::PhoneNumber::Home).number(); - case eTelex: - return abEntry.phoneNumber(KABC::PhoneNumber::Bbs).number(); - case eTTYTTDPhone: - return abEntry.phoneNumber(KABC::PhoneNumber::Pcs).number(); - default: - return TQString::null; - } -} - -void KABCSync::setFieldFromHHOtherPhone(KABC::Addressee & abEntry, const TQString &nr, const KABCSync::Settings &s) -{ - int phoneType = 0; - switch (s.fieldForOtherPhone()) - { - // One very special case which doesn't even map to a real phone type in KABC - case eAssistant: - abEntry.insertCustom(CSL1("KADDRESSBOOK"), CSL1("AssistantsName"), nr); - return; - // Special case: map phone to email, needs different handling. - case eEmail2: - abEntry.insertEmail(nr); - return; - // Remaining cases all map to various phone types - case eOtherPhone: - phoneType = 0; - break; - case eBusinessFax: - phoneType = KABC::PhoneNumber::Fax | KABC::PhoneNumber::Work; - break; - case eHomeFax: - phoneType = KABC::PhoneNumber::Fax | KABC::PhoneNumber::Home; - break; - case eCarPhone: - phoneType = KABC::PhoneNumber::Car; - break; - case eTelex: - phoneType = KABC::PhoneNumber::Bbs; - break; - case eTTYTTDPhone: - phoneType = KABC::PhoneNumber::Pcs; - break; - default: - WARNINGKPILOT << "Unknown phone mapping " << s.fieldForOtherPhone() << endl; - phoneType = 0; - } - KABC::PhoneNumber phone = abEntry.phoneNumber(phoneType); - phone.setNumber(nr); - phone.setType(phoneType); // Double-check in case there was no phonenumber of given type - abEntry.insertPhoneNumber(phone); -} - -void KABCSync::setAddress(PilotAddress &toPilotAddr, - const KABC::Address & abAddress) -{ - toPilotAddr.setField(entryAddress, abAddress.street()); - toPilotAddr.setField(entryCity, abAddress.locality()); - toPilotAddr.setField(entryState, abAddress.region()); - toPilotAddr.setField(entryZip, abAddress.postalCode()); - toPilotAddr.setField(entryCountry, abAddress.country()); -} - - -bool KABCSync::isArchived(const KABC::Addressee &addr) -{ - return addr.custom(KABCSync::appString, KABCSync::flagString) == TQString::number(SYNCDEL); -} - -void KABCSync::makeArchived(KABC::Addressee &addr) -{ - FUNCTIONSETUP; - addr.insertCustom(KABCSync::appString, KABCSync::flagString, TQString::number(SYNCDEL)); - addr.removeCustom(KABCSync::appString, KABCSync::idString); -} - - - - -void KABCSync::copy(PilotAddress &toPilotAddr, - const KABC::Addressee &fromAbEntry, - const PilotAddressInfo &appInfo, - const KABCSync::Settings &syncSettings) -{ - FUNCTIONSETUP; - - toPilotAddr.setDeleted(false); - - // don't do a reset since this could wipe out non copied info - //toPilotAddr.reset(); - toPilotAddr.setField(entryLastname, fromAbEntry.familyName()); - toPilotAddr.setField(entryFirstname, fromAbEntry.givenName()); - toPilotAddr.setField(entryCompany, fromAbEntry.organization()); - toPilotAddr.setField(entryTitle, fromAbEntry.prefix()); - toPilotAddr.setField(entryNote, fromAbEntry.note()); - - // do email first, to ensure they get stored - toPilotAddr.setEmails(fromAbEntry.emails()); - - // now in one fell swoop, set all phone numbers from the Addressee. Note, - // we don't need to differentiate between Fax numbers here--all Fax numbers - // (Home Fax or Work Fax or just plain old Fax) will get synced to the Pilot - KABCSync::setPhoneNumbers(appInfo,toPilotAddr,fromAbEntry.phoneNumbers()); - - // Other field is an oddball and if the user has more than one field set - // as "Other" then only one will be carried over. - TQString oth = KABCSync::getFieldForHHOtherPhone(fromAbEntry,syncSettings); - DEBUGKPILOT << fname << ": putting: ["<<oth<<"] into Palm's other"<<endl; - toPilotAddr.setPhoneField(PilotAddressInfo::eOther, - oth, PilotAddress::Replace); - - KABC::Address homeAddress = KABCSync::getAddress(fromAbEntry, syncSettings); - KABCSync::setAddress(toPilotAddr, homeAddress); - - // Process the additional entries from the Palm(the palm database app block tells us the name of the fields) - unsigned int customIndex = 0; - unsigned int hhField = entryCustom1; - - for ( ; customIndex<4; ++customIndex,++hhField ) - { - toPilotAddr.setField(hhField,getFieldForHHCustom(customIndex,fromAbEntry,syncSettings)); - } - - int categoryForHH = KABCSync::bestMatchedCategory(fromAbEntry.categories(), - appInfo,toPilotAddr.category()); - toPilotAddr.setCategory(categoryForHH); - - if (isArchived(fromAbEntry)) - { - toPilotAddr.setArchived( true ); - } - else - { - toPilotAddr.setArchived( false ); - } -} - -void KABCSync::copy(KABC::Addressee &toAbEntry, - const PilotAddress &fromPiAddr, - const PilotAddressInfo &appInfo, - const KABCSync::Settings &syncSettings) -{ - FUNCTIONSETUP; - - // copy straight forward values - toAbEntry.setFamilyName(fromPiAddr.getField(entryLastname)); - toAbEntry.setGivenName(fromPiAddr.getField(entryFirstname)); - toAbEntry.setOrganization(fromPiAddr.getField(entryCompany)); - toAbEntry.setPrefix(fromPiAddr.getField(entryTitle)); - toAbEntry.setNote(fromPiAddr.getField(entryNote)); - - // set the formatted name - // TODO this is silly and should be removed soon. - toAbEntry.setFormattedName(toAbEntry.realName()); - - // copy the phone stuff - // first off, handle the e-mail addresses as a group and separate from - // the other phone number fields - toAbEntry.setEmails(fromPiAddr.getEmails()); - - // going from Pilot to kabc, we need to clear out all phone records in kabc - // so that they can be set from the Pilot. If we do not do this, then records - // will be left in kabc when they are removed from the Pilot and we'll look - // broken. - KABC::PhoneNumber::List old = toAbEntry.phoneNumbers(); - for (KABC::PhoneNumber::List::Iterator it = old.begin(); it != old.end(); ++it) { - KABC::PhoneNumber phone = *it; - toAbEntry.removePhoneNumber(phone); - } - - // now, get the phone numbers from the Pilot and set them one at a time in kabc - KABC::PhoneNumber::List phones = KABCSync::getPhoneNumbers(fromPiAddr); - for (KABC::PhoneNumber::List::Iterator it = phones.begin(); it != phones.end(); ++it) { - KABC::PhoneNumber phone = *it; - // check for fax number if it is one, set the type per the user's direction - if (phone.type() & KABC::PhoneNumber::Fax) - { - phone.setType(syncSettings.faxTypeOnPC()); - } - toAbEntry.insertPhoneNumber(phone); - } - - // Note: this is weird, and it may cause data to not be synced if there is - // more than one "Other" field being used on the Pilot, since only one will - // be synced in either direction. - KABCSync::setFieldFromHHOtherPhone(toAbEntry, - fromPiAddr.getPhoneField(PilotAddressInfo::eOther),syncSettings); - - // going from Pilot to kabc, we need to clear out all addresses in kabc - // so that they can be set from the Pilot. If we do not do this, then records - // will be left in kabc when they are removed from the Pilot and we'll look - // broken. - KABC::Address::List oAddr = toAbEntry.addresses(); - for (KABC::Address::List::Iterator it = oAddr.begin(); it != oAddr.end(); ++it) { - const KABC::Address addr = *it; - toAbEntry.removeAddress(addr); - } - KABC::Address homeAddress = KABCSync::getAddress(toAbEntry,syncSettings); - homeAddress.setStreet(fromPiAddr.getField(entryAddress)); - homeAddress.setLocality(fromPiAddr.getField(entryCity)); - homeAddress.setRegion(fromPiAddr.getField(entryState)); - homeAddress.setPostalCode(fromPiAddr.getField(entryZip)); - homeAddress.setCountry(fromPiAddr.getField(entryCountry)); - toAbEntry.insertAddress(homeAddress); - - unsigned int customIndex = 0; - unsigned int hhField = entryCustom1; - - for ( ; customIndex<4; ++customIndex,++hhField ) - { - KABCSync::setFieldFromHHCustom(customIndex, - toAbEntry, - fromPiAddr.getField(hhField), - syncSettings); - } - - // copy the fromPiAddr pilot id to the custom field KPilot_Id; - // pilot id may be zero(since it could be new) but couldn't hurt - // to even assign it to zero; let's us know what state the - // toAbEntry is in - toAbEntry.insertCustom(KABCSync::appString, KABCSync::idString, TQString::number(fromPiAddr.id())); - - KABCSync::setCategory(toAbEntry, appInfo.categoryName(fromPiAddr.category())); - - showAddressee(toAbEntry); -} - -void KABCSync::showAddressee(const KABC::Addressee & abAddress) -{ - FUNCTIONSETUP; -#ifdef DEBUG - DEBUGKPILOT << "\tAbbrowser Contact Entry" << endl; - if (abAddress.isEmpty()) - { - DEBUGKPILOT<< "\t\tEMPTY"<<endl; - return; - } - DEBUGKPILOT << "\t\tLast name = " << abAddress.familyName() << endl; - DEBUGKPILOT << "\t\tFirst name = " << abAddress.givenName() << endl; - DEBUGKPILOT << "\t\tCompany = " << abAddress.organization() << endl; - DEBUGKPILOT << "\t\tJob Title = " << abAddress.prefix() << endl; - DEBUGKPILOT << "\t\tNote = " << abAddress.note() << endl; - DEBUGKPILOT << "\t\tCategory = " << abAddress.categories().first() << endl; - DEBUGKPILOT << "\t\tEmail = " << abAddress.emails().join(",") << endl; - - KABC::PhoneNumber::List phs = abAddress.phoneNumbers(); - for (KABC::PhoneNumber::List::Iterator it = phs.begin(); it != phs.end(); ++it) { - KABC::PhoneNumber phone = *it; - DEBUGKPILOT << "\t\t" << phone.label() - << "= " << phone.number() << endl; - } - - KABC::Address::List ads = abAddress.addresses(); - for (KABC::Address::List::Iterator it = ads.begin(); it != ads.end(); ++it) { - const KABC::Address addr = *it; - DEBUGKPILOT << "\t\tAddress = " << addr.street() <<endl; - DEBUGKPILOT << "\t\tLocality = " << addr.locality() <<endl; - DEBUGKPILOT << "\t\tRegion = " << addr.region() <<endl; - DEBUGKPILOT << "\t\tPostal code = " << addr.postalCode() <<endl; - DEBUGKPILOT << "\t\tCountry = " << addr.country() <<endl << endl; - } -#else - Q_UNUSED( abAddress ); -#endif -} - - - - -KABCSync::Settings::Settings() : - fDateFormat(), - fCustomMapping(4), // Reserve space for 4 elements, value 0 == CustomField - fOtherPhone(eOtherPhone), - fPreferHome(true), - fFaxTypeOnPC(KABC::PhoneNumber::Fax | KABC::PhoneNumber::Home) -{ -} - |