SeasidePerson *SeasideCache::personByPhoneNumber(const QString &msisdn) { QHash<QString, QContactLocalId>::iterator it = instance->m_phoneNumberIds.find(msisdn); if (it != instance->m_phoneNumberIds.end()) return personById(*it); return 0; }
QString SeasidePeopleModel::exportContacts() const { QVersitContactExporter exporter; QList<QContact> contacts; contacts.reserve(priv->contactIds.size()); foreach (const QContactLocalId &contactId, priv->contactIds) { SeasidePerson *p = personById(contactId); if (p->id() == manager()->selfContactId()) continue; contacts.append(p->contact()); } if (!exporter.exportContacts(contacts)) { qWarning() << Q_FUNC_INFO << "Failed to export contacts: " << exporter.errorMap(); return QString(); } QFile vcard(QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + QDir::separator() + QDateTime::currentDateTime().toString("ss_mm_hh_dd_mm_yyyy") + ".vcf"); if (!vcard.open(QIODevice::WriteOnly)) { qWarning() << "Cannot open " << vcard.fileName(); return QString(); } QVersitWriter writer(&vcard); if (!writer.startWriting(exporter.documents())) { qWarning() << Q_FUNC_INFO << "Can't start writing vcards " << writer.error(); return QString(); } // TODO: thread writer.waitForFinished(); return vcard.fileName(); }
SeasidePerson *SeasideCache::selfPerson() { return personById(instance->m_manager.selfContactId()); }