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_ShowInKOrganizer();
00078 static QString i18n_g_ShowInKOrganizer();
00079 static QString i18n_EnterScript();
00080 static QString i18n_p_EnterScript();
00081 static QString i18n_ExecInTermWindow();
00082 static QString i18n_w_ExecInTermWindow();
00083 static QString i18n_u_ExecInTermWindow();
00084 static QString i18n_g_LogToFile();
00085 static QString i18n_CopyEmailToSelf();
00086 static QString i18n_e_CopyEmailToSelf();
00087 static QString i18n_s_CopyEmailToSelf();
00088 static QString i18n_EmailFrom();
00089 static QString i18n_f_EmailFrom();
00090 static QString i18n_EmailTo();
00091 static QString i18n_EmailSubject();
00092 static QString i18n_j_EmailSubject();
00093
00094 protected:
00095 virtual void resizeEvent(QResizeEvent*);
00096 virtual void showEvent(QShowEvent*);
00097 protected slots:
00098 virtual void slotOk();
00099 virtual void slotCancel();
00100 virtual void slotTry();
00101 virtual void slotDefault();
00102 private slots:
00103 void slotRecurTypeChange(int repeatType);
00104 void slotRecurFrequencyChange();
00105 void slotAlarmTypeChanged(int id);
00106 void slotEditDeferral();
00107 void slotFontColourSelected();
00108 void slotBgColourSelected(const QColor&);
00109 void openAddressBook();
00110 void slotAddAttachment();
00111 void slotRemoveAttachment();
00112 void slotShowMainPage();
00113 void slotShowRecurrenceEdit();
00114 void slotAnyTimeToggled(bool anyTime);
00115 void slotTemplateTimeType(int id);
00116 void slotSetSimpleRepetition();
00117 void slotCmdScriptToggled(bool);
00118
00119 private:
00120 void initialise(const KAEvent*);
00121 void setReadOnly();
00122 void setEvent(KAEvent&, const QString& text, bool trial);
00123 KAEvent::Action getAlarmType() const;
00124 int getAlarmFlags() const;
00125 bool checkText(QString& result, bool showErrorMessage = true) const;
00126 void setSoundPicker();
00127 void setRecurTabTitle(const KAEvent* = 0);
00128 bool checkCommandData();
00129 bool checkEmailData();
00130
00131 void initDisplayAlarms(QWidget* parent);
00132 void initCommand(QWidget* parent);
00133 void initEmail(QWidget* parent);
00134 void saveState(const KAEvent*);
00135 bool stateChanged() const;
00136
00137 QTabWidget* mTabs;
00138 int mMainPageIndex;
00139 int mRecurPageIndex;
00140 bool mMainPageShown;
00141 bool mRecurPageShown;
00142 bool mRecurSetDefaultEndDate;
00143
00144 ButtonGroup* mActionGroup;
00145 RadioButton* mMessageRadio;
00146 RadioButton* mCommandRadio;
00147 PickAlarmFileRadio* mFileRadio;
00148 RadioButton* mEmailRadio;
00149 QWidgetStack* mAlarmTypeStack;
00150
00151
00152 QLineEdit* mTemplateName;
00153 ButtonGroup* mTemplateTimeGroup;
00154 RadioButton* mTemplateDefaultTime;
00155 RadioButton* mTemplateUseTimeAfter;
00156 RadioButton* mTemplateAnyTime;
00157 RadioButton* mTemplateUseTime;
00158 TimeSpinBox* mTemplateTimeAfter;
00159 TimeEdit* mTemplateTime;
00160
00161
00162 QFrame* mDisplayAlarmsFrame;
00163 QHBox* mFileBox;
00164 QHBox* mFilePadding;
00165 SoundPicker* mSoundPicker;
00166 CheckBox* mConfirmAck;
00167 FontColourButton* mFontColourButton;
00168 ColourCombo* mBgColourChoose;
00169 SpecialActionsButton* mSpecialActionsButton;
00170 Reminder* mReminder;
00171 bool mReminderDeferral;
00172 bool mReminderArchived;
00173
00174 TextEdit* mTextMessageEdit;
00175
00176 LineEdit* mFileMessageEdit;
00177 QPushButton* mFileBrowseButton;
00178 QString mFileDefaultDir;
00179
00180 QFrame* mCommandFrame;
00181 CheckBox* mCmdTypeScript;
00182 LineEdit* mCmdCommandEdit;
00183 TextEdit* mCmdScriptEdit;
00184 ButtonGroup* mCmdOutputGroup;
00185 LineEdit* mCmdLogFileEdit;
00186 QWidget* mCmdPadding;
00187
00188 QFrame* mEmailFrame;
00189 EmailIdCombo* mEmailFromList;
00190 LineEdit* mEmailToEdit;
00191 QPushButton* mEmailAddressButton;
00192 QLineEdit* mEmailSubjectEdit;
00193 TextEdit* mEmailMessageEdit;
00194 QComboBox* mEmailAttachList;
00195 QPushButton* mEmailAddAttachButton;
00196 QPushButton* mEmailRemoveButton;
00197 CheckBox* mEmailBcc;
00198 QString mAttachDefaultDir;
00199
00200 QGroupBox* mDeferGroup;
00201 QLabel* mDeferTimeLabel;
00202 QPushButton* mDeferChangeButton;
00203
00204 AlarmTimeWidget* mTimeWidget;
00205 LateCancelSelector* mLateCancel;
00206 CheckBox* mShowInKorganizer;
00207
00208 RepetitionButton* mSimpleRepetition;
00209 QLabel* mRecurrenceText;
00210 RecurrenceEdit* mRecurrenceEdit;
00211
00212 QString mAlarmMessage;
00213 DateTime mAlarmDateTime;
00214 DateTime mDeferDateTime;
00215 EmailAddressList mEmailAddresses;
00216 QStringList mEmailAttachments;
00217 unsigned long mKMailSerialNumber;
00218 int mDeferGroupHeight;
00219 int mDesktop;
00220 bool mTemplate;
00221 bool mExpiredRecurrence;
00222 mutable bool mChanged;
00223 mutable bool mOnlyDeferred;
00224 bool mDesiredReadOnly;
00225 bool mReadOnly;
00226
00227
00228 KAEvent* mSavedEvent;
00229 QString mSavedTemplateName;
00230 QButton* mSavedTemplateTimeType;
00231 QTime mSavedTemplateTime;
00232 int mSavedTemplateAfterTime;
00233 QButton* mSavedTypeRadio;
00234 SoundPicker::Type mSavedSoundType;
00235 bool mSavedSound;
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
|