本文整理汇总了C++中kabc::VCardConverter类的典型用法代码示例。如果您正苦于以下问题:C++ VCardConverter类的具体用法?C++ VCardConverter怎么用?C++ VCardConverter使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了VCardConverter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exportToFile
void KoRdfFoaF::exportToFile(const QString &fileNameConst) const
{
QString fileName = fileNameConst;
#ifdef KDEPIMLIBS_FOUND
if (!fileName.size()) {
fileName = KFileDialog::getSaveFileName(
KUrl("kfiledialog:///ExportDialog"),
"*.vcf|vCard files",
0,
"Export to selected vCard file");
if (!fileName.size()) {
kDebug(30015) << "no filename given, cancel export..";
return;
}
}
KABC::Addressee addr = toKABC();
KABC::VCardConverter converter;
QByteArray ba = converter.createVCard(addr);
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(ba);
file.close();
kDebug(30015) << "wrote " << ba.size() << " bytes to export file:" << fileName;
#else
kDebug(30015) << "KDEPIM support not built!";
#endif
}
示例2: interpretAddressBookDownloadItemsJob
bool GroupDavGlobals::interpretAddressBookDownloadItemsJob(
KABC::AddressBookAdaptor *adaptor, KIO::Job *job, const QString &jobData)
{
kdDebug(5800) << "GroupDavGlobals::interpretAddressBookDownloadItemsJob, vCard=" << endl;
kdDebug(5800) << jobData << endl;
if(!adaptor || !job) return false;
KABC::VCardConverter conv;
KABC::Addressee::List addrs(conv.parseVCards(jobData));
if(addrs.count() != 1)
{
kdError() << "Parsed vCard does not contain exactly one addressee." << endl;
return false;
}
KABC::Addressee a = addrs.first();
KIO::SimpleJob *sjob = dynamic_cast<KIO::SimpleJob *>(job);
KURL remoteId;
if(sjob) remoteId = sjob->url();
QString fingerprint = extractFingerprint(job, jobData);
adaptor->addressbookItemDownloaded(a, a.uid(), remoteId, fingerprint,
remoteId.prettyURL());
return true;
}
示例3: updateView
void updateView( const QVariantList &localCustomFieldDescriptions = QVariantList(), const QString &addressBookName = QString() )
{
static QPixmap defaultPixmap = KIcon( QLatin1String( "user-identity" ) ).pixmap( QSize( 100, 100 ) );
mParent->setWindowTitle( i18n( "Contact %1", mCurrentContact.assembledName() ) );
if ( mCurrentContact.photo().isIntern() ) {
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "contact_photo" ) ),
mCurrentContact.photo().data() );
} else {
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "contact_photo" ) ),
defaultPixmap );
}
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "map_icon" ) ),
KIcon( QLatin1String( "document-open-remote" ) ).pixmap( QSize( 16, 16 ) ) );
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "sms_icon" ) ),
KIcon( IMProtocols::self()->icon( QString::fromLatin1( "messaging/sms" ) ) ).pixmap( QSize( 16, 16 ) ) );
#ifdef HAVE_PRISON
KConfig config( QLatin1String( "akonadi_contactrc" ) );
KConfigGroup group( &config, QLatin1String( "View" ) );
if ( group.readEntry( "QRCodes", true ) ) {
KABC::VCardConverter converter;
KABC::Addressee addr( mCurrentContact );
addr.setPhoto( KABC::Picture() );
addr.setLogo( KABC::Picture() );
const QString data = QString::fromUtf8( converter.createVCard( addr ) );
mQRCode->setData( data );
mDataMatrix->setData( data );
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "qrcode" ) ),
mQRCode->toImage( QSizeF( 50, 50 ) ) );
mBrowser->document()->addResource( QTextDocument::ImageResource,
QUrl( QLatin1String( "datamatrix" ) ),
mDataMatrix->toImage( QSizeF( 50, 50 ) ) );
}
#endif // HAVE_PRISON
// merge local and global custom field descriptions
QList<QVariantMap> customFieldDescriptions;
foreach ( const QVariant &entry, localCustomFieldDescriptions ) {
customFieldDescriptions << entry.toMap();
}
const CustomField::List globalCustomFields = CustomFieldManager::globalCustomFieldDescriptions();
foreach ( const CustomField &field, globalCustomFields ) {
QVariantMap description;
description.insert( QLatin1String( "key" ), field.key() );
description.insert( QLatin1String( "title" ), field.title() );
customFieldDescriptions << description;
}
示例4: slotReadReceiveAddressees
void Groupwise::slotReadReceiveAddressees(const KABC::Addressee::List addressees)
{
kdDebug() << "Groupwise::slotReadReceiveAddressees() - passing " << addressees.count() << " contacts back to application" << endl;
KABC::VCardConverter conv;
QString vcard = conv.createVCards(addressees);
data(vcard.utf8());
}
示例5: populateMimeData
bool KVCardDrag::populateMimeData( QMimeData *md, const KABC::Addressee::List &addressees )
{
KABC::VCardConverter converter;
QByteArray vcards = converter.createVCards( addressees );
if ( !vcards.isEmpty() ) {
return populateMimeData( md, vcards );
} else {
return false;
}
}
示例6: startDrag
void ViewManager::startDrag()
{
// Get the list of all the selected addressees
KABC::Addressee::List addrList;
const QStringList uidList = selectedUids();
if(uidList.isEmpty())
return;
kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl;
QStringList::ConstIterator it;
for(it = uidList.begin(); it != uidList.end(); ++it)
addrList.append(mCore->addressBook()->findByUid(*it));
KMultipleDrag *drag = new KMultipleDrag(this);
KABC::VCardConverter converter;
QString vcards = converter.createVCards(addrList);
// Best text representation is given by textdrag, so it must be first
drag->addDragObject(new QTextDrag(AddresseeUtil::addresseesToEmails(addrList), this));
drag->addDragObject(new KVCardDrag(vcards, this));
KTempDir tempDir;
// can't set tempDir to autoDelete, in case of dropping on the desktop, the copy is async...
if(tempDir.status() == 0)
{
QString fileName;
if(addrList.count() == 1)
fileName = addrList[ 0 ].givenName() + "_" + addrList[ 0 ].familyName() + ".vcf";
else
fileName = "contacts.vcf";
QFile tempFile(tempDir.name() + "/" + fileName);
if(tempFile.open(IO_WriteOnly))
{
tempFile.writeBlock(vcards.utf8());
tempFile.close();
KURLDrag *urlDrag = new KURLDrag(KURL(tempFile.name()), this);
drag->addDragObject(urlDrag);
}
}
drag->setPixmap(KGlobal::iconLoader()->loadIcon("vcard", KIcon::Desktop));
drag->dragCopy();
}
示例7: addAddressees
bool AddressbookHandler::addAddressees( KABC::Addressee::List& p_addresseeList )
{
bool ret = true;
KABC::VCardConverter vCardConv;
QString vCard;
RRA_Uint32Vector* added_ids = rra_uint32vector_new();
if ( p_addresseeList.begin() == p_addresseeList.end() ) {
goto finish;
}
for (KABC::Addressee::List::Iterator it = p_addresseeList.begin();
it != p_addresseeList.end(); ++it ) {
incrementSteps();
kdDebug(2120) << "Adding Contact on Device: " << (*it).uid() << endl;
vCard = vCardConv.createVCard ( ( *it ) );
uint32_t newObjectId = m_rra->putVCard( vCard, mTypeId, 0 );
if (newObjectId == 0) {
addErrorEntry((*it).realName());
ret = false;
}
m_rra->markIdUnchanged( mTypeId, newObjectId );
mUidHelper->addId("SynCEAddressbook",
"RRA-ID-" + QString::number ( newObjectId, 16 ).rightJustify( 8, '0' ),
(*it).uid());
kdDebug(2120) << " ID-Pair: KDEID: " << (*it).uid() << " DeviceID: " <<
"RRA-ID-" + QString::number ( newObjectId, 16 ).rightJustify( 8, '0' ) << endl;
rra_uint32vector_add(added_ids, newObjectId);
KApplication::kApplication()->processEvents();
}
finish:
m_rra->registerAddedObjects(mTypeId, added_ids);
rra_uint32vector_destroy(added_ids, true);
return ret;
}
示例8: dropped
void ViewManager::dropped(QDropEvent *e)
{
kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl;
// don't allow drops from our own drags
if(e->source() == this)
return;
QString clipText, vcards;
KURL::List urls;
if(KURLDrag::decode(e, urls))
{
KURL::List::ConstIterator it = urls.begin();
int c = urls.count();
if(c > 1)
{
QString questionString = i18n("Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c);
if(KMessageBox::questionYesNo(this, questionString, i18n("Import Contacts?"), i18n("Import"), i18n("Do Not Import")) == KMessageBox::Yes)
{
for(; it != urls.end(); ++it)
emit urlDropped(*it);
}
}
else if(c == 1)
emit urlDropped(*it);
}
else if(KVCardDrag::decode(e, vcards))
{
KABC::VCardConverter converter;
const KABC::Addressee::List list = converter.parseVCards(vcards);
KABC::Addressee::List::ConstIterator it;
for(it = list.begin(); it != list.end(); ++it)
{
KABC::Addressee a = mCore->addressBook()->findByUid((*it).uid());
if(a.isEmpty()) // not yet in address book
{
mCore->addressBook()->insertAddressee(*it);
emit modified();
}
}
mActiveView->refresh();
}
}
示例9: importFromData
void KoRdfFoaF::importFromData(const QByteArray &ba, KoDocumentRdf *_rdf, KoCanvasBase *host)
{
Q_D (KoRdfFoaF);
#ifdef KDEPIMLIBS_FOUND
kDebug(30015) << "data.sz:" << ba.size();
kDebug(30015) << "_rdf:" << _rdf;
if (_rdf) {
d->m_rdf = _rdf;
}
KABC::VCardConverter converter;
KABC::Addressee addr = converter.parseVCard(ba);
d->fromKABC(addr);
kDebug(30015) << "adding name:" << d->m_name;
kDebug(30015) << "uri:" << d->m_uri;
importFromDataComplete(ba, documentRdf(), host);
#else
kDebug(30015) << "KDEPIM support not built!";
#endif
}
示例10: retrieveAddresseeListFromDevice
bool AddressbookHandler::retrieveAddresseeListFromDevice( KABC::Addressee::List &mAddresseeList, QValueList<uint32_t> &idList )
{
KABC::VCardConverter vCardConv;
bool ret = true;
for ( QValueList<uint32_t>::const_iterator it = idList.begin(); it != idList.end(); ++it ) {
incrementSteps();
kdDebug(2120) << "Retrieving Contact from device: " << "RRA-ID-" +
QString::number ( *it, 16 ).rightJustify( 8, '0' ) << endl;
QString vCard = m_rra->getVCard( mTypeId, *it );
if (vCard.isEmpty()) {
addErrorEntry("RRA-ID-" + QString::number ( *it, 16 ).rightJustify( 8, '0' ));
ret = false;
}
KABC::Addressee addr = vCardConv.parseVCard ( vCard );
addr.setFormattedName(addr.formattedName().replace("\\,", ","));
QString kdeId;
if ((kdeId = mUidHelper->kdeId("SynCEAddressbook", addr.uid(), "---")) != "---") {
addr.setUid(kdeId);
} else {
mUidHelper->addId("SynCEAddressbook", addr.uid(), addr.uid());
}
kdDebug(2120) << " ID-Pair: KDEID: " << addr.uid() << " DeviceID: " <<
"RRA-ID-" + QString::number ( *it, 16 ).rightJustify( 8, '0' ) << endl;
mAddresseeList.push_back( addr );
KApplication::kApplication()->processEvents();
}
return ret;
}
示例11: updateAddressees
bool AddressbookHandler::updateAddressees( KABC::Addressee::List& p_addresseeList )
{
bool ret = true;
KABC::Addressee::List::Iterator it = p_addresseeList.begin();
KABC::VCardConverter vCardConv;
QString vCard;
if ( p_addresseeList.begin() == p_addresseeList.end() ) {
goto finish;
}
setStatus("Writing changed Contacts");
for ( ; it != p_addresseeList.end(); ++it ) {
incrementSteps();
QString kUid = mUidHelper->konnectorId("SynCEAddressbook", (*it).uid(), "---");
if (kUid != "---") {
kdDebug(2120) << "Updating Contact on Device: " << "ID-Pair: KDEID: " <<
(*it).uid() << " DeviceId: " << kUid << endl;
vCard = vCardConv.createVCard ( ( *it ) );
uint32_t retId = m_rra->putVCard ( vCard, mTypeId, getOriginalId( kUid ) );
if (retId == 0) {
addErrorEntry((*it).realName());
ret = false;
}
m_rra->markIdUnchanged( mTypeId, getOriginalId( kUid ) );
}
KApplication::kApplication()->processEvents();
}
finish:
return ret;
}
示例12: msTNEFToVPart
//.........这里部分代码省略.........
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 ) );
addressee.setNickName( stringProp( tnefMsg, MAPI_TAG_PR_NICKNAME ) );
addressee.setRole( stringProp( tnefMsg, MAPI_TAG_PR_TITLE ) );
addressee.setOrganization( stringProp( tnefMsg, MAPI_TAG_PR_COMPANY_NAME ) );
/*
the MAPI property ID of this (multiline) )field is unknown:
vPart += stringProp(tnefMsg, "\n","NOTE", ... , "" );
*/
KABC::Address adr;
adr.setPostOfficeBox( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_PO_BOX ) );
adr.setStreet( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_STREET ) );
adr.setLocality( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_CITY ) );
adr.setRegion( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_STATE_OR_PROVINCE ) );
adr.setPostalCode( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_POSTAL_CODE ) );
adr.setCountry( stringProp( tnefMsg, MAPI_TAG_PR_HOME_ADDRESS_COUNTRY ) );
adr.setType( KABC::Address::Home );
addressee.insertAddress( adr );
adr.setPostOfficeBox( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSPOBOX ) );
adr.setStreet( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSSTREET ) );
adr.setLocality( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSCITY ) );
adr.setRegion( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSSTATE ) );
adr.setPostalCode( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSPOSTALCODE ) );
adr.setCountry( sNamedProp( tnefMsg, MAPI_TAG_CONTACT_BUSINESSADDRESSCOUNTRY ) );
adr.setType( KABC::Address::Work );
addressee.insertAddress( adr );
adr.setPostOfficeBox( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_PO_BOX ) );
adr.setStreet( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_STREET ) );
adr.setLocality( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_CITY ) );
adr.setRegion( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_STATE_OR_PROVINCE ) );
adr.setPostalCode( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_POSTAL_CODE ) );
adr.setCountry( stringProp( tnefMsg, MAPI_TAG_PR_OTHER_ADDRESS_COUNTRY ) );
adr.setType( KABC::Address::Dom );
addressee.insertAddress( adr );
// problem: the 'other' address was stored by KOrganizer in
// a line looking like the following one:
// vPart += "\nADR;TYPE=dom;TYPE=intl;TYPE=parcel;TYPE=postal;TYPE=work;"
// "TYPE=home:other_pobox;;other_str1\nother_str2;other_loc;other_region;"
// "other_pocode;other_country"
QString nr;
nr = stringProp( tnefMsg, MAPI_TAG_PR_HOME_TELEPHONE_NUMBER );
addressee.insertPhoneNumber(
KABC::PhoneNumber( nr, KABC::PhoneNumber::Home ) );
nr = stringProp( tnefMsg, MAPI_TAG_PR_BUSINESS_TELEPHONE_NUMBER );
addressee.insertPhoneNumber(
KABC::PhoneNumber( nr, KABC::PhoneNumber::Work ) );
nr = stringProp( tnefMsg, MAPI_TAG_PR_MOBILE_TELEPHONE_NUMBER );
addressee.insertPhoneNumber(
KABC::PhoneNumber( nr, KABC::PhoneNumber::Cell ) );
nr = stringProp( tnefMsg, MAPI_TAG_PR_HOME_FAX_NUMBER );
addressee.insertPhoneNumber(
KABC::PhoneNumber( nr, KABC::PhoneNumber::Fax | KABC::PhoneNumber::Home ) );
nr = stringProp( tnefMsg, MAPI_TAG_PR_BUSINESS_FAX_NUMBER );
addressee.insertPhoneNumber(
KABC::PhoneNumber( nr, KABC::PhoneNumber::Fax | KABC::PhoneNumber::Work ) );
s = tnefMsg->findProp( MAPI_TAG_PR_BIRTHDAY ).
remove( QChar( '-' ) ).remove( QChar( ':' ) );
if ( !s.isEmpty() ) {
addressee.setBirthday( QDateTime::fromString( s ) );
}
bOk = ( !addressee.isEmpty() );
} else if ( "IPM.NOTE" == msgClass ) {
} // else if ... and so on ...
}
}
// Compose return string
// KDAB_TODO: Interesting, without the explicit QString the toString call is
// reported to be ambigious with toString( const Incidence::Ptr & ).
const QString iCal = calFormat.toString( cal, QString() );
if ( !iCal.isEmpty() ) {
// This was an iCal
return iCal;
}
// Not an iCal - try a vCard
KABC::VCardConverter converter;
return QString::fromUtf8( converter.createVCard( addressee ) );
}
示例13: readContents
bool VCard_LDIFCreator::readContents( const QString &path )
{
// read file contents
QFile file( path );
if ( !file.open( QIODevice::ReadOnly ) )
return false;
QString info;
text.truncate(0);
// read the file
QByteArray contents = file.readAll();
file.close();
// convert the file contents to a KABC::Addressee address
KABC::Addressee::List addrList;
KABC::Addressee addr;
KABC::VCardConverter converter;
addrList = converter.parseVCards( contents);
if ( addrList.count() == 0 ) {
KABC::AddresseeList l; // FIXME porting
if ( !KABC::LDIFConverter::LDIFToAddressee( contents, l ) )
return false;
// FIXME porting
KABC::AddresseeList::ConstIterator it( l.constBegin() );
for ( ; it != l.constEnd(); ++ it ) {
addrList.append( *it );
}
}
if ( addrList.count()>1 ) {
// create an overview (list of all names)
name = i18np("One contact found:", "%1 contacts found:", addrList.count());
int no, linenr;
for (linenr=no=0; linenr<30 && no<addrList.count(); ++no) {
addr = addrList[no];
info = addr.formattedName().simplified();
if (info.isEmpty())
info = addr.givenName() + ' ' + addr.familyName();
info = info.simplified();
if (info.isEmpty())
continue;
text.append(info);
text.append("\n");
++linenr;
}
return true;
}
// create card for _one_ contact
addr = addrList[ 0 ];
// prepare the text
name = addr.formattedName().simplified();
if ( name.isEmpty() )
name = addr.givenName() + ' ' + addr.familyName();
name = name.simplified();
KABC::PhoneNumber::List pnList = addr.phoneNumbers();
QStringList phoneNumbers;
for (int no=0; no<pnList.count(); ++no) {
QString pn = pnList[no].number().simplified();
if (!pn.isEmpty() && !phoneNumbers.contains(pn))
phoneNumbers.append(pn);
}
if ( !phoneNumbers.isEmpty() )
text += phoneNumbers.join("\n") + '\n';
info = addr.organization().simplified();
if ( !info.isEmpty() )
text += info + '\n';
// get an address
KABC::Address address = addr.address(KABC::Address::Work);
if (address.isEmpty())
address = addr.address(KABC::Address::Home);
if (address.isEmpty())
address = addr.address(KABC::Address::Pref);
info = address.formattedAddress();
if ( !info.isEmpty() )
text += info + '\n';
return true;
}
示例14: addresseesToClipboard
QString AddresseeUtil::addresseesToClipboard(const KABC::Addressee::List &list)
{
KABC::VCardConverter converter;
return converter.createVCards(list);
}
示例15:
KABC::Addressee::List AddresseeUtil::clipboardToAddressees(const QString &data)
{
KABC::VCardConverter converter;
return converter.parseVCards(data);
}