20 #ifndef AKONADI_INCIDENCECHANGER_H
21 #define AKONADI_INCIDENCECHANGER_H
23 #include "akonadi-calendar_export.h"
25 #include <akonadi/item.h>
26 #include <akonadi/collection.h>
27 #include <kcalcore/incidence.h>
81 class AKONADI_CALENDAR_EXPORT IncidenceChanger :
public QObject
90 ResultCodeSuccess = 0,
92 ResultCodeAlreadyDeleted,
93 ResultCodeInvalidDefaultCollection,
95 ResultCodePermissions,
96 ResultCodeUserCanceled,
97 ResultCodeInvalidUserCollection,
98 ResultCodeModificationDiscarded,
107 enum DestinationPolicy {
108 DestinationPolicyDefault,
109 DestinationPolicyAsk,
110 DestinationPolicyNeverAsk
126 explicit IncidenceChanger(QObject *parent = 0);
148 int createIncidence(
const KCalCore::Incidence::Ptr &incidence,
150 QWidget *parent = 0);
164 int deleteIncidence(
const Akonadi::Item &item, QWidget *parent = 0);
195 const KCalCore::Incidence::Ptr &originalPayload = KCalCore::Incidence::Ptr(),
196 QWidget *parent = 0);
214 void startAtomicOperation(
const QString &operationDescription = QString());
222 void endAtomicOperation();
249 void setDestinationPolicy(DestinationPolicy destinationPolicy);
257 DestinationPolicy destinationPolicy()
const;
262 void setShowDialogsOnError(
bool enable);
270 bool showDialogsOnError()
const;
276 void setRespectsCollectionRights(
bool respect);
286 bool respectsCollectionRights()
const;
295 void setHistoryEnabled(
bool enable);
304 bool historyEnabled()
const;
311 History* history()
const;
331 void setGroupwareCommunication(
bool enabled);
337 bool groupwareCommunication()
const;
357 void createFinished(
int changeId,
359 Akonadi::IncidenceChanger::ResultCode resultCode,
360 const QString &errorString);
370 void modifyFinished(
int changeId,
372 Akonadi::IncidenceChanger::ResultCode resultCode,
373 const QString &errorString);
384 void deleteFinished(
int changeId,
385 const QVector<Akonadi::Item::Id> &itemIdList,
386 Akonadi::IncidenceChanger::ResultCode resultCode,
387 const QString &errorString);
391 friend class History;
392 friend class AtomicOperation;
394 explicit IncidenceChanger(
bool enableHistory, QObject *parent = 0);
402 Q_DECLARE_METATYPE(Akonadi::IncidenceChanger::DestinationPolicy)
403 Q_DECLARE_METATYPE(Akonadi::IncidenceChanger::ResultCode)
404 Q_DECLARE_METATYPE(Akonadi::IncidenceChanger::ChangeType)