File indexing completed on 2024-09-22 04:40:52
0001 /* 0002 SPDX-FileCopyrightText: 2007 Volker Krause <vkrause@kde.org> 0003 SPDX-FileCopyrightText: 2008 Kevin Krammer <kevin.krammer@gmx.at> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "agentbase.h" 0011 #include "tracerinterface.h" 0012 0013 #include <KLocalizedString> 0014 0015 class QSettings; 0016 class QTimer; 0017 class QNetworkConfigurationManager; 0018 0019 namespace Akonadi 0020 { 0021 /** 0022 * @internal 0023 */ 0024 class AgentBasePrivate : public QObject 0025 { 0026 Q_OBJECT 0027 Q_CLASSINFO("D-Bus Interface", "org.kde.dfaure") 0028 0029 public: 0030 explicit AgentBasePrivate(AgentBase *parent); 0031 ~AgentBasePrivate() override; 0032 void init(); 0033 virtual void delayedInit(); 0034 0035 public Q_SLOTS: 0036 void slotStatus(int status, const QString &message); 0037 void slotPercent(int progress); 0038 void slotWarning(const QString &message); 0039 void slotError(const QString &message); 0040 void slotNetworkStatusChange(bool isOnline); 0041 void slotResumedFromSuspend(); 0042 void slotTemporaryOfflineTimeout(); 0043 0044 virtual void changeProcessed(); 0045 0046 QString defaultReadyMessage() const 0047 { 0048 if (mOnline) { 0049 return i18nc("@info:status Application ready for work", "Ready"); 0050 } 0051 return i18nc("@info:status", "Offline"); 0052 } 0053 0054 QString defaultSyncingMessage() const 0055 { 0056 return i18nc("@info:status", "Syncing..."); 0057 } 0058 0059 QString defaultErrorMessage() const 0060 { 0061 return i18nc("@info:status", "Error."); 0062 } 0063 0064 QString defaultUnconfiguredMessage() const 0065 { 0066 return i18nc("@info:status", "Not configured"); 0067 } 0068 0069 void setProgramName(); 0070 0071 public: 0072 AgentBase *q_ptr; 0073 Q_DECLARE_PUBLIC(AgentBase) 0074 0075 QString mId; 0076 QString mName; 0077 QString mResourceTypeName; 0078 0079 int mStatusCode; 0080 QString mStatusMessage; 0081 0082 int mProgress; 0083 QString mProgressMessage; 0084 0085 bool mNeedsNetwork; 0086 bool mOnline; 0087 bool mDesiredOnlineState; 0088 0089 bool mPendingQuit; 0090 0091 QSettings *mSettings = nullptr; 0092 0093 ChangeRecorder *mChangeRecorder = nullptr; 0094 0095 org::freedesktop::Akonadi::Tracer *mTracer = nullptr; 0096 0097 AgentBase::Observer *mObserver = nullptr; 0098 QDBusInterface *mPowerInterface = nullptr; 0099 0100 QTimer *mTemporaryOfflineTimer = nullptr; 0101 0102 QEventLoopLocker *mEventLoopLocker = nullptr; 0103 public Q_SLOTS: 0104 // Dump the contents of the current ChangeReplay 0105 Q_SCRIPTABLE QString dumpNotificationListToString() const; 0106 Q_SCRIPTABLE void dumpMemoryInfo() const; 0107 Q_SCRIPTABLE QString dumpMemoryInfoToString() const; 0108 0109 virtual void itemAdded(const Akonadi::Item &item, const Akonadi::Collection &collection); 0110 virtual void itemChanged(const Akonadi::Item &item, const QSet<QByteArray> &partIdentifiers); 0111 virtual void itemMoved(const Akonadi::Item &item, const Akonadi::Collection &source, const Akonadi::Collection &destination); 0112 virtual void itemRemoved(const Akonadi::Item &item); 0113 void itemLinked(const Akonadi::Item &item, const Akonadi::Collection &collection); 0114 void itemUnlinked(const Akonadi::Item &item, const Akonadi::Collection &collection); 0115 0116 virtual void itemsFlagsChanged(const Akonadi::Item::List &items, const QSet<QByteArray> &addedFlags, const QSet<QByteArray> &removedFlags); 0117 virtual void itemsMoved(const Akonadi::Item::List &items, const Akonadi::Collection &source, const Akonadi::Collection &destination); 0118 virtual void itemsRemoved(const Akonadi::Item::List &items); 0119 virtual void itemsLinked(const Akonadi::Item::List &items, const Akonadi::Collection &collection); 0120 virtual void itemsUnlinked(const Akonadi::Item::List &items, const Akonadi::Collection &collection); 0121 0122 virtual void collectionAdded(const Akonadi::Collection &collection, const Akonadi::Collection &parent); 0123 virtual void collectionChanged(const Akonadi::Collection &collection); 0124 virtual void collectionChanged(const Akonadi::Collection &collection, const QSet<QByteArray> &changedAttributes); 0125 virtual void collectionMoved(const Akonadi::Collection &collection, const Akonadi::Collection &source, const Akonadi::Collection &destination); 0126 virtual void collectionRemoved(const Akonadi::Collection &collection); 0127 void collectionSubscribed(const Akonadi::Collection &collection, const Akonadi::Collection &parent); 0128 void collectionUnsubscribed(const Akonadi::Collection &collection); 0129 0130 virtual void tagAdded(const Akonadi::Tag &tag); 0131 virtual void tagChanged(const Akonadi::Tag &tag); 0132 virtual void tagRemoved(const Akonadi::Tag &tag); 0133 virtual void itemsTagsChanged(const Akonadi::Item::List &items, const QSet<Akonadi::Tag> &addedTags, const QSet<Akonadi::Tag> &removedTags); 0134 0135 virtual void relationAdded(const Akonadi::Relation &relation); 0136 virtual void relationRemoved(const Akonadi::Relation &relation); 0137 virtual void 0138 itemsRelationsChanged(const Akonadi::Item::List &items, const Akonadi::Relation::List &addedRelations, const Akonadi::Relation::List &removedRelations); 0139 }; 0140 0141 }