diff --git a/src/seasidecache.cpp b/src/seasidecache.cpp index f768349..b6cdbab 100644 --- a/src/seasidecache.cpp +++ b/src/seasidecache.cpp @@ -258,6 +258,9 @@ QContactFetchHint metadataFetchHint(quint32 fetchTypes = 0) if (fetchTypes & SeasideCache::FetchOrganization) { types << detailType(); } + if (fetchTypes & SeasideCache::FetchAvatar) { + types << detailType(); + } setDetailTypesHint(fetchHint, types); return fetchHint; @@ -300,6 +303,9 @@ QContactFetchHint extendedMetadataFetchHint(quint32 fetchTypes) if (fetchTypes & SeasideCache::FetchOrganization) { types << detailType(); } + if (fetchTypes & SeasideCache::FetchAvatar) { + types << detailType(); + } setDetailTypesHint(fetchHint, types); return fetchHint; @@ -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) diff --git a/src/seasidecache.h b/src/seasidecache.h index 1f76874..422375e 100644 --- a/src/seasidecache.h +++ b/src/seasidecache.h @@ -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 { @@ -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);