korganizer
koincidenceeditor.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef KOINCIDENCEEDITOR_H
00026 #define KOINCIDENCEEDITOR_H
00027
00028 #include <kdialogbase.h>
00029 #include <kurl.h>
00030
00031 class QDate;
00032 class QDateTime;
00033
00034 namespace KPIM {
00035 class CategorySelectDialog;
00036 class DesignerFields;
00037 class EmbeddedURLPage;
00038 }
00039
00040 namespace KOrg { class IncidenceChangerBase; }
00041
00042 class KOEditorDetails;
00043 class KOAttendeeEditor;
00044
00045 namespace KCal {
00046 class Calendar;
00047 class CalendarLocal;
00048 class Incidence;
00049 }
00050 using namespace KCal;
00051 using namespace KOrg;
00052
00056 class KOIncidenceEditor : public KDialogBase
00057 {
00058 Q_OBJECT
00059 public:
00063 KOIncidenceEditor( const QString &caption, Calendar *calendar,
00064 QWidget *parent );
00065 virtual ~KOIncidenceEditor();
00066
00068 virtual void modified() {}
00069
00070 virtual void reload() = 0;
00071
00072 virtual void selectInvitationCounterProposal( bool enable );
00073 virtual void selectCreateTask( bool enable );
00074
00075 public slots:
00077 virtual void editIncidence(Incidence *, const QDate &, Calendar *) = 0;
00078 virtual void setIncidenceChanger( IncidenceChangerBase *changer ) {
00079 mChanger = changer; }
00081 virtual void init() = 0;
00085 void addAttachments( const QStringList &attachments,
00086 const QStringList& mimeTypes = QStringList(),
00087 bool inlineAttachment = false );
00091 void addAttendees( const QStringList &attendees );
00092
00093
00094 signals:
00095 void deleteAttendee( Incidence * );
00096
00097 void editCategories();
00098 void updateCategoryConfig();
00099 void dialogClose( Incidence * );
00100 void editCanceled( Incidence * );
00101
00102 void deleteIncidenceSignal( Incidence * );
00103 void signalAddAttachments( const QStringList &attachments,
00104 const QStringList& mimeTypes = QStringList(),
00105 bool inlineAttachment = false );
00106
00107
00108 protected slots:
00109 void slotApply();
00110 void slotOk();
00111 void slotCancel();
00112 void openURL( const KURL &url );
00113
00114 virtual void slotManageTemplates();
00115
00116 virtual void slotSaveTemplate( const QString & ) = 0;
00117 virtual void slotLoadTemplate( const QString& );
00118 virtual void slotTemplatesChanged( const QStringList& );
00119
00120 protected:
00121 virtual QString type() { return QString::null; }
00122 virtual QStringList& templates() const = 0;
00123 virtual void loadTemplate( CalendarLocal& ) = 0;
00124
00125 void setupAttendeesTab();
00126 void setupDesignerTabs( const QString &type );
00127
00128 void saveAsTemplate( Incidence *, const QString &name );
00129
00130 void readDesignerFields( Incidence *i );
00131 void writeDesignerFields( Incidence *i );
00132
00133 QWidget *addDesignerTab( const QString &uifile );
00134
00135 void setupEmbeddedURLPage( const QString &label, const QString &url,
00136 const QString &mimetype );
00137 void createEmbeddedURLPages( Incidence *i );
00138
00142 virtual bool processInput() { return false; }
00143
00144 virtual void processCancel() {}
00145
00146 void cancelRemovedAttendees( Incidence *incidence );
00147
00148 Calendar *mCalendar;
00149
00150 KOEditorDetails *mDetails;
00151 KOAttendeeEditor *mAttendeeEditor;
00152 KOrg::IncidenceChangerBase *mChanger;
00153
00154 QPtrList<KPIM::DesignerFields> mDesignerFields;
00155 QMap<QWidget*, KPIM::DesignerFields*> mDesignerFieldForWidget;
00156 QPtrList<QWidget> mEmbeddedURLPages;
00157 QPtrList<QWidget> mAttachedDesignerFields;
00158 bool mIsCounter;
00159 bool mIsCreateTask;
00160 };
00161
00162 #endif
00163
00164
|