本文整理汇总了C++中QContactDetailDefinition类的典型用法代码示例。如果您正苦于以下问题:C++ QContactDetailDefinition类的具体用法?C++ QContactDetailDefinition怎么用?C++ QContactDetailDefinition使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QContactDetailDefinition类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Q_UNUSED
/*!
* Modifies the detail definitions. The default detail definitions are
* queried from QContactManagerEngine::schemaDefinitions and then modified
* with this function in the transform leaf classes.
*
* \a definitions The detail definitions to modify.
* \a contactType The contact type the definitions apply for.
*/
void CntTransformOnlineAccount::detailDefinitions(QMap<QString, QContactDetailDefinition> &definitions, const QString& contactType) const
{
Q_UNUSED(contactType);
if(definitions.contains(QContactOnlineAccount::DefinitionName)) {
QContactDetailDefinition d = definitions.value(QContactOnlineAccount::DefinitionName);
QMap<QString, QContactDetailFieldDefinition> fields = d.fields();
QContactDetailFieldDefinition f;
// Support only certain subtypes
f.setDataType(QVariant::StringList);
QVariantList subTypes;
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSip));
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSipVoip));
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeImpp));
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeVideoShare));
f.setAllowableValues(subTypes);
fields[QContactOnlineAccount::FieldSubTypes] = f;
// Don't support "ContextOther"
f.setDataType(QVariant::StringList);
f.setAllowableValues(QVariantList()
<< QLatin1String(QContactDetail::ContextHome)
<< QLatin1String(QContactDetail::ContextWork));
fields[QContactDetail::FieldContext] = f;
d.setFields(fields);
// Replace original definitions
definitions.insert(d.name(), d);
}
}
示例2: Q_UNUSED
/*!
* Modifies the detail definitions. The default detail definitions are
* queried from QContactManagerEngine::schemaDefinitions and then modified
* with this function in the transform leaf classes.
*
* \a definitions The detail definitions to modify.
* \a contactType The contact type the definitions apply for.
*/
void CntTransformOnlineAccount::detailDefinitions(QMap<QString, QContactDetailDefinition> &definitions, const QString& contactType) const
{
Q_UNUSED(contactType);
if(definitions.contains(QContactOnlineAccount::DefinitionName)) {
QContactDetailDefinition d = definitions.value(QContactOnlineAccount::DefinitionName);
QMap<QString, QContactDetailFieldDefinition> fields = d.fields();
QContactDetailFieldDefinition f;
// Not all fields are supported
fields.remove(QContactOnlineAccount::FieldCapabilities);
fields.remove(QContactOnlineAccount::FieldDetailUri);
fields.remove(QContactOnlineAccount::FieldLinkedDetailUris);
fields.remove(QContactOnlineAccount::FieldServiceProvider);
fields.remove(QContactOnlineAccount::FieldContext);
// Support only certain subtypes
f.setDataType(QVariant::StringList);
QVariantList subTypes;
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSip));
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSipVoip));
subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeVideoShare));
f.setAllowableValues(subTypes);
fields[QContactOnlineAccount::FieldSubTypes] = f;
d.setFields(fields);
// Replace original definitions
definitions.insert(d.name(), d);
}
}
示例3: detailDefinition
bool QContactMaemo5Engine::validateDefinition(const QContactDetailDefinition& definition, QContactManager::Error* error) const
{
QContactDetailDefinition existing = detailDefinition(definition.name(), QContactType::TypeContact, error);
if (existing == definition) {
*error = QContactManager::NoError;
return true;
}
*error = QContactManager::NotSupportedError; // XXX TODO: mutable definitions?
return false;
}
示例4: Q_UNUSED
/*!
* Modifies the detail definitions. The default detail definitions are
* queried from QContactManagerEngine::schemaDefinitions and then modified
* with this function in the transform leaf classes.
*
* \a definitions The detail definitions to modify.
* \a contactType The contact type the definitions apply for.
*/
void CntTransformPresence::detailDefinitions(QMap<QString, QContactDetailDefinition> &definitions, const QString& contactType) const
{
Q_UNUSED(contactType);
if(definitions.contains(QContactPresence::DefinitionName)) {
QContactDetailDefinition d = definitions.value(QContactPresence::DefinitionName);
QMap<QString, QContactDetailFieldDefinition> fields = d.fields();
QContactDetailFieldDefinition f;
// Don't support "ContextOther"
f.setDataType(QVariant::StringList);
f.setAllowableValues(QVariantList()
<< QLatin1String(QContactDetail::ContextHome)
<< QLatin1String(QContactDetail::ContextWork));
fields[QContactDetail::FieldContext] = f;
d.setFields(fields);
// Replace original definitions
definitions.insert(d.name(), d);
}
}
示例5: qDebug
void MainWindow::on_pushButton_3_clicked()
{
// qDebug() << "The default manager for the platform is:" << cm.managerName();
// qDebug() << "It" << (cm.isRelationshipTypeSupported(QContactRelationship::HasAssistant) ? "supports" : "does not support") << "assistant relationships.";
// qDebug() << "It" << (cm.supportedContactTypes().contains(QContactType::TypeGroup) ? "supports" : "does not support") << "groups.";
// qDebug() << "It" << (cm.hasFeature(QContactManager::MutableDefinitions) ? "supports" : "does not support") << "mutable detail definitions.";
QList<QContactLocalId> contactIds = cm.contactIds();
QContact a = cm.contact(contactIds.first());
qDebug() << "Viewing the details of" << a.displayLabel();
QList<QContactDetail> allDetails = a.details();
for (int i = 0; i < allDetails.size(); i++) {
QContactDetail detail = allDetails.at(i);
QContactDetailDefinition currentDefinition = cm.detailDefinition(detail.definitionName());
QMap<QString, QContactDetailFieldDefinition> fields = currentDefinition.fields();
qDebug("\tDetail #%d (%s):", i, detail.definitionName().toAscii().constData());
foreach (const QString& fieldKey, fields.keys()) {
qDebug() << "\t\t" << fieldKey << "(" << fields.value(fieldKey).dataType() << ") =" << detail.value(fieldKey);
}
qDebug();
}
QContact b;
QContactDetail de;
foreach (const QContactLocalId& ids, contactIds )
{
b = cm.contact(ids);
de = b.detail("PhoneNumber");
bool s = de.hasValue("PhoneNumber");
qDebug()<< " has Value PhoneNumber key"<<s<<"|"<<de.value("PhoneNumber");
QString show;
show = b.displayLabel();
show.append("\t");
show.append(de.value("PhoneNumber"));
ui->listWidget_2->addItem(show);
}
示例6: QString
/*!
* Returns a map of identifier to detail definition which are valid for contacts whose type is the given \a contactType
* which are valid for the contacts in this store
*/
QMap<QString, QContactDetailDefinition> CntSymbianSimEngine::detailDefinitions(const QString& contactType, QContactManager::Error* error) const
{
if (!supportedContactTypes().contains(contactType)) {
// Should never happen
*error = QContactManager::NotSupportedError;
return QMap<QString, QContactDetailDefinition>();
}
// Get store information
SimStoreInfo storeInfo = d->m_simStore->storeInfo();
// the map we will eventually return
QMap<QString, QContactDetailDefinition> retn;
// local variables for reuse
QMap<QString, QContactDetailFieldDefinition> fields;
QContactDetailFieldDefinition f;
QContactDetailDefinition def;
QVariantList subTypes;
// sync target
def.setName(QContactSyncTarget::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
subTypes.clear();
subTypes << QString(QLatin1String(KSimSyncTarget));
f.setAllowableValues(subTypes);
fields.insert(QContactSyncTarget::FieldSyncTarget, f);
def.setFields(fields);
def.setUnique(true);
retn.insert(def.name(), def);
// type
def.setName(QContactType::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
subTypes.clear();
// groups are not supported
subTypes << QString(QLatin1String(QContactType::TypeContact));
f.setAllowableValues(subTypes);
fields.insert(QContactType::FieldType, f); // note: NO CONTEXT!!
def.setFields(fields);
def.setUnique(true);
retn.insert(def.name(), def);
/* TODO
// guid
def.setName(QContactGuid::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
f.setAllowableValues(QVariantList());
fields.insert(QContactGuid::FieldGuid, f);
f.setDataType(QVariant::StringList);
f.setAllowableValues(contexts);
fields.insert(QContactDetail::FieldContext, f);
def.setFields(fields);
def.setUnique(false);
def.setAccessConstraint(QContactDetailDefinition::CreateOnly);
retn.insert(def.name(), def);
*/
// display label
def.setName(QContactDisplayLabel::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
f.setAllowableValues(QVariantList());
fields.insert(QContactDisplayLabel::FieldLabel, f);
def.setFields(fields);
def.setUnique(true);
retn.insert(def.name(), def);
// email support needs to be checked run-time, because it is SIM specific
if (storeInfo.m_emailSupported) {
def.setName(QContactEmailAddress::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
f.setAllowableValues(QVariantList());
fields.insert(QContactEmailAddress::FieldEmailAddress, f);
def.setFields(fields);
def.setUnique(true);
retn.insert(def.name(), def);
}
// phone number
def.setName(QContactPhoneNumber::DefinitionName);
fields.clear();
f.setDataType(QVariant::String);
f.setAllowableValues(QVariantList());
fields.insert(QContactPhoneNumber::FieldNumber, f);
// TODO: subtypes supported in case a sim contact can have multiple phone numbers?
def.setFields(fields);
if (storeInfo.m_additionalNumberSupported) {
// multiple numbers supported
def.setUnique(false);
} else {
// only one phone number allowed
//.........这里部分代码省略.........
示例7: connect
//.........这里部分代码省略.........
m_contactFetchRequest.waitForFinished();
//! [Creating a new relationship between two contacts]
// first, create the group and the group member
QContact exampleGroup;
exampleGroup.setType(QContactType::TypeGroup);
QContactNickname groupName;
groupName.setNickname("Example Group");
exampleGroup.saveDetail(&groupName);
QContact exampleGroupMember;
QContactName groupMemberName;
groupMemberName.setFirstName("Member");
exampleGroupMember.saveDetail(&groupMemberName);
// second, save those contacts in the manager
QList<QContact> saveList;
saveList << exampleGroup << exampleGroupMember;
m_contactSaveRequest.setContacts(saveList);
m_contactSaveRequest.start();
m_contactSaveRequest.waitForFinished();
// third, create the relationship between those contacts
QContactRelationship groupRelationship;
groupRelationship.setFirst(exampleGroup.id());
groupRelationship.setRelationshipType(QContactRelationship::HasMember);
groupRelationship.setSecond(exampleGroupMember.id());
// finally, save the relationship in the manager
connect(&m_relationshipSaveRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(relationshipSaveRequestStateChanged(QContactAbstractRequest::State)));
m_relationshipSaveRequest.setManager(m_manager);
m_relationshipSaveRequest.setRelationships(QList<QContactRelationship>() << groupRelationship);
m_relationshipSaveRequest.start();
//! [Creating a new relationship between two contacts]
m_contactFetchRequest.waitForFinished();
//! [Retrieving relationships between contacts]
connect(&m_relationshipFetchRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(relationshipFetchRequestStateChanged(QContactAbstractRequest::State)));
m_relationshipFetchRequest.setManager(m_manager);
// retrieve the list of relationships between the example group contact and the example member contact
// where the group contact is the first contact in the relationship, and the member contact is the
// second contact in the relationship. In order to fetch all relationships between them, another
// relationship fetch must be performed with their roles reversed, and the results added together.
m_relationshipFetchRequest.setFirst(exampleGroup.id());
m_relationshipFetchRequest.setSecond(exampleGroupMember.id());
m_relationshipFetchRequest.start();
//! [Retrieving relationships between contacts]
m_contactFetchRequest.waitForFinished();
//! [Providing a fetch hint]
QContactFetchHint hasMemberRelationshipsOnly;
hasMemberRelationshipsOnly.setRelationshipTypesHint(QStringList(QContactRelationship::HasMember));
m_contactFetchRequest.setManager(m_manager);
m_contactFetchRequest.setFilter(QContactFilter()); // all contacts
m_contactFetchRequest.setFetchHint(hasMemberRelationshipsOnly);
m_contactFetchRequest.start();
//! [Providing a fetch hint]
//! [Removing a relationship]
connect(&m_relationshipRemoveRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(relationshipRemoveRequestStateChanged(QContactAbstractRequest::State)));
m_relationshipRemoveRequest.setManager(m_manager);
m_relationshipRemoveRequest.setRelationships(QList<QContactRelationship>() << groupRelationship);
m_relationshipRemoveRequest.start();
//! [Removing a relationship]
connect(&m_definitionFetchRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(definitionFetchRequestStateChanged(QContactAbstractRequest::State)));
//! [Querying the schema supported by a manager]
m_definitionFetchRequest.setManager(m_manager);
m_definitionFetchRequest.setDefinitionNames(QStringList(QContactName::DefinitionName));
m_definitionFetchRequest.start();
m_definitionFetchRequest.waitForFinished();
QMap<QString, QContactDetailDefinition> definitions = m_definitionFetchRequest.definitions();
qDebug() << "This manager"
<< (definitions.value(QContactName::DefinitionName).fields().contains(QContactName::FieldCustomLabel) ? "supports" : "does not support")
<< "the custom label field of QContactName";
//! [Querying the schema supported by a manager]
connect(&m_definitionSaveRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(definitionSaveRequestStateChanged(QContactAbstractRequest::State)));
connect(&m_definitionRemoveRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(definitionRemoveRequestStateChanged(QContactAbstractRequest::State)));
//! [Modifying the schema supported by a manager]
// modify the name definition, adding a patronym field
QContactDetailDefinition nameDefinition = definitions.value(QContactName::DefinitionName);
QContactDetailFieldDefinition fieldPatronym;
fieldPatronym.setDataType(QVariant::String);
nameDefinition.insertField("Patronym", fieldPatronym);
// save the updated definition in the manager if supported...
if (m_manager->hasFeature(QContactManager::MutableDefinitions)) {
m_definitionSaveRequest.setManager(m_manager);
m_definitionSaveRequest.setContactType(QContactType::TypeContact);
m_definitionSaveRequest.setDefinitions(QList<QContactDetailDefinition>() << nameDefinition);
m_definitionSaveRequest.start();
}
//! [Modifying the schema supported by a manager]
QCoreApplication::exit(0);
}