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 KOAttendeeEditor;
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 modified (int =0) {}
00068
00069 virtual void reload() = 0;
00070
00071 virtual void selectInvitationCounterProposal( bool enable );
00072
00073 public slots:
00075 virtual void editIncidence(Incidence *, Calendar *) = 0;
00076 virtual void setIncidenceChanger( IncidenceChangerBase *changer ) {
00077 mChanger = changer; }
00079 virtual void init() = 0;
00083 void addAttachments( const QStringList &attachments,
00084 const QStringList& mimeTypes = QStringList(),
00085 bool inlineAttachment = false );
00089 void addAttendees( const QStringList &attendees );
00090
00091
00092 signals:
00093 void deleteAttendee( Incidence * );
00094
00095 void editCategories();
00096 void updateCategoryConfig();
00097 void dialogClose( Incidence * );
00098 void editCanceled( Incidence * );
00099
00100 void deleteIncidenceSignal( Incidence * );
00101 void signalAddAttachments( const QStringList &attachments,
00102 const QStringList& mimeTypes = QStringList(),
00103 bool inlineAttachment = false );
00104
00105
00106 protected slots:
00107 void slotApply();
00108 void slotOk();
00109 void slotCancel();
00110 void openURL( const KURL &url );
00111
00112 virtual void slotManageTemplates();
00113
00114 virtual void slotSaveTemplate( const QString & ) = 0;
00115 virtual void slotLoadTemplate( const QString& );
00116 virtual void slotTemplatesChanged( const QStringList& );
00117
00118 protected:
00119 virtual QString type() { return QString::null; }
00120 virtual QStringList& templates() const = 0;
00121 virtual void loadTemplate( CalendarLocal& ) = 0;
00122
00123 void setupAttendeesTab();
00124 void setupDesignerTabs( const QString &type );
00125
00126 void saveAsTemplate( Incidence *, const QString &name );
00127
00128 void readDesignerFields( Incidence *i );
00129 void writeDesignerFields( Incidence *i );
00130
00131 QWidget *addDesignerTab( const QString &uifile );
00132
00133 void setupEmbeddedURLPage( const QString &label, const QString &url,
00134 const QString &mimetype );
00135 void createEmbeddedURLPages( Incidence *i );
00136
00140 virtual bool processInput() { return false; }
00141
00142 virtual void processCancel() {}
00143
00144 void cancelRemovedAttendees( Incidence *incidence );
00145
00146 Calendar *mCalendar;
00147
00148 KOEditorDetails *mDetails;
00149 KOAttendeeEditor *mAttendeeEditor;
00150 KOrg::IncidenceChangerBase *mChanger;
00151
00152 QPtrList<KPIM::DesignerFields> mDesignerFields;
00153 QMap<QWidget*, KPIM::DesignerFields*> mDesignerFieldForWidget;
00154 QPtrList<QWidget> mEmbeddedURLPages;
00155 QPtrList<QWidget> mAttachedDesignerFields;
00156 bool mIsCounter;
00157 };
00158
00159 #endif
00160
00161
|