Go to the documentation of this file.00001 #ifndef MKCAL_SERVICEHANDLER_H
00002 #define MKCAL_SERVICEHANDLER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <incidence.h>
00026 #include <QObject>
00027 #include "mkcal_export.h"
00028 #include "notebook.h"
00029 #include "extendedcalendar.h"
00030 #include "extendedstorage.h"
00031 #include "servicehandlerif.h"
00032
00033 const QString defaultName = "DefaultInvitationPlugin";
00034
00035 namespace mKCal {
00036
00037
00040 class MKCAL_EXPORT ServiceHandler : QObject
00041 {
00042 Q_OBJECT
00043 private:
00046 ServiceHandler();
00047
00050 ~ServiceHandler();
00051
00052
00053 Q_DISABLE_COPY( ServiceHandler )
00054 class MKCAL_HIDE Private;
00055 Private *const d;
00056
00057 static ServiceHandler *mSingleton;
00058
00059
00060
00061 public:
00062
00064
00065
00066
00067 enum ErrorCode {
00068 ErrorOk = 0,
00069 ErrorNoAccount,
00070 ErrorNotSupported,
00071 ErrorNoConnectivity,
00072 ErrorInvalidParameters,
00073 ErrorInternal
00074 };
00075
00077 enum ExecutedPlugin {
00078 None = 0,
00079 SendInvitation,
00080 SendResponse,
00081 SendUpdate
00082 };
00083
00087 static ServiceHandler& instance();
00088
00092 static void destroy();
00093
00103 bool sendInvitation(const KCalCore::Incidence::Ptr &invitation, const QString &body, const ExtendedCalendar::Ptr &calendar, const ExtendedStorage::Ptr &storage);
00104
00114 bool sendUpdate(const KCalCore::Incidence::Ptr &invitation, const QString &body, const ExtendedCalendar::Ptr &calendar, const ExtendedStorage::Ptr &storage);
00115
00125 bool sendResponse(const KCalCore::Incidence::Ptr &invitation, const QString &body, const ExtendedCalendar::Ptr &calendar, const ExtendedStorage::Ptr &storage);
00126
00133 bool responseClaimed(const KCalCore::Incidence::Ptr &response, const ExtendedCalendar::Ptr &calendar, const ExtendedStorage::Ptr &storage);
00134
00141 QString icon(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage);
00142
00149 bool multiCalendar(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage);
00150
00157 QString emailAddress(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage);
00158
00165 QString displayName(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage);
00166
00176 int downloadAttachment(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage, const QString &uri, const QString &path);
00177
00186 bool deleteAttachment(const KCalCore::Incidence::Ptr &incidence, const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage, const QString &uri);
00187
00195 bool shareNotebook(const Notebook::Ptr ¬ebook, const QStringList &sharedWith, const ExtendedStorage::Ptr &storage);
00196
00203 QStringList sharedWith(const Notebook::Ptr ¬ebook, const ExtendedStorage::Ptr &storage);
00204
00211 QString defaultNotebook(const QString &productId);
00212
00221 ServiceHandler::ErrorCode error() const;
00222
00223
00225
00233 QStringList availableServices();
00234
00235
00242 QString icon(QString serviceId);
00243
00250 QString uiName(QString serviceId);
00251
00256 QString defaultEmailAddress();
00257
00258 signals:
00259
00261 void downloadProgress(int id, int percentage);
00262
00264 void downloadFinished(int id);
00265
00267 void downloadError(int id, ErrorCode error);
00268
00269 };
00270
00271 }
00272 #endif // MKCAL_SERVICEHANDLER_H