Changeset View
Changeset View
Standalone View
Standalone View
src/backends/basepersonsdatasource.cpp
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | 43 | { | |||
---|---|---|---|---|---|
44 | delete d_ptr; | 44 | delete d_ptr; | ||
45 | } | 45 | } | ||
46 | 46 | | |||
47 | AllContactsMonitorPtr BasePersonsDataSource::allContactsMonitor() | 47 | AllContactsMonitorPtr BasePersonsDataSource::allContactsMonitor() | ||
48 | { | 48 | { | ||
49 | Q_D(BasePersonsDataSource); | 49 | Q_D(BasePersonsDataSource); | ||
50 | 50 | | |||
51 | //if there is currently no watcher, create one | 51 | //if there is currently no watcher, create one | ||
52 | AllContactsMonitorPtr c; | 52 | AllContactsMonitorPtr c = d->m_allContactsMonitor.toStrongRef(); | ||
53 | if (!d->m_allContactsMonitor.toStrongRef()) { | 53 | if (!c) { | ||
54 | c = AllContactsMonitorPtr(createAllContactsMonitor()); | 54 | c = AllContactsMonitorPtr(createAllContactsMonitor()); | ||
55 | d->m_allContactsMonitor = c; | 55 | d->m_allContactsMonitor = c; | ||
56 | } | 56 | } | ||
57 | 57 | | |||
58 | return d->m_allContactsMonitor.toStrongRef(); | 58 | return c; | ||
59 | } | 59 | } | ||
60 | 60 | | |||
61 | ContactMonitorPtr BasePersonsDataSource::contactMonitor(const QString &contactUri) | 61 | ContactMonitorPtr BasePersonsDataSource::contactMonitor(const QString &contactUri) | ||
62 | { | 62 | { | ||
63 | Q_D(BasePersonsDataSource); | 63 | Q_D(BasePersonsDataSource); | ||
64 | 64 | | |||
65 | ContactMonitorPtr c; | 65 | ContactMonitorPtr c = d->m_contactMonitors[contactUri].toStrongRef(); | ||
66 | if (!d->m_contactMonitors[contactUri].toStrongRef()) { | 66 | if (!c) { | ||
67 | c = ContactMonitorPtr(createContactMonitor(contactUri)); | 67 | c = ContactMonitorPtr(createContactMonitor(contactUri)); | ||
68 | d->m_contactMonitors[contactUri] = c; | 68 | d->m_contactMonitors[contactUri] = c; | ||
69 | } | 69 | } | ||
70 | return d->m_contactMonitors[contactUri].toStrongRef(); | 70 | return c; | ||
71 | } | 71 | } | ||
72 | 72 | | |||
73 | ContactMonitor *BasePersonsDataSource::createContactMonitor(const QString &contactUri) | 73 | ContactMonitor *BasePersonsDataSource::createContactMonitor(const QString &contactUri) | ||
74 | { | 74 | { | ||
75 | return new DefaultContactMonitor(contactUri, allContactsMonitor()); | 75 | return new DefaultContactMonitor(contactUri, allContactsMonitor()); | ||
76 | } | 76 | } | ||
77 | | ||||
78 | BasePersonsDataSourceV2::BasePersonsDataSourceV2(QObject* parent, const QVariantList& args) | ||||
79 | : BasePersonsDataSource(parent, args) | ||||
80 | { | ||||
81 | } |