Skip to content
This repository has been archived by the owner on Sep 4, 2021. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
[contacts] Allow contact listenters to specify required properties. C…
…ontributes to JB#50910
  • Loading branch information
adenexter committed Sep 9, 2020
1 parent d5f27cc commit ddc2370
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
15 changes: 15 additions & 0 deletions src/seasidecache.cpp
Expand Up @@ -258,6 +258,9 @@ QContactFetchHint metadataFetchHint(quint32 fetchTypes = 0)
if (fetchTypes & SeasideCache::FetchOrganization) {
types << detailType<QContactOrganization>();
}
if (fetchTypes & SeasideCache::FetchAvatar) {
types << detailType<QContactAvatar>();
}

setDetailTypesHint(fetchHint, types);
return fetchHint;
Expand Down Expand Up @@ -300,6 +303,9 @@ QContactFetchHint extendedMetadataFetchHint(quint32 fetchTypes)
if (fetchTypes & SeasideCache::FetchOrganization) {
types << detailType<QContactOrganization>();
}
if (fetchTypes & SeasideCache::FetchAvatar) {
types << detailType<QContactAvatar>();
}

setDetailTypesHint(fetchHint, types);
return fetchHint;
Expand Down Expand Up @@ -707,6 +713,15 @@ void SeasideCache::registerChangeListener(ChangeListener *listener)
instancePtr->m_changeListeners.append(listener);
}

void SeasideCache::registerChangeListener(ChangeListener *listener, FetchDataType requiredTypes, FetchDataType extraTypes)
{
// Ensure the cache has been instantiated
instance();

instancePtr->m_changeListeners.append(listener);
instancePtr->keepPopulated(requiredTypes, extraTypes);
}

void SeasideCache::unregisterChangeListener(ChangeListener *listener)
{
if (!instancePtr)
Expand Down
5 changes: 4 additions & 1 deletion src/seasidecache.h
Expand Up @@ -88,10 +88,12 @@ class CONTACTCACHE_EXPORT SeasideCache : public QObject
FetchPhoneNumber = (1 << 1),
FetchEmailAddress = (1 << 2),
FetchOrganization = (1 << 3),
FetchAvatar = (1 << 4),
FetchTypesMask = (FetchAccountUri |
FetchPhoneNumber |
FetchEmailAddress |
FetchOrganization)
FetchOrganization |
FetchAvatar)
};

enum DisplayLabelOrder {
Expand Down Expand Up @@ -291,6 +293,7 @@ class CONTACTCACHE_EXPORT SeasideCache : public QObject
static void unregisterDisplayLabelGroupChangeListener(SeasideDisplayLabelGroupChangeListener *listener);

static void registerChangeListener(ChangeListener *listener);
static void registerChangeListener(ChangeListener *listener, FetchDataType requiredTypes, FetchDataType extraTypes = FetchNone);
static void unregisterChangeListener(ChangeListener *listener);

static void unregisterResolveListener(ResolveListener *listener);
Expand Down

0 comments on commit ddc2370

Please sign in to comment.