当前位置: 首页>>代码示例>>C++>>正文


C++ Addressee::insertEmail方法代码示例

本文整理汇总了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" );
}
开发者ID:akhuettel,项目名称:kdepim-noakonadi,代码行数:27,代码来源:testdistrlist.cpp

示例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();
    }
  }
}
开发者ID:,项目名称:,代码行数:30,代码来源:

示例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 );
          }
        }
      }
    }
  }
}
开发者ID:akhuettel,项目名称:kdepim-noakonadi,代码行数:31,代码来源:distributionlistdialog.cpp

示例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 );
  }
}
开发者ID:,项目名称:,代码行数:10,代码来源:

示例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() );
  }
}
开发者ID:akhuettel,项目名称:kdepim-noakonadi,代码行数:12,代码来源:addressesdialog.cpp

示例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);
  }
开发者ID:maxyz,项目名称:libkolab,代码行数:49,代码来源:kabcconversion.cpp

示例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();
}
开发者ID:,项目名称:,代码行数:22,代码来源:

示例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);
}
开发者ID:serghei,项目名称:kde3-kdepim,代码行数:86,代码来源:kaddrbook.cpp

示例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;
}
开发者ID:ShermanHuang,项目名称:kdesdk,代码行数:67,代码来源:kdeaccountsformat.cpp

示例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));
        }
    }

//.........这里部分代码省略.........
开发者ID:serghei,项目名称:kde3-kdelibs,代码行数:101,代码来源:vcard21parser.cpp

示例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;
}
开发者ID:iegor,项目名称:kdesktop,代码行数:101,代码来源:gmx_xxport.cpp

示例12:

static void setEmail1(const QString &value, KABC::Addressee &addressee)
{
    addressee.insertEmail(value, true);
}
开发者ID:winterz,项目名称:FatCRM,代码行数:4,代码来源:salesforcecontactshandler.cpp

示例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;
}
开发者ID:serghei,项目名称:kde3-kdepim,代码行数:101,代码来源:contact.cpp

示例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 ) );
开发者ID:pvuorela,项目名称:kcalcore,代码行数:66,代码来源:formatter.cpp

示例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;
}
开发者ID:serghei,项目名称:kde3-kdepim,代码行数:91,代码来源:opera_xxport.cpp


注:本文中的kabc::Addressee::insertEmail方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。