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 QDateTime;
00032
00033 namespace KPIM {
00034 class CategorySelectDialog;
00035 class DesignerFields;
00036 class EmbeddedURLPage;
00037 }
00038
00039 namespace KOrg { class IncidenceChangerBase; }
00040
00041 class KOEditorDetails;
00042 class KOEditorAttachments;
00043
00044 namespace KCal {
00045 class Calendar;
00046 class CalendarLocal;
00047 class Incidence;
00048 }
00049 using namespace KCal;
00050 using namespace KOrg;
00051
00055 class KOIncidenceEditor : public KDialogBase
00056 {
00057 Q_OBJECT
00058 public:
00062 KOIncidenceEditor( const QString &caption, Calendar *calendar,
00063 QWidget *parent );
00064 virtual ~KOIncidenceEditor();
00065
00067 virtual void init() = 0;
00069 virtual void modified (int =0) {}
00070
00071 virtual void reload() = 0;
00072
00073 public slots:
00074 void updateCategoryConfig();
00076 virtual void editIncidence(Incidence *) = 0;
00077 virtual void setIncidenceChanger( IncidenceChangerBase *changer ) {
00078 mChanger = changer; }
00079
00080
00081 signals:
00082 void deleteAttendee( Incidence * );
00083
00084 void editCategories();
00085 void dialogClose( Incidence * );
00086 void editCanceled( Incidence * );
00087
00088 void deleteIncidenceSignal( Incidence * );
00089
00090 protected slots:
00091 void slotApply();
00092 void slotOk();
00093 void slotCancel();
00094 void openURL( const KURL &url );
00095
00096 virtual void slotManageTemplates();
00097
00098 virtual void slotSaveTemplate( const QString & ) = 0;
00099 virtual void slotLoadTemplate( const QString& );
00100 virtual void slotTemplatesChanged( const QStringList& );
00101
00102 protected:
00103 virtual QString type() { return QString::null; }
00104 virtual QStringList& templates() const = 0;
00105 virtual void loadTemplate( CalendarLocal& ) = 0;
00106
00107 void setupAttendeesTab();
00108 void setupAttachmentsTab();
00109 void setupDesignerTabs( const QString &type );
00110
00111 void saveAsTemplate( Incidence *, const QString &name );
00112
00113 void readDesignerFields( Incidence *i );
00114 void writeDesignerFields( Incidence *i );
00115
00116 QWidget *addDesignerTab( const QString &uifile );
00117
00118 void setupEmbeddedURLPage( const QString &label, const QString &url,
00119 const QString &mimetype );
00120 void createEmbeddedURLPages( Incidence *i );
00121
00125 virtual bool processInput() { return false; }
00126
00127 virtual void processCancel() {}
00128
00129 void cancelRemovedAttendees( Incidence *incidence );
00130
00131 Calendar *mCalendar;
00132
00133 KPIM::CategorySelectDialog *mCategoryDialog;
00134
00135 KOEditorDetails *mDetails;
00136 KOEditorAttachments *mAttachments;
00137 KOrg::IncidenceChangerBase *mChanger;
00138
00139 QPtrList<KPIM::DesignerFields> mDesignerFields;
00140 QMap<QWidget*, KPIM::DesignerFields*> mDesignerFieldForWidget;
00141 QPtrList<QWidget> mEmbeddedURLPages;
00142 QPtrList<QWidget> mAttachedDesignerFields;
00143 };
00144
00145 #endif
00146
00147
|