Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Don't use custom qtcontacts-sqlite extension values that already exis…
…t in latest QtPim
  • Loading branch information
Bea Lam authored and Chris Adams committed Sep 16, 2020
1 parent 38e3d97 commit f3e3b3d
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 46 deletions.
14 changes: 7 additions & 7 deletions src/engine/contactreader.cpp
Expand Up @@ -228,7 +228,7 @@ static const FieldInfo avatarFields[] =
{
{ QContactAvatar::FieldImageUrl, "imageUrl", StringField },
{ QContactAvatar::FieldVideoUrl, "videoUrl", StringField },
{ QContactAvatar__FieldAvatarMetadata, "avatarMetadata", StringField }
{ QContactAvatar::FieldMetaData, "avatarMetadata", StringField }
};

static void setValues(QContactAvatar *detail, QSqlQuery *query, const int offset)
Expand All @@ -237,7 +237,7 @@ static void setValues(QContactAvatar *detail, QSqlQuery *query, const int offset

setValue(detail, T::FieldImageUrl, urlValue(query->value(offset + 0)));
setValue(detail, T::FieldVideoUrl, urlValue(query->value(offset + 1)));
setValue(detail, QContactAvatar__FieldAvatarMetadata, query->value(offset + 2));
setValue(detail, QContactAvatar::FieldMetaData, query->value(offset + 2));
}

static const FieldInfo birthdayFields[] =
Expand Down Expand Up @@ -391,7 +391,7 @@ static const FieldInfo nameFields[] =
{ QContactName::FieldMiddleName, "middleName", LocalizedField },
{ QContactName::FieldPrefix, "prefix", LocalizedField },
{ QContactName::FieldSuffix, "suffix", LocalizedField },
{ QContactName__FieldCustomLabel, "customLabel", LocalizedField }
{ QContactName::FieldCustomLabel, "customLabel", LocalizedField }
};

static void setValues(QContactName *detail, QSqlQuery *query, const int offset)
Expand Down Expand Up @@ -496,8 +496,8 @@ static void setValues(QContactOrganization *detail, QSqlQuery *query, const int
static const FieldInfo phoneNumberFields[] =
{
{ QContactPhoneNumber::FieldNumber, "phoneNumber", LocalizedField },
{ QContactPhoneNumber::FieldSubTypes, "subTypes", StringListField },
{ QContactPhoneNumber__FieldNormalizedNumber, "normalizedNumber", StringField }
{ QContactPhoneNumber::FieldNormalizedNumber, "normalizedNumber", StringField },
{ QContactPhoneNumber::FieldSubTypes, "subTypes", StringListField }
};

static void setValues(QContactPhoneNumber *detail, QSqlQuery *query, const int offset)
Expand All @@ -509,7 +509,7 @@ static void setValues(QContactPhoneNumber *detail, QSqlQuery *query, const int o
const QStringList subTypeValues(query->value(offset + 1).toString().split(QLatin1Char(';'), QString::SkipEmptyParts));
setValue(detail, T::FieldSubTypes, QVariant::fromValue<QList<int> >(subTypeList(subTypeValues)));

setValue(detail, QContactPhoneNumber__FieldNormalizedNumber, query->value(offset + 2));
setValue(detail, QContactPhoneNumber::FieldNormalizedNumber, query->value(offset + 2));
}

static const FieldInfo presenceFields[] =
Expand Down Expand Up @@ -698,7 +698,7 @@ static void readDetail(QContact *contact, QSqlQuery &query, quint32 contactId, q
// This detail is not aggregated from another - its provenance should match its ID
provenance = QStringLiteral("%1:%2:%3").arg(ContactCollectionId::databaseId(collectionId)).arg(contactId).arg(dbId);
}
setValue(&detail, QContactDetail__FieldProvenance, provenance);
setValue(&detail, QContactDetail::FieldProvenance, provenance);

// Only report modifiable state for non-local contacts.
// local contacts are always (implicitly) modifiable.
Expand Down
2 changes: 1 addition & 1 deletion src/engine/contactsengine.cpp
Expand Up @@ -2033,7 +2033,7 @@ QString ContactsEngine::synthesizedDisplayLabel(const QContact &contact, QContac
QContactName name = contact.detail<QContactName>();

// If a custom label has been set, return that
const QString customLabel = name.value<QString>(QContactName__FieldCustomLabel);
const QString customLabel = name.value<QString>(QContactName::FieldCustomLabel);
if (!customLabel.isEmpty())
return customLabel;

Expand Down
20 changes: 10 additions & 10 deletions src/engine/contactwriter.cpp
Expand Up @@ -2022,7 +2022,7 @@ quint32 writeCommonDetails(ContactsDatabase &db, quint32 contactId, quint32 deta
const QVariant linkedDetailUris = QVariant(detail.linkedDetailUris().join(QStringLiteral(";")));
const QVariant contexts = detailContexts(detail);
const QVariant accessConstraints = static_cast<int>(detail.accessConstraints());
const QVariant provenance = aggregateContact ? detailValue(detail, QContactDetail__FieldProvenance) : QVariant();
const QVariant provenance = aggregateContact ? detailValue(detail, QContactDetail::FieldProvenance) : QVariant();
const QVariant modifiable = wasLocal ? true : (syncable && detail.hasValue(QContactDetail__FieldModifiable)
? detailValue(detail, QContactDetail__FieldModifiable)
: QVariant());
Expand Down Expand Up @@ -2373,7 +2373,7 @@ ContactsDatabase::Query bindDetail(ContactsDatabase &db, quint32 contactId, quin
query.bindValue(":contactId", contactId);
query.bindValue(":imageUrl", detail.value<QString>(T::FieldImageUrl).trimmed());
query.bindValue(":videoUrl", detail.value<QString>(T::FieldVideoUrl).trimmed());
query.bindValue(":avatarMetadata", detailValue(detail, QContactAvatar__FieldAvatarMetadata));
query.bindValue(":avatarMetadata", detailValue(detail, QContactAvatar::FieldMetaData));
return query;
}

Expand Down Expand Up @@ -2770,7 +2770,7 @@ ContactsDatabase::Query bindDetail(ContactsDatabase &db, quint32 contactId, quin
query.bindValue(":middleName", detail.value<QString>(QContactName::FieldMiddleName).trimmed());
query.bindValue(":prefix", detail.value<QString>(QContactName::FieldPrefix).trimmed());
query.bindValue(":suffix", detail.value<QString>(QContactName::FieldSuffix).trimmed());
query.bindValue(":customLabel", detail.value<QString>(QContactName__FieldCustomLabel).trimmed());
query.bindValue(":customLabel", detail.value<QString>(QContactName::FieldCustomLabel).trimmed());

return query;
}
Expand Down Expand Up @@ -3278,7 +3278,7 @@ template <typename T> bool ContactWriter::writeDetails(
if (!aggregateContact) {
// Insert the provenance value into the detail, now that we have it
const QString provenance(QStringLiteral("%1:%2:%3").arg(ContactCollectionId::databaseId(collectionId)).arg(contactId).arg(detailId));
detail.setValue(QContactDetail__FieldProvenance, provenance);
detail.setValue(QContactDetail::FieldProvenance, provenance);
}

ContactsDatabase::Query query = bindDetail(m_database, contactId, detailId, true, detail);
Expand Down Expand Up @@ -3316,7 +3316,7 @@ template <typename T> bool ContactWriter::writeDetails(
if (!aggregateContact) {
// Insert the provenance value into the detail, now that we have it
const QString provenance(QStringLiteral("%1:%2:%3").arg(ContactCollectionId::databaseId(collectionId)).arg(contactId).arg(detailId));
detail.setValue(QContactDetail__FieldProvenance, provenance);
detail.setValue(QContactDetail::FieldProvenance, provenance);
}

ContactsDatabase::Query query = bindDetail(m_database, contactId, detailId, false, detail);
Expand Down Expand Up @@ -3358,7 +3358,7 @@ template <typename T> bool ContactWriter::writeDetails(
if (!aggregateContact) {
// Insert the provenance value into the detail, now that we have it
const QString provenance(QStringLiteral("%1:%2:%3").arg(ContactCollectionId::databaseId(collectionId)).arg(contactId).arg(detailId));
detail.setValue(QContactDetail__FieldProvenance, provenance);
detail.setValue(QContactDetail::FieldProvenance, provenance);
}

ContactsDatabase::Query query = bindDetail(m_database, contactId, detailId, false, detail);
Expand Down Expand Up @@ -3747,9 +3747,9 @@ static void promoteDetailsToAggregate(const QContact &contact, QContact *aggrega
aname.setLastName(cname.lastName());
if (!cname.suffix().isEmpty() && aname.suffix().isEmpty())
aname.setSuffix(cname.suffix());
QString customLabel = cname.value<QString>(QContactName__FieldCustomLabel);
if (!customLabel.isEmpty() && aname.value<QString>(QContactName__FieldCustomLabel).isEmpty())
aname.setValue(QContactName__FieldCustomLabel, cname.value(QContactName__FieldCustomLabel));
QString customLabel = cname.value<QString>(QContactName::FieldCustomLabel);
if (!customLabel.isEmpty() && aname.value<QString>(QContactName::FieldCustomLabel).isEmpty())
aname.setValue(QContactName::FieldCustomLabel, cname.value(QContactName::FieldCustomLabel));
aggregate->saveDetail(&aname, QContact::IgnoreAccessConstraints);
} else if (detailType(original) == detailType<QContactTimestamp>()) {
// timestamp involves composition
Expand Down Expand Up @@ -3808,7 +3808,7 @@ static void promoteDetailsToAggregate(const QContact &contact, QContact *aggrega
det.setValue(QContactDetail__FieldModifiable, false);

// Store the provenance of this promoted detail
det.setValue(QContactDetail__FieldProvenance, original.value<QString>(QContactDetail__FieldProvenance));
det.setValue(QContactDetail::FieldProvenance, original.value<QString>(QContactDetail::FieldProvenance));

aggregate->saveDetail(&det, QContact::IgnoreAccessConstraints);
}
Expand Down
8 changes: 4 additions & 4 deletions src/extensions/contactdelta_impl.h
Expand Up @@ -87,7 +87,7 @@ QSet<QContactDetail::DetailType> getDefaultIgnorableDetailTypes()
QHash<QContactDetail::DetailType, QSet<int> > getDefaultIgnorableDetailFields()
{
QHash<QContactDetail::DetailType, QSet<int> > rv;
rv.insert(QContactDetail::TypePhoneNumber, { QContactPhoneNumber__FieldNormalizedNumber });
rv.insert(QContactDetail::TypePhoneNumber, { QContactPhoneNumber::FieldNormalizedNumber });
// Clients can specify their own ignorable fields depending on the semantics of their
// sync service (eg, might not be able to handle some subtypes or contexts, etc)
return rv;
Expand All @@ -96,7 +96,7 @@ QHash<QContactDetail::DetailType, QSet<int> > getDefaultIgnorableDetailFields()
QSet<int> getDefaultIgnorableCommonFields()
{
return {
QContactDetail__FieldProvenance,
QContactDetail::FieldProvenance,
QContactDetail__FieldModifiable,
QContactDetail__FieldNonexportable,
QContactDetail__FieldChangeFlags,
Expand Down Expand Up @@ -378,7 +378,7 @@ void constructModification(const QContactDetail &old, QContactDetail *update)
if (field == QContactDetail__FieldDatabaseId
|| (!values.contains(field)
&& field == QContactDetail__FieldModifiable
&& field == QContactDetail__FieldProvenance
&& field == QContactDetail::FieldProvenance
&& field == QContactDetail::FieldDetailUri
&& field == QContactDetail::FieldLinkedDetailUris)) {
update->setValue(field, oldValues.value(field));
Expand Down Expand Up @@ -524,7 +524,7 @@ DetailMap detailValues(const QContactDetail &detail, bool includeProvenance = tr
if (!includeProvenance || !includeModifiable) {
DetailMap::iterator it = rv.begin();
while (it != rv.end()) {
if (!includeProvenance && it.key() == QContactDetail__FieldProvenance) {
if (!includeProvenance && it.key() == QContactDetail::FieldProvenance) {
it = rv.erase(it);
} else if (!includeModifiable && it.key() == QContactDetail__FieldModifiable) {
it = rv.erase(it);
Expand Down
10 changes: 0 additions & 10 deletions src/extensions/qtcontacts-extensions.h
Expand Up @@ -49,7 +49,6 @@
QT_BEGIN_NAMESPACE_CONTACTS

// In QContactDetail, we support some extra fields
static const int QContactDetail__FieldProvenance = (QContactDetail::FieldLinkedDetailUris+1);
static const int QContactDetail__FieldModifiable = (QContactDetail::FieldLinkedDetailUris+2);
static const int QContactDetail__FieldNonexportable = (QContactDetail::FieldLinkedDetailUris+3);
static const int QContactDetail__FieldChangeFlags = (QContactDetail::FieldLinkedDetailUris+4);
Expand All @@ -61,9 +60,6 @@ static const int QContactDetail__ChangeFlag_IsAdded = 1 << 0;
static const int QContactDetail__ChangeFlag_IsModified = 1 << 1;
static const int QContactDetail__ChangeFlag_IsDeleted = 1 << 2;

// In QContactName, we support the customLabel property
static const int QContactName__FieldCustomLabel = (QContactName::FieldSuffix+1);

// In QContactDisplayLabel, we support the labelGroup property
static const int QContactDisplayLabel__FieldLabelGroup = (QContactDisplayLabel::FieldLabel+1);
static const int QContactDisplayLabel__FieldLabelGroupSortOrder = (QContactDisplayLabel::FieldLabel+2);
Expand All @@ -78,12 +74,6 @@ static const int QContactOnlineAccount__FieldEnabled = (QContactOnlineAccount::F
static const int QContactOnlineAccount__FieldAccountDisplayName = (QContactOnlineAccount::FieldSubTypes+4);
static const int QContactOnlineAccount__FieldServiceProviderDisplayName = (QContactOnlineAccount::FieldSubTypes+5);

// In QContactPhoneNumber, we support a field for normalized form of the number
static const int QContactPhoneNumber__FieldNormalizedNumber = (QContactPhoneNumber::FieldSubTypes+1);

// In QContactAvatar, we support a field for storing caller metadata
static const int QContactAvatar__FieldAvatarMetadata = (QContactAvatar::FieldVideoUrl+1);

// We support the QContactOriginMetadata detail type
static const QContactDetail::DetailType QContactDetail__TypeOriginMetadata = static_cast<QContactDetail::DetailType>(QContactDetail::TypeVersion + 1);

Expand Down
6 changes: 3 additions & 3 deletions tests/auto/aggregation/tst_aggregation.cpp
Expand Up @@ -50,7 +50,7 @@ static const char *removedAccumulationSlot = SLOT(remAccumulationSlot(QList<QCon

QString detailProvenance(const QContactDetail &detail)
{
return detail.value<QString>(QContactDetail__FieldProvenance);
return detail.value<QString>(QContactDetail::FieldProvenance);
}

QString detailProvenanceContact(const QContactDetail &detail)
Expand Down Expand Up @@ -3392,13 +3392,13 @@ void tst_Aggregation::customSemantics()
alice.saveDetail(&an);
QContactAvatar aa;
aa.setImageUrl(QUrl(QString::fromLatin1("test.png")));
aa.setValue(QContactAvatar__FieldAvatarMetadata, "cover");
aa.setValue(QContactAvatar::FieldMetaData, "cover");
alice.saveDetail(&aa);
QVERIFY(m_cm->saveContact(&alice));
QContact aliceReloaded = m_cm->contact(retrievalId(alice));
QCOMPARE(aliceReloaded.detail<QContactName>().value<QString>(QContactName::FieldFirstName), QLatin1String("Alice"));
QCOMPARE(QUrl(aliceReloaded.detail<QContactAvatar>().value<QString>(QContactAvatar::FieldImageUrl)).toString(), QUrl(QString::fromLatin1("test.png")).toString());
QCOMPARE(aliceReloaded.detail<QContactAvatar>().value<QString>(QContactAvatar__FieldAvatarMetadata), QLatin1String("cover"));
QCOMPARE(aliceReloaded.detail<QContactAvatar>().value<QString>(QContactAvatar::FieldMetaData), QLatin1String("cover"));

// test the self contact semantics
QCOMPARE(m_cm->selfContactId(), ContactId::apiId(2, m_cm->managerUri()));
Expand Down
4 changes: 2 additions & 2 deletions tests/auto/qcontactmanager/tst_qcontactmanager.cpp
Expand Up @@ -405,7 +405,7 @@ void tst_QContactManager::dumpContactDifferences(const QContact& ca, const QCont
#ifdef CUSTOM_LABEL_SUPPORTED
QCOMPARE(n1.customLabel(), n2.customLabel());
#elif defined(CUSTOM_LABEL_STORAGE_SUPPORTED)
QCOMPARE(n1.value<QString>(QContactName__FieldCustomLabel), n2.value<QString>(QContactName__FieldCustomLabel));
QCOMPARE(n1.value<QString>(QContactName::FieldCustomLabel), n2.value<QString>(QContactName::FieldCustomLabel));
#endif

#ifdef DISPLAY_LABEL_SUPPORTED
Expand Down Expand Up @@ -682,7 +682,7 @@ void tst_QContactManager::saveContactName(QContact *contact, QContactDetailDefin
#ifdef CUSTOM_LABEL_SUPPORTED
contactName->setCustomLabel(name);
#elif defined(CUSTOM_LABEL_STORAGE_SUPPORTED)
contactName->setValue(QContactName__FieldCustomLabel, name);
contactName->setValue(QContactName::FieldCustomLabel, name);
#else
contactName->setFirstName(name);
#endif
Expand Down
Expand Up @@ -3208,28 +3208,28 @@ QList<QContactId> tst_QContactManagerFiltering::prepareModel(QContactManager *cm
#ifdef CUSTOM_LABEL_SUPPORTED
n2.setCustomLabel("xander");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
n2.setValue(QContactName__FieldCustomLabel, "xander");
n2.setValue(QContactName::FieldCustomLabel, "xander");
#endif
contactH.saveDetail(&n2);
n2.setFirstName("Xander");
#ifdef CUSTOM_LABEL_SUPPORTED
n2.setCustomLabel("Xander");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
n2.setValue(QContactName__FieldCustomLabel, "Xander");
n2.setValue(QContactName::FieldCustomLabel, "Xander");
#endif
contactI.saveDetail(&n2);
n2.setFirstName("xAnder");
#ifdef CUSTOM_LABEL_SUPPORTED
n2.setCustomLabel("xAnder");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
n2.setValue(QContactName__FieldCustomLabel, "xAnder");
n2.setValue(QContactName::FieldCustomLabel, "xAnder");
#endif
contactJ.saveDetail(&n2);
n2.setFirstName("Yarrow");
#ifdef CUSTOM_LABEL_SUPPORTED
n2.setCustomLabel("Yarrow");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
n2.setValue(QContactName__FieldCustomLabel, "Yarrow");
n2.setValue(QContactName::FieldCustomLabel, "Yarrow");
#endif
contactK.saveDetail(&n2);

Expand All @@ -3251,7 +3251,7 @@ QList<QContactId> tst_QContactManagerFiltering::prepareModel(QContactManager *cm
#ifdef CUSTOM_LABEL_SUPPORTED
modifiedName.setCustomLabel("Clarence");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
modifiedName.setValue(QContactName__FieldCustomLabel, "Clarence");
modifiedName.setValue(QContactName::FieldCustomLabel, "Clarence");
#endif
contactC.saveDetail(&modifiedName);
cm->saveContact(&contactC);
Expand All @@ -3260,7 +3260,7 @@ QList<QContactId> tst_QContactManagerFiltering::prepareModel(QContactManager *cm
#ifdef CUSTOM_LABEL_SUPPORTED
modifiedName.setCustomLabel("Boris");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
modifiedName.setValue(QContactName__FieldCustomLabel, "Boris");
modifiedName.setValue(QContactName::FieldCustomLabel, "Boris");
#endif
contactB.saveDetail(&modifiedName);
cm->saveContact(&contactB);
Expand All @@ -3269,7 +3269,7 @@ QList<QContactId> tst_QContactManagerFiltering::prepareModel(QContactManager *cm
#ifdef CUSTOM_LABEL_SUPPORTED
modifiedName.setCustomLabel("Albert");
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
modifiedName.setValue(QContactName__FieldCustomLabel, "Albert");
modifiedName.setValue(QContactName::FieldCustomLabel, "Albert");
#endif
contactA.saveDetail(&modifiedName);
cm->saveContact(&contactA);
Expand Down Expand Up @@ -3619,7 +3619,7 @@ void tst_QContactManagerFiltering::dumpContactDifferences(const QContact& ca, co
#ifdef CUSTOM_LABEL_SUPPORTED
QCOMPARE(n1.customLabel(), n2.customLabel());
#elif defined (CUSTOM_LABEL_STORAGE_SUPPORTED)
QCOMPARE(n1.value<QString>(QContactName__FieldCustomLabel), n2.value<QString>(QContactName__FieldCustomLabel));
QCOMPARE(n1.value<QString>(QContactName::FieldCustomLabel), n2.value<QString>(QContactName::FieldCustomLabel));
#endif

#ifdef DISPLAY_LABEL_SUPPORTED
Expand Down
2 changes: 1 addition & 1 deletion tests/util.h
Expand Up @@ -156,7 +156,7 @@ DetailMap detailValues(const QContactDetail &detail, bool includeProvenance = tr
if (!includeProvenance) {
DetailMap::iterator it = rv.begin();
while (it != rv.end()) {
if (it.key() == QContactDetail__FieldProvenance) {
if (it.key() == QContactDetail::FieldProvenance) {
it = rv.erase(it);
} else {
++it;
Expand Down

0 comments on commit f3e3b3d

Please sign in to comment.