kalarm
editdlg.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef EDITDLG_H
00022 #define EDITDLG_H
00023
00024 #include <qdatetime.h>
00025 #include <qlineedit.h>
00026
00027 #include <kdialogbase.h>
00028
00029 #include "alarmevent.h"
00030 #include "alarmtext.h"
00031 #include "datetime.h"
00032 #include "soundpicker.h"
00033
00034 class QButton;
00035 class QGroupBox;
00036 class QComboBox;
00037 class QTabWidget;
00038 class QVBox;
00039 class QHBox;
00040 class EmailIdCombo;
00041 class ColourCombo;
00042 class FontColourButton;
00043 class ButtonGroup;
00044 class TimeEdit;
00045 class RadioButton;
00046 class CheckBox;
00047 class LateCancelSelector;
00048 class AlarmTimeWidget;
00049 class RecurrenceEdit;
00050 class Reminder;
00051 class SpecialActionsButton;
00052 class RepetitionButton;
00053 class TimeSpinBox;
00054 class LineEdit;
00055 class TextEdit;
00056 class PickAlarmFileRadio;
00057
00058
00059 class EditAlarmDlg : public KDialogBase
00060 {
00061 Q_OBJECT
00062 public:
00063 enum MessageType { MESSAGE, FILE };
00064 enum CmdLogType { DISCARD_OUTPUT, LOG_TO_FILE, EXEC_IN_TERMINAL };
00065
00066 EditAlarmDlg(bool Template, const QString& caption, QWidget* parent = 0, const char* name = 0,
00067 const KAEvent* = 0, bool readOnly = false);
00068 virtual ~EditAlarmDlg();
00069 bool getEvent(KAEvent&);
00070 void setAction(KAEvent::Action, const AlarmText& = AlarmText());
00071
00072 static ColourCombo* createBgColourChooser(QHBox** box, QWidget* parent, const char* name = 0);
00073 static CheckBox* createConfirmAckCheckbox(QWidget* parent, const char* name = 0);
00074
00075 static QString i18n_ConfirmAck();
00076 static QString i18n_k_ConfirmAck();
00077 static QString i18n_SpecialActions();
00078 static QString i18n_ShowInKOrganizer();
00079 static QString i18n_g_ShowInKOrganizer();
00080 static QString i18n_EnterScript();
00081 static QString i18n_p_EnterScript();
00082 static QString i18n_ExecInTermWindow();
00083 static QString i18n_w_ExecInTermWindow();
00084 static QString i18n_u_ExecInTermWindow();
00085 static QString i18n_g_LogToFile();
00086 static QString i18n_CopyEmailToSelf();
00087 static QString i18n_e_CopyEmailToSelf();
00088 static QString i18n_s_CopyEmailToSelf();
00089 static QString i18n_EmailFrom();
00090 static QString i18n_f_EmailFrom();
00091 static QString i18n_EmailTo();
00092 static QString i18n_EmailSubject();
00093 static QString i18n_j_EmailSubject();
00094
00095 protected:
00096 virtual void resizeEvent(QResizeEvent*);
00097 virtual void showEvent(QShowEvent*);
00098 protected slots:
00099 virtual void slotOk();
00100 virtual void slotCancel();
00101 virtual void slotTry();
00102 virtual void slotDefault();
00103 private slots:
00104 void slotRecurTypeChange(int repeatType);
00105 void slotRecurFrequencyChange();
00106 void slotAlarmTypeChanged(int id);
00107 void slotEditDeferral();
00108 void slotFontColourSelected();
00109 void slotBgColourSelected(const QColor&);
00110 void openAddressBook();
00111 void slotAddAttachment();
00112 void slotRemoveAttachment();
00113 void slotShowMainPage();
00114 void slotShowRecurrenceEdit();
00115 void slotAnyTimeToggled(bool anyTime);
00116 void slotTemplateTimeType(int id);
00117 void slotSetSimpleRepetition();
00118 void slotCmdScriptToggled(bool);
00119
00120 private:
00121 void initialise(const KAEvent*);
00122 void setReadOnly();
00123 void setEvent(KAEvent&, const QString& text, bool trial);
00124 KAEvent::Action getAlarmType() const;
00125 int getAlarmFlags() const;
00126 bool checkText(QString& result, bool showErrorMessage = true) const;
00127 void setSoundPicker();
00128 void setRecurTabTitle(const KAEvent* = 0);
00129 bool checkCommandData();
00130 bool checkEmailData();
00131
00132 void initDisplayAlarms(QWidget* parent);
00133 void initCommand(QWidget* parent);
00134 void initEmail(QWidget* parent);
00135 void saveState(const KAEvent*);
00136 bool stateChanged() const;
00137
00138 QTabWidget* mTabs;
00139 int mMainPageIndex;
00140 int mRecurPageIndex;
00141 bool mMainPageShown;
00142 bool mRecurPageShown;
00143 bool mRecurSetDefaultEndDate;
00144
00145 ButtonGroup* mActionGroup;
00146 RadioButton* mMessageRadio;
00147 RadioButton* mCommandRadio;
00148 PickAlarmFileRadio* mFileRadio;
00149 RadioButton* mEmailRadio;
00150 QWidgetStack* mAlarmTypeStack;
00151
00152
00153 QLineEdit* mTemplateName;
00154 ButtonGroup* mTemplateTimeGroup;
00155 RadioButton* mTemplateDefaultTime;
00156 RadioButton* mTemplateUseTimeAfter;
00157 RadioButton* mTemplateAnyTime;
00158 RadioButton* mTemplateUseTime;
00159 TimeSpinBox* mTemplateTimeAfter;
00160 TimeEdit* mTemplateTime;
00161
00162
00163 QFrame* mDisplayAlarmsFrame;
00164 QHBox* mFileBox;
00165 QHBox* mFilePadding;
00166 SoundPicker* mSoundPicker;
00167 CheckBox* mConfirmAck;
00168 FontColourButton* mFontColourButton;
00169 ColourCombo* mBgColourChoose;
00170 SpecialActionsButton* mSpecialActionsButton;
00171 Reminder* mReminder;
00172 bool mReminderDeferral;
00173 bool mReminderArchived;
00174
00175 TextEdit* mTextMessageEdit;
00176
00177 LineEdit* mFileMessageEdit;
00178 QPushButton* mFileBrowseButton;
00179 QString mFileDefaultDir;
00180
00181 QFrame* mCommandFrame;
00182 CheckBox* mCmdTypeScript;
00183 LineEdit* mCmdCommandEdit;
00184 TextEdit* mCmdScriptEdit;
00185 ButtonGroup* mCmdOutputGroup;
00186 LineEdit* mCmdLogFileEdit;
00187 QWidget* mCmdPadding;
00188
00189 QFrame* mEmailFrame;
00190 EmailIdCombo* mEmailFromList;
00191 LineEdit* mEmailToEdit;
00192 QPushButton* mEmailAddressButton;
00193 QLineEdit* mEmailSubjectEdit;
00194 TextEdit* mEmailMessageEdit;
00195 QComboBox* mEmailAttachList;
00196 QPushButton* mEmailAddAttachButton;
00197 QPushButton* mEmailRemoveButton;
00198 CheckBox* mEmailBcc;
00199 QString mAttachDefaultDir;
00200
00201 QGroupBox* mDeferGroup;
00202 QLabel* mDeferTimeLabel;
00203 QPushButton* mDeferChangeButton;
00204
00205 AlarmTimeWidget* mTimeWidget;
00206 LateCancelSelector* mLateCancel;
00207 CheckBox* mShowInKorganizer;
00208
00209 RepetitionButton* mSimpleRepetition;
00210 QLabel* mRecurrenceText;
00211 RecurrenceEdit* mRecurrenceEdit;
00212
00213 QString mAlarmMessage;
00214 DateTime mAlarmDateTime;
00215 DateTime mDeferDateTime;
00216 EmailAddressList mEmailAddresses;
00217 QStringList mEmailAttachments;
00218 unsigned long mKMailSerialNumber;
00219 int mDeferGroupHeight;
00220 int mDesktop;
00221 bool mTemplate;
00222 bool mExpiredRecurrence;
00223 mutable bool mChanged;
00224 mutable bool mOnlyDeferred;
00225 bool mDesiredReadOnly;
00226 bool mReadOnly;
00227
00228
00229 KAEvent* mSavedEvent;
00230 QString mSavedTemplateName;
00231 QButton* mSavedTemplateTimeType;
00232 QTime mSavedTemplateTime;
00233 int mSavedTemplateAfterTime;
00234 QButton* mSavedTypeRadio;
00235 SoundPicker::Type mSavedSoundType;
00236 bool mSavedRepeatSound;
00237 QString mSavedSoundFile;
00238 float mSavedSoundVolume;
00239 float mSavedSoundFadeVolume;
00240 int mSavedSoundFadeSeconds;
00241 bool mSavedConfirmAck;
00242 QFont mSavedFont;
00243 QColor mSavedBgColour;
00244 QColor mSavedFgColour;
00245 QString mSavedPreAction;
00246 QString mSavedPostAction;
00247 int mSavedReminder;
00248 bool mSavedOnceOnly;
00249 QString mSavedTextFileCommandMessage;
00250 QString mSavedEmailFrom;
00251 QString mSavedEmailTo;
00252 QString mSavedEmailSubject;
00253 QStringList mSavedEmailAttach;
00254 bool mSavedEmailBcc;
00255 bool mSavedCmdScript;
00256 QButton* mSavedCmdOutputRadio;
00257 QString mSavedCmdLogFile;
00258 DateTime mSavedDateTime;
00259 int mSavedRecurrenceType;
00260 int mSavedRepeatInterval;
00261 int mSavedRepeatCount;
00262 int mSavedLateCancel;
00263 bool mSavedAutoClose;
00264 bool mSavedShowInKorganizer;
00265 };
00266
00267 #endif // EDITDLG_H
|