21 #include "monitor_p.h"
23 #include "changemediator_p.h"
24 #include "collectionfetchscope.h"
25 #include "itemfetchjob.h"
26 #include "notificationmessage_p.h"
31 #include <QtDBus/QDBusInterface>
32 #include <QtDBus/QDBusConnection>
34 #include <QtCore/QDebug>
35 #include <QtCore/QTimer>
38 using namespace Akonadi;
40 Monitor::Monitor( QObject *parent ) :
45 d_ptr->connectToNotificationManager();
54 d_ptr->connectToNotificationManager();
56 ChangeMediator::registerMonitor(
this);
62 ChangeMediator::unregisterMonitor(
this);
69 void Monitor::setCollectionMonitored(
const Collection &collection,
bool monitored )
73 d->collections << collection;
75 d->collections.removeAll( collection );
76 d->cleanOldNotifications();
78 emit collectionMonitored( collection, monitored );
81 void Monitor::setItemMonitored(
const Item & item,
bool monitored )
85 d->items.insert( item.
id() );
87 d->items.remove( item.
id() );
88 d->cleanOldNotifications();
90 emit itemMonitored( item, monitored );
93 void Monitor::setResourceMonitored(
const QByteArray & resource,
bool monitored )
97 d->resources.insert( resource );
99 d->resources.remove( resource );
100 d->cleanOldNotifications();
102 emit resourceMonitored( resource, monitored );
105 void Monitor::setMimeTypeMonitored(
const QString & mimetype,
bool monitored )
109 d->mimetypes.insert( mimetype );
111 d->mimetypes.remove( mimetype );
112 d->cleanOldNotifications();
115 emit mimeTypeMonitored( mimetype, monitored );
121 d->monitorAll = monitored;
124 d->cleanOldNotifications();
127 emit allMonitored( monitored );
130 void Monitor::ignoreSession(
Session * session)
134 connect( session, SIGNAL(destroyed(QObject*)),
this, SLOT(slotSessionDestroyed(QObject*)) );
137 void Monitor::fetchCollection(
bool enable)
140 d->fetchCollection = enable;
143 void Monitor::fetchCollectionStatistics(
bool enable)
146 d->fetchCollectionStatistics = enable;
152 d->mItemFetchScope = fetchScope;
158 return d->mItemFetchScope;
161 void Monitor::fetchChangedOnly(
bool enable )
164 d->mFetchChangedOnly = enable;
171 d->mCollectionFetchScope = fetchScope;
177 return d->mCollectionFetchScope;
180 Akonadi::Collection::List Monitor::collectionsMonitored()
const
183 return d->collections;
186 QList<Item::Id> Monitor::itemsMonitored()
const
189 return d->items.toList();
192 QVector<Item::Id> Monitor::itemsMonitoredEx()
const
195 QVector<Item::Id> result;
196 result.reserve( d->items.size() );
197 qCopy( d->items.begin(), d->items.end(), std::back_inserter( result ) );
201 QStringList Monitor::mimeTypesMonitored()
const
204 return d->mimetypes.toList();
207 QList<QByteArray> Monitor::resourcesMonitored()
const
210 return d->resources.toList();
213 bool Monitor::isAllMonitored()
const
216 return d->monitorAll;
219 void Monitor::setSession( Akonadi::Session *session )
222 if (session == d->session)
226 d->session = Session::defaultSession();
228 d->session = session;
230 d->itemCache->setSession(d->session);
231 d->collectionCache->setSession(d->session);
240 void Monitor::setCollectionMoveTranslationEnabled(
bool enabled )
243 d->collectionMoveTranslationEnabled = enabled;
246 #include "monitor.moc"