void MyMoneyContact::searchContactResult(KJob *job) { #ifdef HAVE_KDEPIMLIBS const Akonadi::RecursiveItemFetchJob *contactJob = qobject_cast<Akonadi::RecursiveItemFetchJob*>(job); Akonadi::Item::List items; if (contactJob) items = contactJob->items(); ContactData contactData; contactData.email = job->property("MyMoneyContact_email").toString(); foreach (const Akonadi::Item &item, items) { const KABC::Addressee &contact = item.payload<KABC::Addressee>(); if (contact.emails().contains(contactData.email)) { KABC::PhoneNumber phone = contact.phoneNumber(KABC::PhoneNumber::Home); contactData.phoneNumber = phone.number(); const KABC::Address &address = contact.address(KABC::Address::Home); contactData.street = address.street(); contactData.locality = address.locality(); contactData.country = address.country(); contactData.region = address.region(); contactData.postalCode = address.postalCode(); break; } } emit contactFetched(contactData); #else Q_UNUSED(job); #endif }
void KoRdfFoaF::fromKABC(KABC::Addressee addr) { m_name = addr.realName(); m_nick = addr.nickName(); KABC::PhoneNumber ph = addr.phoneNumber(KABC::PhoneNumber::Work); m_phone = ph.number(); m_homePage = addr.url().url(); }
void SendSmsAction::sendSms( const KABC::PhoneNumber &phoneNumber ) { const QString number = phoneNumber.number().trimmed(); QPointer<SmsDialog> dlg( new SmsDialog( number ) ); if ( dlg->exec() != QDialog::Accepted ) { // the cancel button has been clicked delete dlg; return; } const QString message = ( dlg != 0 ? dlg->message() : QString() ); delete dlg; // synchronize ContactActionsSettings::self()->readConfig(); // we handle skype separated if ( ContactActionsSettings::self()->sendSmsAction() == ContactActionsSettings::UseSkypeSms ) { QSkypeDialer dialer( QLatin1String( "AkonadiContacts" ) ); if ( dialer.sendSms( number, message ) ) { // I'm not sure whether here should be a notification. // Skype can do a notification itself if whished. } else { KMessageBox::sorry( 0, dialer.errorMessage() ); } return; } QString command = ContactActionsSettings::self()->smsCommand(); if ( command.isEmpty() ) { KMessageBox::sorry( 0, i18n( "There is no application set which could be executed. Please go to the settings dialog and configure one." ) ); return; } /* * %N the raw number * %n the number with all additional non-number characters removed */ command = command.replace( QLatin1String( "%N" ), phoneNumber.number() ); command = command.replace( QLatin1String( "%n" ), strippedSmsNumber( number ) ); command = command.replace( QLatin1String( "%t" ), message ); //Bug: 293232 In KDE3 We used %F to replace text command = command.replace( QLatin1String( "%F" ), message ); KRun::runCommand( command, 0 ); }
QString AddresseeDiffAlgo::toString(const KABC::PhoneNumber &number) { return number.number(); }
QString KWMailMergeKABC::getValue( const QString &name, int record ) const { kdDebug() << "KWMailMergeKABC::getValue(" << name << ", " << record << ")" << endl; if ( record < 0 ) return name; // This doesn't ever happen, right? So why is it there? Dirk Schmidt if ( record == -1 && _iterator == _addressBook->end() ) return ""; // // Set the iterator to the asked Addressee. // bool uidAvailable = false; if ( record != -1 ) { int counter = 0; for ( _UIDIterator = _exclusiveUIDs.begin(); _UIDIterator != _exclusiveUIDs.end() && counter < record; _UIDIterator++ ) { counter++; } for ( _iterator = _addressBook->begin(); _iterator != _addressBook->end(); ++_iterator ) { if( _iterator->uid() == *_UIDIterator ) { uidAvailable = true; break; } } } if( !uidAvailable ) { return ( i18n ( "KAddressbook entry '%1' not available." ).arg( *_UIDIterator ) ); } KABC::Addressee addr = *_iterator; _iterator++; // Don't know why. Could be removed? Dirk Schmidt // // Return the asked variable. // if ( name == "KAddressbook identifier" ) return addr.uid(); if ( name == "Name" ) return addr.name(); if ( name == "Formatted name" ) return addr.formattedName(); if ( name == "Family names" ) return addr.familyName(); if ( name == "Given name" ) return addr.givenName(); if ( name == "Additional names" ) return addr.additionalName(); if ( name == "Honorific prefixes" ) return addr.prefix(); if ( name == "Honorific suffixes" ) return addr.suffix(); if ( name == "Nick name" ) return addr.nickName(); if ( name == "Birthday" ) return KGlobal::locale()->formatDate( addr.birthday().date() ); if ( name == "Home address: Street" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.street(); } if ( name == "Home address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.locality(); } if ( name == "Home address: Region" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.region(); } if ( name == "Home address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.postalCode(); } if ( name == "Home address: Country" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.country(); } if ( name == "Home address: Label" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.label(); } if ( name == "Business address: Street" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.street(); } if ( name == "Business address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.locality(); } if ( name == "Business address: Region" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.region(); } if ( name == "Business address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.postalCode(); } if ( name == "Business address: Country" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.country(); } if ( name == "Business address: Label" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.label(); } if ( name == "Prefered address: Street" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.street(); } if ( name == "Prefered address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.locality(); } if ( name == "Prefered address: Region" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.region(); } if ( name == "Prefered address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.postalCode(); } if ( name == "Prefered address: Country" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.country(); } if ( name == "Prefered address: Label" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.label(); } if ( name == "Home phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Home ); return phone.number(); } if ( name == "Business phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Work ); return phone.number(); } if ( name == "Mobile phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Cell ); return phone.number(); } if ( name == "Home fax" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ); return phone.number(); } if ( name == "Business fax" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ); return phone.number(); } if ( name == "Car phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Car ); return phone.number(); } if ( name == "ISDN" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Isdn ); return phone.number(); } if ( name == "Pager" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Pager ); return phone.number(); } if ( name == "Email" ) return addr.preferredEmail(); if ( name == "Mailer" ) return addr.mailer(); if ( name == "Time zone" ) { KABC::TimeZone zone = addr.timeZone(); return QString::number( zone.offset() ); } if ( name == "Geographic position" ) { KABC::Geo geo = addr.geo(); QString lat; QString longi; if( geo.latitude()<0 ) lat = QString( i18n("%1 South") ).arg( -geo.latitude() ); else lat = QString( i18n("%1 North") ).arg( geo.latitude() ); if( geo.longitude()<0 ) // There is something going wrong, because "W" is replaced by "q ". // Needs fix. longi = QString( i18n("%1 West") ).arg( -geo.longitude() ); else longi = QString( i18n("%1 East") ).arg( geo.longitude() ); return i18n( "Geographic coordinates", "%1, %2" ).arg ( lat, longi ); } if ( name == "Title" ) return addr.title(); if ( name == "Role" ) return addr.role(); if ( name == "Organization" ) return addr.organization(); if ( name == "Note" ) return addr.note(); if ( name == "productId" ) return addr.productId(); if ( name == "Revision" ) return KGlobal::locale()->formatDate( addr.revision().date() ); if ( name == "sortString" ) return addr.sortString(); if ( name == "URL" ) return addr.url().url(); if ( name == "Secrecy" ) { KABC::Secrecy secrecy = addr.secrecy(); return KABC::Secrecy::typeLabel( secrecy.type() ); } return ( i18n("Unkown mail merge variable: %1").arg ( name ) ) ; }
QString Contact::toXml(const KABC::Addressee &addr) { /** * Handle distribution lists. */ if(KPIM::DistributionList::isDistributionList(addr)) { if(s_distListMap) return (*s_distListMap)[ addr.uid() ]; else return QString(); } /** * Handle normal contacts. */ QString xml; xml += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; xml += "<contact>\n"; xml += "<direct_ref>" + addr.uid() + "</direct_ref>\n"; xml += "<sensitivity>" + custom("sensitivity", addr, "0") + "</sensitivity>\n"; xml += "<message_class>IPM.Contact</message_class>\n"; xml += "<is_recurring>" + custom("is_recurring", addr, "false") + "</is_recurring>\n"; xml += "<reminder_set>" + custom("reminder_set", addr, "false") + "</reminder_set>\n"; xml += "<send_rich_info>" + custom("send_rich_info", addr, "false") + "</send_rich_info>\n"; xml += "<subject>" + addr.formattedName() + "</subject>\n"; xml += "<last_modification_time>" + addr.revision().toString(Qt::ISODate) + "</last_modification_time>\n"; xml += "<display_name_prefix>" + addr.prefix() + "</display_name_prefix>\n"; xml += "<first_name>" + addr.givenName() + "</first_name>\n"; xml += "<middle_name>" + addr.additionalName() + "</middle_name>\n"; xml += "<last_name>" + addr.familyName() + "</last_name>\n"; xml += "<suffix>" + addr.suffix() + "</suffix>\n"; xml += "<display_name>" + addr.assembledName() + "</display_name>\n"; xml += "<file_as>" + addr.formattedName() + "</file_as>\n"; xml += "<nickname>" + addr.nickName() + "</nickname>\n"; xml += "<web_page_address>" + addr.url().url() + "</web_page_address>\n"; xml += "<company_name>" + addr.organization() + "</company_name>\n"; xml += "<job_title>" + addr.title() + "</job_title>\n"; QStringList emails = addr.emails(); for(uint i = 0; i < 3; ++i) { QString type, address, comment, display; if(i < emails.count()) { type = "SMTP"; address = emails[ i ]; /** * If the contact was created by kontact use the email address as * display name and the formatted name as comment, otherwise we use * the values from the server. */ if(custom("comes_from_scalix", addr) != "true") { comment = addr.formattedName(); display = emails[ i ]; } else { comment = custom(QString("email%1_address_with_comment").arg(i + 1), addr); display = custom(QString("email%1_display_name").arg(i + 1), addr); } } xml += QString("<email%1_address_type>").arg(i + 1) + type + QString("</email%1_address_type>").arg(i + 1) + "\n"; xml += QString("<email%1_address>").arg(i + 1) + address + QString("</email%1_address>").arg(i + 1) + "\n"; xml += QString("<email%1_address_with_comment>").arg(i + 1) + comment + QString("</email%1_address_with_comment>").arg(i + 1) + "\n"; xml += QString("<email%1_display_name>").arg(i + 1) + display + QString("</email%1_display_name>").arg(i + 1) + "\n"; } KABC::PhoneNumber phone = addr.phoneNumber(KABC::PhoneNumber::Home); xml += "<home_phone_number>" + phone.number() + "</home_phone_number>\n"; phone = addr.phoneNumber(KABC::PhoneNumber::Work); xml += "<work_phone_number>" + phone.number() + "</work_phone_number>\n"; phone = addr.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax); xml += "<work_fax_number>" + phone.number() + "</work_fax_number>\n"; phone = addr.phoneNumber(KABC::PhoneNumber::Cell); xml += "<mobile_phone_number>" + phone.number() + "</mobile_phone_number>\n"; const KABC::Address workAddress = addr.address(KABC::Address::Work); xml += "<work_address_street>" + workAddress.street() + "</work_address_street>\n"; xml += "<work_address_zip>" + workAddress.postalCode() + "</work_address_zip>\n"; xml += "<work_address_city>" + workAddress.locality() + "</work_address_city>\n"; xml += "<work_address_state>" + workAddress.region() + "</work_address_state>\n"; xml += "<work_address_country>" + workAddress.country() + "</work_address_country>\n"; const KABC::Address homeAddress = addr.address(KABC::Address::Home); xml += "<home_address_street>" + homeAddress.street() + "</home_address_street>\n"; xml += "<home_address_zip>" + homeAddress.postalCode() + "</home_address_zip>\n"; xml += "<home_address_city>" + homeAddress.locality() + "</home_address_city>\n"; xml += "<home_address_state>" + homeAddress.region() + "</home_address_state>\n"; xml += "<home_address_country>" + homeAddress.country() + "</home_address_country>\n"; const KABC::Address otherAddress = addr.address(KABC::Address::Dom); xml += "<other_address_street>" + otherAddress.street() + "</other_address_street>\n"; xml += "<other_address_zip>" + otherAddress.postalCode() + "</other_address_zip>\n"; xml += "<other_address_city>" + otherAddress.locality() + "</other_address_city>\n"; xml += "<other_address_state>" + otherAddress.region() + "</other_address_state>\n"; xml += "<other_address_country>" + otherAddress.country() + "</other_address_country>\n"; if(homeAddress.type() & KABC::Address::Pref) xml += "<selected_mailing_address>1</selected_mailing_address>\n"; else if(workAddress.type() & KABC::Address::Pref) xml += "<selected_mailing_address>2</selected_mailing_address>\n"; else if(otherAddress.type() & KABC::Address::Pref) xml += "<selected_mailing_address>3</selected_mailing_address>\n"; xml += "<im_address>" + addr.custom("KADDRESSBOOK", "X-IMAddress") + "</im_address>\n"; xml += "<manager>" + addr.custom("KADDRESSBOOK", "X-ManagersName") + "</manager>\n"; xml += "<department>" + addr.custom("KADDRESSBOOK", "X-Department") + "</department>\n"; xml += "<assistant>" + addr.custom("KADDRESSBOOK", "X-AssistantsName") + "</assistant>\n"; xml += "<profession>" + addr.custom("KADDRESSBOOK", "X-Profession") + "</profession>\n"; xml += "<office_location>" + addr.custom("KADDRESSBOOK", "X-Office") + "</office_location>\n"; xml += "<spouse>" + addr.custom("KADDRESSBOOK", "X-SpousesName") + "</spouse>\n"; xml += "<bday>" + addr.birthday().toString(Qt::ISODate) + "</bday>\n"; xml += "<anniversary>" + addr.custom("KADDRESSBOOK", "X-Anniversary") + "</anniversary>\n"; xml += "<mapi_charset>" + custom("mapi_charset", addr, "UTF8") + "</mapi_charset>"; xml += "</contact>\n"; return xml; }
static KABC::Addressee convertLdapAttributesToAddressee( const KLDAP::LdapAttrMap &attrs ) { KABC::Addressee addr; // name if ( !attrs.value( "cn" ).isEmpty() ) { addr.setNameFromString( asUtf8( attrs["cn"].first() ) ); } // email KLDAP::LdapAttrValue lst = attrs["mail"]; KLDAP::LdapAttrValue::ConstIterator it = lst.constBegin(); bool pref = true; while ( it != lst.constEnd() ) { addr.insertEmail( asUtf8( *it ), pref ); pref = false; ++it; } if ( !attrs.value( "o" ).isEmpty() ) { addr.setOrganization( asUtf8( attrs[ "o" ].first() ) ); } if ( addr.organization().isEmpty() && !attrs.value( "Company" ).isEmpty() ) { addr.setOrganization( asUtf8( attrs[ "Company" ].first() ) ); } // Address KABC::Address workAddr( KABC::Address::Work ); if ( !attrs.value( "department" ).isEmpty() ) { addr.setDepartment( asUtf8( attrs[ "department" ].first() ) ); } if ( !workAddr.isEmpty() ) { addr.insertAddress( workAddr ); } // phone if ( !attrs.value( "homePhone" ).isEmpty() ) { KABC::PhoneNumber homeNr = asUtf8( attrs[ "homePhone" ].first() ); homeNr.setType( KABC::PhoneNumber::Home ); addr.insertPhoneNumber( homeNr ); } if ( !attrs.value( "telephoneNumber" ).isEmpty() ) { KABC::PhoneNumber workNr = asUtf8( attrs[ "telephoneNumber" ].first() ); workNr.setType( KABC::PhoneNumber::Work ); addr.insertPhoneNumber( workNr ); } if ( !attrs.value( "facsimileTelephoneNumber" ).isEmpty() ) { KABC::PhoneNumber faxNr = asUtf8( attrs[ "facsimileTelephoneNumber" ].first() ); faxNr.setType( KABC::PhoneNumber::Fax ); addr.insertPhoneNumber( faxNr ); } if ( !attrs.value( "mobile" ).isEmpty() ) { KABC::PhoneNumber cellNr = asUtf8( attrs[ "mobile" ].first() ); cellNr.setType( KABC::PhoneNumber::Cell ); addr.insertPhoneNumber( cellNr ); } if ( !attrs.value( "pager" ).isEmpty() ) { KABC::PhoneNumber pagerNr = asUtf8( attrs[ "pager" ].first() ); pagerNr.setType( KABC::PhoneNumber::Pager ); addr.insertPhoneNumber( pagerNr ); } return addr; }
KABC::Addressee addr = ab->whoAmI(); if (addr.isEmpty()) { KMessageBox::sorry(0, i18n("No personal contact data set, please use the option \ \"Set as Personal Contact Data\" from the \"Edit\" menu in KAddressbook to set one.")); return; } d->m_authorUi->leFullName->setText(addr.formattedName()); d->m_authorUi->leInitials->setText(addr.givenName()[ 0 ] + ". " + addr.familyName()[ 0 ] + '.'); d->m_authorUi->leTitle->setText(addr.title()); d->m_authorUi->leCompany->setText(addr.organization()); d->m_authorUi->leEmail->setText(addr.preferredEmail()); KABC::PhoneNumber phone = addr.phoneNumber(KABC::PhoneNumber::Home); d->m_authorUi->lePhoneHome->setText(phone.number()); phone = addr.phoneNumber(KABC::PhoneNumber::Work); d->m_authorUi->lePhoneWork->setText(phone.number()); phone = addr.phoneNumber(KABC::PhoneNumber::Fax); d->m_authorUi->leFax->setText(phone.number()); KABC::Address a = addr.address(KABC::Address::Home); d->m_authorUi->leCountry->setText(a.country()); d->m_authorUi->lePostal->setText(a.postalCode()); d->m_authorUi->leCity->setText(a.locality()); d->m_authorUi->leStreet->setText(a.street()); #endif }
SmsDialog::SmsDialog( const KABC::PhoneNumber &number ) : mNumber( number.number() ) { initUI(); }