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