本文整理汇总了C++中QContactName::lastName方法的典型用法代码示例。如果您正苦于以下问题:C++ QContactName::lastName方法的具体用法?C++ QContactName::lastName怎么用?C++ QContactName::lastName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QContactName
的用法示例。
在下文中一共展示了QContactName::lastName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: synthesizedDisplayLabel
/* Synthesise the display label of a contact */
QString QContactWinCEEngine::synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const
{
Q_UNUSED(error)
// The POOM API (well, lack thereof) makes this a bit strange.
// It's basically just "Last, First" or "Company", if "FileAs" is not set.
QContactName name = contact.detail<QContactName>();
QContactOrganization org = contact.detail<QContactOrganization>();
// Basically we ignore any existing labels for this contact, since we're being
// asked what the synthesized label would be
// XXX For greatest accuracy we might be better off converting this contact to
// a real item (but don't save it), and then retrieve it...
if (!name.customLabel().isEmpty()) {
return name.customLabel();
}
else if (!name.lastName().isEmpty()) {
if (!name.firstName().isEmpty()) {
return QString(QLatin1String("%1, %2")).arg(name.lastName()).arg(name.firstName());
} else {
// Just last
return name.lastName();
}
} else if (!name.firstName().isEmpty()) {
return name.firstName();
} else if (!org.name().isEmpty()) {
return org.name();
} else {
// XXX grargh.
return QLatin1String("Unnamed");
}
}
示例2: generateDisplayLabel
// small helper to avoid inconvenience
QString SeasidePerson::generateDisplayLabel(const QContact &mContact, SeasideProxyModel::DisplayLabelOrder order)
{
//REVISIT: Move this or parts of this to localeutils.cpp
QString displayLabel;
QContactName name = mContact.detail<QContactName>();
QString nameStr1;
QString nameStr2;
if (order == SeasideProxyModel::LastNameFirst) {
nameStr1 = name.lastName();
nameStr2 = name.firstName();
} else {
nameStr1 = name.firstName();
nameStr2 = name.lastName();
}
if (!nameStr1.isNull())
displayLabel.append(nameStr1);
if (!nameStr2.isNull()) {
if (!displayLabel.isEmpty())
displayLabel.append(" ");
displayLabel.append(nameStr2);
}
if (!displayLabel.isEmpty())
return displayLabel;
foreach (const QContactOnlineAccount& account, mContact.details<QContactOnlineAccount>()) {
if (!account.accountUri().isNull())
return account.accountUri();
}
foreach (const QContactEmailAddress& email, mContact.details<QContactEmailAddress>()) {
if (!email.emailAddress().isNull())
return email.emailAddress();
}
QContactOrganization company = mContact.detail<QContactOrganization>();
if (!company.name().isNull())
return company.name();
foreach (const QContactPhoneNumber& phone, mContact.details<QContactPhoneNumber>()) {
if (!phone.number().isNull())
return phone.number();
}
// This is last because the custom label is often source from this function, so we want to
// overwrite that value in many cases.
if (!name.customLabel().isNull())
return name.customLabel();
return "(Unnamed)"; // TODO: localisation
}
示例3: setFirstName
void SeasideCache::setFirstName(FilterType filterType, int index, const QString &firstName)
{
#ifdef USING_QTPIM
CacheItem &cacheItem = m_cache[m_cacheIndices[m_contacts[filterType].at(index)]];
#else
CacheItem &cacheItem = m_cache[m_contacts[filterType].at(index) - 1];
#endif
QContactName name = cacheItem.contact.detail<QContactName>();
name.setFirstName(firstName);
cacheItem.contact.saveDetail(&name);
QString fullName = name.firstName() + QChar::fromLatin1(' ') + name.lastName();
cacheItem.nameGroup = determineNameGroup(&cacheItem);
cacheItem.displayLabel = fullName;
ItemListener *listener(cacheItem.listeners);
while (listener) {
listener->itemUpdated(&cacheItem);
listener = listener->next;
}
if (m_models[filterType])
m_models[filterType]->sourceDataChanged(index, index);
}
示例4: QString
/* Synthesise the display label of a contact */
QString QContactMaemo5Engine::synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const
{
QString label;
// Try to get the display name from the OSSO-ABook Contact
label = d->m_abook->getDisplayName(contact);
// Synthesise the display label for not saved contacts
// A. FirstName + LastName
if (label.isEmpty()){
QContactName name = contact.detail(QContactName::DefinitionName);
QStringList nameList;
nameList << name.firstName();
if (name.lastName().count()){
nameList << name.lastName();
}
label = nameList.join(QString(' '));
}
// B. Email
if (label.isEmpty()){
QContactEmailAddress email = contact.detail(QContactEmailAddress::DefinitionName);
label = email.emailAddress();
}
//
if (label.isEmpty()){
*error = QContactManager::UnspecifiedError;
return QString("No name");
}
*error = QContactManager::NoError;
return label;
}
示例5: QContactManager
QList<Contact> Contacts::getContactsFromPhone(){
QPointer<QContactManager> contactManager = new QContactManager();
// QStringList QContactManager::supportedContactTypes ()
QList<QContact> contactsPhone = contactManager->contacts();
QList<Contact> contacts;
foreach (const QContact& contact, contactsPhone) {
QContactPhoneNumber phoneNumber = contact.detail<QContactPhoneNumber>();
// QList<QContactPhoneNumber> phoneNumbers = contact.details<QContactPhoneNumber>();
if(!phoneNumber.isEmpty()){
QContactName name = contact.detail<QContactName>();
QString number = phoneNumber.number();
number = number.replace("+","");
QString nameFinal = name.firstName()+" "+name.lastName();
contacts.append(Contact(nameFinal.trimmed(),number));
}
}
示例6: generateDisplayLabel
// small helper to avoid inconvenience
static QString generateDisplayLabel(QContact mContact)
{
//REVISIT: Move this or parts of this to localeutils.cpp
QString displayLabel;
QContactName name = mContact.detail<QContactName>();
QString nameStr1 = name.firstName();
QString nameStr2 = name.lastName();
if (!nameStr1.isNull())
displayLabel.append(nameStr1);
if (!nameStr2.isNull()) {
if (!displayLabel.isEmpty())
displayLabel.append(" ");
displayLabel.append(nameStr2);
}
if (!displayLabel.isEmpty())
return displayLabel;
foreach (const QContactOnlineAccount& account, mContact.details<QContactOnlineAccount>()) {
if (!account.accountUri().isNull())
return account.accountUri();
}
foreach (const QContactEmailAddress& email, mContact.details<QContactEmailAddress>()) {
if (!email.emailAddress().isNull())
return email.emailAddress();
}
QContactOrganization company = mContact.detail<QContactOrganization>();
if (!company.name().isNull())
return company.name();
foreach (const QContactPhoneNumber& phone, mContact.details<QContactPhoneNumber>()) {
if (!phone.number().isNull())
return phone.number();
}
return "(unnamed)"; // TODO: localisation
}
示例7: lastName
QString SeasidePerson::lastName() const
{
QContactName nameDetail = mContact.detail<QContactName>();
return nameDetail.lastName();
}
示例8: generateContact
QContact generateContact(const QString &syncTarget = QString(QLatin1String("local")), bool possiblyAggregate = false)
{
static const QStringList firstNames(generateFirstNamesList());
static const QStringList middleNames(generateMiddleNamesList());
static const QStringList lastNames(generateLastNamesList());
static const QStringList nonOverlappingFirstNames(generateNonOverlappingFirstNamesList());
static const QStringList nonOverlappingLastNames(generateNonOverlappingLastNamesList());
static const QStringList phoneNumbers(generatePhoneNumbersList());
static const QStringList emailProviders(generateEmailProvidersList());
static const QStringList avatars(generateAvatarsList());
static const QStringList hobbies(generateHobbiesList());
// we randomly determine whether to generate various details
// to ensure that we have heterogeneous contacts in the db.
QContact retn;
int random = qrand();
bool preventAggregate = (syncTarget != QLatin1String("local") && !possiblyAggregate);
// We always have a sync target.
QContactSyncTarget synctarget;
synctarget.setSyncTarget(syncTarget);
retn.saveDetail(&synctarget);
// We always have a name. Select an overlapping name if the sync target
// is something other than "local" and possiblyAggregate is true.
QContactName name;
name.setFirstName(preventAggregate ?
nonOverlappingFirstNames.at(random % nonOverlappingFirstNames.size()) :
firstNames.at(random % firstNames.size()));
name.setLastName(preventAggregate ?
nonOverlappingLastNames.at(random % nonOverlappingLastNames.size()) :
lastNames.at(random % lastNames.size()));
if ((random % 6) == 0) name.setMiddleName(middleNames.at(random % middleNames.size()));
if ((random % 17) == 0) name.setPrefix(QLatin1String("Dr."));
retn.saveDetail(&name);
// Favorite
if ((random % 31) == 0) {
QContactFavorite fav;
fav.setFavorite(true);
retn.saveDetail(&fav);
}
// Phone number
if ((random % 3) == 0) {
QContactPhoneNumber phn;
QString randomPhn = phoneNumbers.at(random % phoneNumbers.size());
phn.setNumber(preventAggregate ? QString(QString::number(random % 500000) + randomPhn) : randomPhn);
if ((random % 9) == 0) phn.setContexts(QContactDetail::ContextWork);
retn.saveDetail(&phn);
}
// Email
if ((random % 2) == 0) {
QContactEmailAddress em;
em.setEmailAddress(QString(QLatin1String("%1%2%3%4"))
.arg(preventAggregate ? QString(QString::number(random % 500000) + syncTarget) : QString())
.arg(name.firstName()).arg(name.lastName())
.arg(emailProviders.at(random % emailProviders.size())));
if (random % 9) em.setContexts(QContactDetail::ContextWork);
retn.saveDetail(&em);
}
// Avatar
if ((random % 5) == 0) {
QContactAvatar av;
av.setImageUrl(name.firstName() + avatars.at(random % avatars.size()));
retn.saveDetail(&av);
}
// Hobby
if ((random % 21) == 0) {
QContactHobby h1;
h1.setHobby(hobbies.at(random % hobbies.size()));
retn.saveDetail(&h1);
int newRandom = qrand();
if ((newRandom % 2) == 0) {
QContactHobby h2;
h2.setHobby(hobbies.at(newRandom % hobbies.size()));
retn.saveDetail(&h2);
}
}
return retn;
}
示例9: determineNameGroup
QString SeasideCache::determineNameGroup(const CacheItem *cacheItem)
{
if (!cacheItem)
return QString();
const QContactName nameDetail = cacheItem->contact.detail<QContactName>();
const QString sort(sortProperty() == QString::fromLatin1("firstName") ? nameDetail.firstName() : nameDetail.lastName());
QString group;
if (!sort.isEmpty()) {
group = QString(sort[0].toUpper());
} else if (!cacheItem->displayLabel.isEmpty()) {
group = QString(cacheItem->displayLabel[0].toUpper());
}
if (group.isNull() || !allContactNameGroups.contains(group)) {
group = QString::fromLatin1("#"); // 'other' group
}
return group;
}
示例10: reset
void SeasideCache::reset()
{
for (int i = 0; i < FilterTypesCount; ++i) {
m_contacts[i].clear();
m_populated[i] = false;
m_models[i] = 0;
}
m_cache.clear();
m_cacheIndices.clear();
for (uint i = 0; i < sizeof(contactsData) / sizeof(Contact); ++i) {
QContact contact;
// This is specific to the qtcontacts-sqlite backend:
const QString idStr(QString::fromLatin1("qtcontacts:org.nemomobile.contacts.sqlite::sql-%1"));
contact.setId(QContactId::fromString(idStr.arg(i + 1)));
QContactName name;
name.setFirstName(QString::fromLatin1(contactsData[i].firstName));
name.setMiddleName(QString::fromUtf8(contactsData[i].middleName));
name.setLastName(QString::fromLatin1(contactsData[i].lastName));
contact.saveDetail(&name);
if (contactsData[i].avatar) {
QContactAvatar avatar;
avatar.setImageUrl(QUrl(QLatin1String(contactsData[i].avatar)));
contact.saveDetail(&avatar);
}
QContactStatusFlags statusFlags;
if (contactsData[i].email) {
QContactEmailAddress email;
email.setEmailAddress(QLatin1String(contactsData[i].email));
contact.saveDetail(&email);
statusFlags.setFlag(QContactStatusFlags::HasEmailAddress, true);
}
if (contactsData[i].phoneNumber) {
QContactPhoneNumber phoneNumber;
phoneNumber.setNumber(QLatin1String(contactsData[i].phoneNumber));
contact.saveDetail(&phoneNumber);
statusFlags.setFlag(QContactStatusFlags::HasPhoneNumber, true);
}
contact.saveDetail(&statusFlags);
m_cacheIndices.insert(internalId(contact), m_cache.count());
m_cache.append(CacheItem(contact));
QString fullName = name.firstName() + QChar::fromLatin1(' ') + name.lastName();
CacheItem &cacheItem = m_cache.last();
cacheItem.nameGroup = determineNameGroup(&cacheItem);
cacheItem.displayLabel = fullName;
}
insert(FilterAll, 0, getContactsForFilterType(FilterAll));
insert(FilterFavorites, 0, getContactsForFilterType(FilterFavorites));
insert(FilterOnline, 0, getContactsForFilterType(FilterOnline));
}