本文整理汇总了C++中kabc::Addressee::insertEmail方法的典型用法代码示例。如果您正苦于以下问题:C++ Addressee::insertEmail方法的具体用法?C++ Addressee::insertEmail怎么用?C++ Addressee::insertEmail使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kabc::Addressee
的用法示例。
在下文中一共展示了Addressee::insertEmail方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testDuplicate
void TestDistrList::testDuplicate()
{
kDebug() ;
// This is a special test for the case where we have a contact and a distr list with the same name
KABC::AddressBook *ab = KABC::StdAddressBook::self();
KABC::Addressee addr;
addr.setName( "foo" );
addr.insertEmail( "[email protected]", true );
ab->insertAddressee( addr );
#if 0 // we need a findByFormattedName
KABC::Addressee::List addrList = ab->findByName( "foo" );
assert( addrList.count() == 2 );
bool a = DistributionList::isDistributionList( addrList.first() );
bool b = DistributionList::isDistributionList( addrList.last() );
// one is a distr list, but not both
assert( a || b );
//
assert( ! ( a && b ) );
#endif
DistributionList dl = DistributionList::findByName( ab, "foo" );
assert( !dl.isEmpty() );
assert( DistributionList::isDistributionList( dl ) );
assert( dl.formattedName() == "foo" );
}
示例2: add
void RecentAddresses::add( const QString& entry )
{
if ( !entry.isEmpty() && m_maxCount > 0 ) {
QStringList list = KPIM::splitEmailAddrList( entry );
for( QStringList::const_iterator e_it = list.begin(); e_it != list.end(); ++e_it ) {
KPIM::EmailParseResult errorCode = KPIM::isValidEmailAddress( *e_it );
if ( errorCode != KPIM::AddressOk )
continue;
QString email;
QString fullName;
KABC::Addressee addr;
KABC::Addressee::parseEmailAddress( *e_it, fullName, email );
for ( KABC::Addressee::List::Iterator it = m_addresseeList.begin();
it != m_addresseeList.end(); ++it )
{
if ( email == (*it).preferredEmail() ) {
//already inside, remove it here and add it later at pos==1
m_addresseeList.remove( it );
break;
}
}
addr.setNameFromString( fullName );
addr.insertEmail( email, true );
m_addresseeList.prepend( addr );
adjustSize();
}
}
}
示例3: setRecipients
void DistributionListDialog::setRecipients( const Recipient::List &recipients )
{
Recipient::List::ConstIterator it;
for( it = recipients.constBegin(); it != recipients.constEnd(); ++it ) {
QStringList emails = KPIMUtils::splitAddressList( (*it).email() );
QStringList::ConstIterator it2;
for( it2 = emails.constBegin(); it2 != emails.constEnd(); ++it2 ) {
QString name;
QString email;
KABC::Addressee::parseEmailAddress( *it2, name, email );
if ( !email.isEmpty() ) {
DistributionListItem *item = new DistributionListItem( mRecipientsList );
KABC::Addressee::List addressees =
KABC::StdAddressBook::self( true )->findByEmail( email );
if ( addressees.isEmpty() ) {
KABC::Addressee a;
a.setNameFromString( name );
a.insertEmail( email );
item->setTransientAddressee( a, email );
item->setCheckState( 0, Qt::Checked );
} else {
KABC::Addressee::List::ConstIterator it3;
for( it3 = addressees.constBegin(); it3 != addressees.constEnd(); ++it3 ) {
item->setAddressee( *it3, email );
if ( it3 == addressees.constBegin() ) item->setCheckState( 0, Qt::Checked );
}
}
}
}
}
}
示例4: setSelectedItem
void AddresseeEmailSelection::setSelectedItem( uint fieldIndex, const QStringList &emails )
{
QStringList::ConstIterator it;
for ( it = emails.begin(); it != emails.end(); ++it ) {
KABC::Addressee addr;
addr.insertEmail( *it, true );
selector()->setItemSelected( fieldIndex, addr, 0, *it );
}
}
示例5: addAddresseeToSelected
void
AddressesDialog::setSelectedBCC( const QStringList& l )
{
QString name, email;
for ( QStringList::ConstIterator it = l.constBegin(); it != l.constEnd(); ++it ) {
KABC::Addressee addr;
KABC::Addressee::parseEmailAddress( *it, name, email );
addr.setNameFromString( name );
addr.insertEmail( email );
addAddresseeToSelected( addr, selectedBccItem() );
}
}
示例6: toKABC
KABC::Addressee toKABC(const Kolab::Contact &contact)
{
KABC::Addressee addressee;
addressee.setUid(fromStdString(contact.uid()));
addressee.setCategories(toStringList(contact.categories()));
//addressee.setName(fromStdString(contact.name()));//This one is only for compatiblity (and results in a non-existing name property)
addressee.setFormattedName(fromStdString(contact.name())); //This on corresponds to fn
const Kolab::NameComponents &nc = contact.nameComponents();
if (!nc.surnames().empty()) {
addressee.setFamilyName(fromStdString(nc.surnames().front()));
}
if (!nc.given().empty()) {
addressee.setGivenName(fromStdString(nc.given().front()));
}
if (!nc.additional().empty()) {
addressee.setAdditionalName(fromStdString(nc.additional().front()));
}
if (!nc.prefixes().empty()) {
addressee.setPrefix(fromStdString(nc.prefixes().front()));
}
if (!nc.suffixes().empty()) {
addressee.setSuffix(fromStdString(nc.suffixes().front()));
}
addressee.setNote(fromStdString(contact.note()));
addressee.setSecrecy(KABC::Secrecy::Public); //We don't have any privacy setting in xCard
QString preferredEmail;
if (!contact.emailAddresses().empty()) {
QStringList emails;
foreach( const Kolab::Email &email, contact.emailAddresses()) {
emails << fromStdString(email.address());
const QString types = emailTypesToStringList(email.types());
if (!types.isEmpty()) {
addressee.insertCustom(QLatin1String("KOLAB"), QString::fromLatin1("EmailTypes%1").arg(fromStdString(email.address())), types);
}
}
addressee.setEmails(emails);
if ((contact.emailAddressPreferredIndex() >= 0) && (contact.emailAddressPreferredIndex() < static_cast<int>(contact.emailAddresses().size()))) {
preferredEmail = fromStdString(contact.emailAddresses().at(contact.emailAddressPreferredIndex()).address());
} else {
preferredEmail = fromStdString(contact.emailAddresses().at(0).address());
}
addressee.insertEmail(preferredEmail, true);
}
示例7: load
void RecentAddresses::load( KConfig *config )
{
QStringList addresses;
QString name;
QString email;
m_addresseeList.clear();
KConfigGroupSaver cs( config, "General" );
m_maxCount = config->readNumEntry( "Maximum Recent Addresses", 40 );
addresses = config->readListEntry( "Recent Addresses" );
for ( QStringList::Iterator it = addresses.begin(); it != addresses.end(); ++it ) {
KABC::Addressee::parseEmailAddress( *it, name, email );
if ( !email.isEmpty() ) {
KABC::Addressee addr;
addr.setNameFromString( name );
addr.insertEmail( email, true );
m_addresseeList.append( addr );
}
}
adjustSize();
}
示例8: addEmail
//-----------------------------------------------------------------------------
void KAddrBookExternal::addEmail(const QString &addr, QWidget *parent)
{
QString email;
QString name;
KABC::Addressee::parseEmailAddress(addr, name, email);
KABC::AddressBook *ab = KABC::StdAddressBook::self(true);
ab->setErrorHandler(new KABC::GuiErrorHandler(parent));
// force a reload of the address book file so that changes that were made
// by other programs are loaded
ab->asyncLoad();
// if we have to reload the address book then we should also wait until
// it's completely reloaded
#if KDE_IS_VERSION(3,4,89)
// This ugly hack will be removed in 4.0
while(!ab->loadingHasFinished())
{
QApplication::eventLoop()->processEvents(QEventLoop::ExcludeUserInput);
// use sleep here to reduce cpu usage
usleep(100);
}
#endif
KABC::Addressee::List addressees = ab->findByEmail(email);
if(addressees.isEmpty())
{
KABC::Addressee a;
a.setNameFromString(name);
a.insertEmail(email, true);
{
KConfig config("kaddressbookrc");
config.setGroup("General");
int type = config.readNumEntry("FormattedNameType", 1);
QString name;
switch(type)
{
case 1:
name = a.givenName() + " " + a.familyName();
break;
case 2:
name = a.assembledName();
break;
case 3:
name = a.familyName() + ", " + a.givenName();
break;
case 4:
name = a.familyName() + " " + a.givenName();
break;
case 5:
name = a.organization();
break;
default:
name = "";
break;
}
name.simplifyWhiteSpace();
a.setFormattedName(name);
}
if(KAddrBookExternal::addAddressee(a))
{
QString text = i18n("<qt>The email address <b>%1</b> was added to your "
"addressbook; you can add more information to this "
"entry by opening the addressbook.</qt>").arg(addr);
KMessageBox::information(parent, text, QString::null, "addedtokabc");
}
}
else
{
QString text = i18n("<qt>The email address <b>%1</b> is already in your "
"addressbook.</qt>").arg(addr);
KMessageBox::information(parent, text, QString::null,
"alreadyInAddressBook");
}
ab->setErrorHandler(0);
}
示例9: loadAll
bool KDEAccountsFormat::loadAll( KABC::AddressBook *book,
KABC::Resource *resource,
QFile *file )
{
if ( !book || !file ) // eh?
return false;
QString uuid = "KDEAccountsEntry.";
int id = 0;
QByteArray array = file->readAll();
file->close();
QByteArray::ConstIterator it = array.begin();
QByteArray::ConstIterator end = array.end();
QByteArray::ConstIterator startLine;
QString line;
char eol = '\n';
char delim = ' ';
for ( ; it < end; it++ )
{
startLine = it;
for ( ; it && it < end && *it != eol; it++ )
{ } // find eol
uint length = it - startLine;
line = QString::fromUtf8( startLine, length ).simplified();
QString nickName;
QString name;
QString email;
int firstSpace = line.indexOf( delim );
if ( firstSpace > 0 )
{
nickName = line.left( firstSpace );
int lastSpace = line.lastIndexOf( delim );
if ( lastSpace > firstSpace )
{
email = line.mid( lastSpace +1 );
int start = firstSpace + 1;
int length = lastSpace - start;
name = line.mid( start, length );
if ( !email.isEmpty() )
{
KABC::Addressee address;
address.setNickName( nickName );
address.setNameFromString( name );
address.setOrganization("KDE Project");
address.insertCategory("KDE Developer");
address.insertEmail( email );
address.setUid( uuid + QString::number( id++ ));
address.setResource( resource );
book->insertAddressee( address );
}
}
}
}
return true;
}
示例10: tmpZone
KABC::Addressee VCard21Parser::readFromString(const QString &data)
{
KABC::Addressee addressee;
VCard21ParserImpl *vCard = VCard21ParserImpl::parseVCard(data);
QString tmpStr;
// Check if parsing failed
if(vCard == 0)
{
kdDebug() << "Parsing failed" << endl;
return addressee;
}
// set the addressees name and formated name
QStringList tmpList = vCard->getValues(VCARD_N);
QString formattedName = "";
if(tmpList.count() > 0)
addressee.setFamilyName(tmpList[0]);
if(tmpList.count() > 1)
addressee.setGivenName(tmpList[1]);
if(tmpList.count() > 2)
addressee.setAdditionalName(tmpList[2]);
if(tmpList.count() > 3)
addressee.setPrefix(tmpList[3]);
if(tmpList.count() > 4)
addressee.setSuffix(tmpList[4]);
tmpStr = (vCard->getValue(VCARD_FN));
if(!tmpStr.isEmpty())
addressee.setFormattedName(tmpStr);
// set the addressee's nick name
tmpStr = vCard->getValue(VCARD_NICKNAME);
addressee.setNickName(tmpStr);
// set the addressee's organization
tmpStr = vCard->getValue(VCARD_ORG);
addressee.setOrganization(tmpStr);
// set the addressee's title
tmpStr = vCard->getValue(VCARD_TITLE);
addressee.setTitle(tmpStr);
// set the addressee's email - we can only deal with two. The preferenced one and one other.
tmpStr = vCard->getValue(VCARD_EMAIL, VCARD_EMAIL_INTERNET);
addressee.insertEmail(tmpStr, false);
tmpStr = vCard->getValue(VCARD_EMAIL, VCARD_EMAIL_PREF);
addressee.insertEmail(tmpStr, true);
// set the addressee's url
tmpStr = vCard->getValue(VCARD_URL);
if(tmpStr.isEmpty())
tmpStr = vCard->getValue(VCARD_URL, VCARD_ADR_WORK);
if(tmpStr.isEmpty())
tmpStr = vCard->getValue(VCARD_URL, VCARD_ADR_HOME);
if(!tmpStr.isEmpty())
{
addressee.setUrl(KURL(tmpStr));
}
// set the addressee's birthday
tmpStr = vCard->getValue(VCARD_BDAY);
addressee.setBirthday(VCardStringToDate(tmpStr));
// set the addressee's phone numbers
for(QValueListIterator< VCardLineX > i = vCard->_vcdata->begin(); i != vCard->_vcdata->end(); ++i)
{
if((*i).name == VCARD_TEL)
{
int type = 0;
if((*i).qualified)
{
if((*i).qualifiers.contains(VCARD_TEL_HOME))
type |= PhoneNumber::Home;
if((*i).qualifiers.contains(VCARD_TEL_WORK))
type |= PhoneNumber::Work;
if((*i).qualifiers.contains(VCARD_TEL_PREF))
type |= PhoneNumber::Pref;
// if ( (*i).qualifiers.contains( VCARD_TEL_VOICE ) )
// type |= PhoneNumber::Voice;
if((*i).qualifiers.contains(VCARD_TEL_FAX))
type |= PhoneNumber::Fax;
if((*i).qualifiers.contains(VCARD_TEL_MSG))
type |= PhoneNumber::Msg;
if((*i).qualifiers.contains(VCARD_TEL_CELL))
type |= PhoneNumber::Cell;
if((*i).qualifiers.contains(VCARD_TEL_PAGER))
type |= PhoneNumber::Pager;
if((*i).qualifiers.contains(VCARD_TEL_BBS))
type |= PhoneNumber::Bbs;
if((*i).qualifiers.contains(VCARD_TEL_MODEM))
type |= PhoneNumber::Modem;
if((*i).qualifiers.contains(VCARD_TEL_CAR))
type |= PhoneNumber::Car;
if((*i).qualifiers.contains(VCARD_TEL_ISDN))
type |= PhoneNumber::Isdn;
if((*i).qualifiers.contains(VCARD_TEL_VIDEO))
type |= PhoneNumber::Video;
if((*i).qualifiers.contains(VCARD_TEL_PCS))
type |= PhoneNumber::Pcs;
}
addressee.insertPhoneNumber(PhoneNumber((*i).parameters[0], type));
}
}
//.........这里部分代码省略.........
示例11: importContacts
//.........这里部分代码省略.........
line = gmxStream.readLine();
while (!line.startsWith("####") && !gmxStream.atEnd()) {
while (1) {
strList = QStringList::split('#', line, true);
if (strList.count() >= 11)
break;
line.append('\n');
line.append(gmxStream.readLine());
};
KABC::Addressee *addr = new KABC::Addressee;
addr->setNickName(strList[1]);
addr->setGivenName(strList[2]);
addr->setFamilyName(strList[3]);
addr->setTitle(strList[4]);
if (addr->formattedName().isEmpty())
addr->setFormattedName(addr->realName());
if (checkDateTime(strList[5],dt)) addr->setBirthday(dt);
addr->setNote(strList[6]);
if (checkDateTime(strList[7],dt)) addr->setRevision(dt);
// addr->setStatus(strList[8]); Status
// addr->xxx(strList[9]); Address_link_id
// addr->setCategory(strList[10]); Categories
addrMap[strList[0]] = addr;
line = gmxStream.readLine();
}
// now read the address records
line = gmxStream.readLine();
if (!line.startsWith("AB_ADDRESS_RECORDS:")) {
kdWarning() << "Could not find address records!\n";
return addrList;
}
// Address_id,Record_id,Street,Country,Zipcode,City,Phone,Fax,Mobile,Mobile_type,Email,
// Homepage,Position,Comments,Record_type_id,Record_type,Company,Department,Change_date,Preferred,Status
line = gmxStream.readLine();
line = gmxStream.readLine();
while (!line.startsWith("####") && !gmxStream.atEnd()) {
while (1) {
strList = QStringList::split('#', line, true);
if (strList.count() >= 21)
break;
line.append('\n');
line.append(gmxStream.readLine());
};
KABC::Addressee *addr = addrMap[strList[0]];
if (addr) {
for ( QStringList::Iterator it = strList.begin(); it != strList.end(); ++it )
*it = (*it).simplifyWhiteSpace();
// strList[1] = Record_id (numbered item, ignore here)
int id = strList[14].toInt(); // Record_type_id (0=work,1=home,2=other)
int type = (id==0) ? KABC::Address::Work : KABC::Address::Home;
if (!strList[19].isEmpty() && strList[19].toInt()!=0)
type |= KABC::Address::Pref; // Preferred address (seems to be bitfield for telephone Prefs)
KABC::Address adr = addr->address(type);
adr.setStreet(strList[2]);
adr.setCountry(strList[3]);
adr.setPostalCode(strList[4]);
adr.setLocality(strList[5]);
addr->insertPhoneNumber( KABC::PhoneNumber(strList[6], KABC::PhoneNumber::Home) );
addr->insertPhoneNumber( KABC::PhoneNumber(strList[7], KABC::PhoneNumber::Fax) );
int celltype = KABC::PhoneNumber::Cell;
// strList[9]=Mobile_type // always 0 or -1(default phone).
if (strList[9].toInt()) celltype |= KABC::PhoneNumber::Pref;
addr->insertPhoneNumber( KABC::PhoneNumber(strList[8], celltype) );
addr->insertEmail(strList[10]);
if (!strList[11].isEmpty()) addr->setUrl(strList[11]);
if (!strList[12].isEmpty()) addr->setRole(strList[12]);
// strList[13]=Comments
// strList[14]=Record_type_id (0,1,2) - see above
// strList[15]=Record_type (name of this additional record entry)
if (!strList[16].isEmpty()) addr->setOrganization(strList[16]); // Company
if (!strList[17].isEmpty()) addr->insertCustom(
"KADDRESSBOOK", "X-Department", strList[17]); // Department
if (checkDateTime(strList[18],dt)) addr->setRevision(dt); // Change_date
// strList[19]=Preferred (see above)
// strList[20]=Status (should always be "1")
addr->insertAddress(adr);
} else {
kdWarning() << "unresolved line: " << line << endl;
}
line = gmxStream.readLine();
}
// now add the addresses to to addrList
for ( AddressMap::Iterator it = addrMap.begin(); it != addrMap.end(); ++it ) {
KABC::Addressee *addr = it.data();
addrList.append(*addr);
delete addr;
}
file.close();
return addrList;
}
示例12:
static void setEmail1(const QString &value, KABC::Addressee &addressee)
{
addressee.insertEmail(value, true);
}
示例13: fromXml
//.........这里部分代码省略.........
else if(element.tagName() == "work_phone_number")
addr.insertPhoneNumber(KABC::PhoneNumber(element.text(), KABC::PhoneNumber::Work));
else if(element.tagName() == "work_fax_number")
addr.insertPhoneNumber(KABC::PhoneNumber(element.text(), KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax));
else if(element.tagName() == "mobile_phone_number")
addr.insertPhoneNumber(KABC::PhoneNumber(element.text(), KABC::PhoneNumber::Cell));
// address (work)
else if(element.tagName() == "work_address_street")
workAddress.setStreet(element.text());
else if(element.tagName() == "work_address_zip")
workAddress.setPostalCode(element.text());
else if(element.tagName() == "work_address_city")
workAddress.setLocality(element.text());
else if(element.tagName() == "work_address_state")
workAddress.setRegion(element.text());
else if(element.tagName() == "work_address_country")
workAddress.setCountry(element.text());
// address (home)
else if(element.tagName() == "home_address_street")
homeAddress.setStreet(element.text());
else if(element.tagName() == "home_address_zip")
homeAddress.setPostalCode(element.text());
else if(element.tagName() == "home_address_city")
homeAddress.setLocality(element.text());
else if(element.tagName() == "home_address_state")
homeAddress.setRegion(element.text());
else if(element.tagName() == "home_address_country")
homeAddress.setCountry(element.text());
// address (other)
else if(element.tagName() == "other_address_street")
otherAddress.setStreet(element.text());
else if(element.tagName() == "other_address_zip")
otherAddress.setPostalCode(element.text());
else if(element.tagName() == "other_address_city")
otherAddress.setLocality(element.text());
else if(element.tagName() == "other_address_state")
otherAddress.setRegion(element.text());
else if(element.tagName() == "other_address_country")
otherAddress.setCountry(element.text());
else if(element.tagName() == "selected_mailing_address")
switch(element.text().toInt())
{
case 1:
homeAddress.setType(homeAddress.type() | KABC::Address::Pref);
break;
case 2:
workAddress.setType(workAddress.type() | KABC::Address::Pref);
break;
case 3:
otherAddress.setType(otherAddress.type() | KABC::Address::Pref);
break;
default:
Q_ASSERT(!"Unknown selected_mailing_address enum");
break;
}
// misc
else if(element.tagName() == "im_address")
addr.insertCustom("KADDRESSBOOK", "X-IMAddress", element.text());
else if(element.tagName() == "manager")
addr.insertCustom("KADDRESSBOOK", "X-ManagersName", element.text());
else if(element.tagName() == "department")
addr.insertCustom("KADDRESSBOOK", "X-Department", element.text());
else if(element.tagName() == "assistant")
addr.insertCustom("KADDRESSBOOK", "X-AssistantsName", element.text());
else if(element.tagName() == "profession")
addr.insertCustom("KADDRESSBOOK", "X-Profession", element.text());
else if(element.tagName() == "office_location")
addr.insertCustom("KADDRESSBOOK", "X-Office", element.text());
else if(element.tagName() == "spouse")
addr.insertCustom("KADDRESSBOOK", "X-SpousesName", element.text());
else if(element.tagName() == "bday")
addr.setBirthday(QDateTime::fromString(element.text(), Qt::ISODate));
else if(element.tagName() == "anniversary")
addr.insertCustom("KADDRESSBOOK", "X-Anniversary", element.text());
else
setCustom(element.tagName(), element.text(), addr);
}
node = node.nextSibling();
}
for(int i = 0; i < 3; ++i)
if(!emails[ i ].isEmpty())
addr.insertEmail(emails[ i ]);
if(!homeAddress.isEmpty())
addr.insertAddress(homeAddress);
if(!workAddress.isEmpty())
addr.insertAddress(workAddress);
if(!otherAddress.isEmpty())
addr.insertAddress(otherAddress);
return addr;
}
示例14: msTNEFToVPart
//.........这里部分代码省略.........
// is reminder flag set ?
if ( !tnefMsg->findProp( 0x8503 ).isEmpty() ) {
Alarm::Ptr alarm( new Alarm( event.data() ) ); // TODO: fix when KCalCore::Alarm is fixed
KDateTime highNoonTime =
pureISOToLocalQDateTime( tnefMsg->findProp( 0x8502 ).
remove( QChar( '-' ) ).remove( QChar( ':' ) ) );
KDateTime wakeMeUpTime =
pureISOToLocalQDateTime( tnefMsg->findProp( 0x8560, "" ).
remove( QChar( '-' ) ).remove( QChar( ':' ) ) );
alarm->setTime( wakeMeUpTime );
if ( highNoonTime.isValid() && wakeMeUpTime.isValid() ) {
alarm->setStartOffset( Duration( highNoonTime, wakeMeUpTime ) );
} else {
// default: wake them up 15 minutes before the appointment
alarm->setStartOffset( Duration( 15 * 60 ) );
}
alarm->setDisplayAlarm( i18n( "Reminder" ) );
// Sorry: the different action types are not known (yet)
// so we always set 'DISPLAY' (no sounds, no images...)
event->addAlarm( alarm );
}
//ensure we have a uid for this event
if ( event->uid().isEmpty() ) {
event->setUid( CalFormat::createUniqueId() );
}
cal->addEvent( event );
bOk = true;
// we finished composing a vCal
} else if ( bCompatClassNote || "IPM.CONTACT" == msgClass ) {
addressee.setUid( stringProp( tnefMsg, attMSGID ) );
addressee.setFormattedName( stringProp( tnefMsg, MAPI_TAG_PR_DISPLAY_NAME ) );
addressee.insertEmail( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_EMAIL1EMAILADDRESS ), true );
addressee.insertEmail( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_EMAIL2EMAILADDRESS ), false );
addressee.insertEmail( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_EMAIL3EMAILADDRESS ), false );
addressee.insertCustom( "KADDRESSBOOK", "X-IMAddress",
sNamedProp( tnefMsg, MAPI_TAG_CONTACT_IMADDRESS ) );
addressee.insertCustom( "KADDRESSBOOK", "X-SpousesName",
stringProp( tnefMsg, MAPI_TAG_PR_SPOUSE_NAME ) );
addressee.insertCustom( "KADDRESSBOOK", "X-ManagersName",
stringProp( tnefMsg, MAPI_TAG_PR_MANAGER_NAME ) );
addressee.insertCustom( "KADDRESSBOOK", "X-AssistantsName",
stringProp( tnefMsg, MAPI_TAG_PR_ASSISTANT ) );
addressee.insertCustom( "KADDRESSBOOK", "X-Department",
stringProp( tnefMsg, MAPI_TAG_PR_DEPARTMENT_NAME ) );
addressee.insertCustom( "KADDRESSBOOK", "X-Office",
stringProp( tnefMsg, MAPI_TAG_PR_OFFICE_LOCATION ) );
addressee.insertCustom( "KADDRESSBOOK", "X-Profession",
stringProp( tnefMsg, MAPI_TAG_PR_PROFESSION ) );
QString s = tnefMsg->findProp( MAPI_TAG_PR_WEDDING_ANNIVERSARY ).
remove( QChar( '-' ) ).remove( QChar( ':' ) );
if ( !s.isEmpty() ) {
addressee.insertCustom( "KADDRESSBOOK", "X-Anniversary", s );
}
addressee.setUrl( KUrl( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_WEBPAGE ) ) );
// collect parts of Name entry
addressee.setFamilyName( stringProp( tnefMsg, MAPI_TAG_PR_SURNAME ) );
addressee.setGivenName( stringProp( tnefMsg, MAPI_TAG_PR_GIVEN_NAME ) );
addressee.setAdditionalName( stringProp( tnefMsg, MAPI_TAG_PR_MIDDLE_NAME ) );
addressee.setPrefix( stringProp( tnefMsg, MAPI_TAG_PR_DISPLAY_NAME_PREFIX ) );
addressee.setSuffix( stringProp( tnefMsg, MAPI_TAG_PR_GENERATION ) );
示例15: importContacts
KABC::AddresseeList OperaXXPort::importContacts(const QString &) const
{
KABC::AddresseeList addrList;
QString fileName = KFileDialog::getOpenFileName(QDir::homeDirPath() + QString::fromLatin1("/.opera/contacts.adr"));
if(fileName.isEmpty())
return addrList;
QFile file(fileName);
if(!file.open(IO_ReadOnly))
{
QString msg = i18n("<qt>Unable to open <b>%1</b> for reading.</qt>");
KMessageBox::error(parentWidget(), msg.arg(fileName));
return addrList;
}
QTextStream stream(&file);
stream.setEncoding(QTextStream::UnicodeUTF8);
QString line, key, value;
bool parseContact = false;
KABC::Addressee addr;
QRegExp separator("\x02\x02");
while(!stream.atEnd())
{
line = stream.readLine();
line = line.stripWhiteSpace();
if(line == QString::fromLatin1("#CONTACT"))
{
parseContact = true;
addr = KABC::Addressee();
continue;
}
else if(line.isEmpty())
{
parseContact = false;
if(!addr.isEmpty())
{
addrList.append(addr);
addr = KABC::Addressee();
}
continue;
}
if(parseContact == true)
{
int sep = line.find('=');
key = line.left(sep).lower();
value = line.mid(sep + 1);
if(key == QString::fromLatin1("name"))
addr.setNameFromString(value);
else if(key == QString::fromLatin1("mail"))
{
QStringList emails = QStringList::split(separator, value);
QStringList::Iterator it = emails.begin();
bool preferred = true;
for(; it != emails.end(); ++it)
{
addr.insertEmail(*it, preferred);
preferred = false;
}
}
else if(key == QString::fromLatin1("phone"))
addr.insertPhoneNumber(KABC::PhoneNumber(value));
else if(key == QString::fromLatin1("fax"))
addr.insertPhoneNumber(KABC::PhoneNumber(value,
KABC::PhoneNumber::Fax | KABC::PhoneNumber::Home));
else if(key == QString::fromLatin1("postaladdress"))
{
KABC::Address address(KABC::Address::Home);
address.setLabel(value.replace(separator, "\n"));
addr.insertAddress(address);
}
else if(key == QString::fromLatin1("description"))
addr.setNote(value.replace(separator, "\n"));
else if(key == QString::fromLatin1("url"))
addr.setUrl(KURL(value));
else if(key == QString::fromLatin1("pictureurl"))
{
KABC::Picture pic(value);
addr.setPhoto(pic);
}
}
}
file.close();
return addrList;
}