24 #ifndef AKONADI_AGENTBASE_H
25 #define AKONADI_AGENTBASE_H
27 #include "akonadi_export.h"
29 #include <KDE/KApplication>
31 #include <QtDBus/QDBusConnection>
32 #include <QtDBus/QDBusContext>
34 class Akonadi__ControlAdaptor;
35 class Akonadi__StatusAdaptor;
39 class AgentBasePrivate;
79 class AKONADI_EXPORT
AgentBase :
public QObject,
protected QDBusContext
202 virtual void itemAdded(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
209 virtual void itemChanged(
const Akonadi::Item &item,
const QSet<QByteArray> &partIdentifiers );
215 virtual void itemRemoved(
const Akonadi::Item &item );
222 virtual void collectionAdded(
const Akonadi::Collection &collection,
const Akonadi::Collection &parent );
228 virtual void collectionChanged(
const Akonadi::Collection &collection );
234 virtual void collectionRemoved(
const Akonadi::Collection &collection );
246 using Observer::collectionChanged;
258 virtual void itemMoved(
const Akonadi::Item &item,
const Akonadi::Collection &collectionSource,
259 const Akonadi::Collection &collectionDestination );
267 virtual void itemLinked(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
275 virtual void itemUnlinked(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
287 virtual void collectionMoved(
const Akonadi::Collection &collection,
const Akonadi::Collection &collectionSource,
288 const Akonadi::Collection &collectionDestination );
295 virtual void collectionChanged(
const Akonadi::Collection &collection,
const QSet<QByteArray> &changedAttributes );
330 template <
typename T>
331 static int init(
int argc,
char **argv )
333 const QString
id = parseArguments( argc, argv );
341 r->registerObserver( observer );
354 virtual int status()
const;
359 virtual QString statusMessage()
const;
364 virtual int progress()
const;
369 virtual QString progressMessage()
const;
382 virtual void configure( WId windowId );
388 WId winIdForDialogs()
const;
395 void configure( qlonglong windowId );
401 QString identifier()
const;
410 virtual void cleanup();
419 void registerObserver( Observer *observer );
427 void setAgentName(
const QString &name );
434 QString agentName()
const;
444 static KComponentData componentData();
454 void agentNameChanged(
const QString &name );
461 void status(
int status,
const QString &message = QString() );
469 void percent(
int progress );
476 void warning(
const QString& message );
483 void error(
const QString& message );
491 void advancedStatus(
const QVariantMap &status );
501 void abortRequested();
509 void reloadConfiguration();
516 void onlineChanged(
bool online );
526 void configurationDialogAccepted();
536 void configurationDialogRejected();
558 virtual void aboutToQuit();
569 KSharedConfigPtr config();
578 void changeProcessed();
583 bool isOnline()
const;
592 void setNeedsNetwork(
bool needsNetwork );
597 void setOnline(
bool state );
603 friend class ObserverV2;
610 virtual void doSetOnline(
bool online );
614 static QString parseArguments(
int,
char** );
623 friend class ::Akonadi__StatusAdaptor;
624 friend class ::Akonadi__ControlAdaptor;
627 Q_PRIVATE_SLOT( d_func(),
void delayedInit() )
628 Q_PRIVATE_SLOT( d_func(),
void slotStatus(
int, const QString& ) )
629 Q_PRIVATE_SLOT( d_func(),
void slotPercent(
int ) )
630 Q_PRIVATE_SLOT( d_func(),
void slotWarning( const QString& ) )
631 Q_PRIVATE_SLOT( d_func(),
void slotError( const QString& ) )
632 Q_PRIVATE_SLOT( d_func(),
void slotNetworkStatusChange( Solid::Networking::Status ) )
633 Q_PRIVATE_SLOT( d_func(),
void slotResumedFromSuspend() )
640 #ifndef AKONADI_AGENT_MAIN
644 #define AKONADI_AGENT_MAIN( agentClass ) \
645 int main( int argc, char **argv ) \
647 return Akonadi::AgentBase::init<agentClass>( argc, argv ); \