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;
393 explicit IncidenceChanger(
bool enableHistory, QObject *parent = 0 );
401 Q_DECLARE_METATYPE( Akonadi::IncidenceChanger::DestinationPolicy )
402 Q_DECLARE_METATYPE( Akonadi::IncidenceChanger::ResultCode )
403 Q_DECLARE_METATYPE( Akonadi::IncidenceChanger::ChangeType )