kalarm
prefdlg.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef PREFDLG_H
00022 #define PREFDLG_H
00023
00024 #include <tqsize.h>
00025 #include <tqdatetime.h>
00026 #include <ktabctl.h>
00027 #include <kdialogbase.h>
00028
00029 #include "preferences.h"
00030 #include "recurrenceedit.h"
00031 #include "soundpicker.h"
00032
00033 class TQButtonGroup;
00034 class TQCheckBox;
00035 class TQRadioButton;
00036 class TQPushButton;
00037 class TQComboBox;
00038 class TQLineEdit;
00039 class KColorCombo;
00040 class FontColourChooser;
00041 class ButtonGroup;
00042 class TimeEdit;
00043 class SpinBox;
00044 class SpecialActionsButton;
00045
00046 class FontColourPrefTab;
00047 class EditPrefTab;
00048 class EmailPrefTab;
00049 class ViewPrefTab;
00050 class MiscPrefTab;
00051
00052
00053
00054 class KAlarmPrefDlg : public KDialogBase
00055 {
00056 Q_OBJECT
00057 public:
00058 static void display();
00059 ~KAlarmPrefDlg();
00060
00061 FontColourPrefTab* mFontColourPage;
00062 EditPrefTab* mEditPage;
00063 EmailPrefTab* mEmailPage;
00064 ViewPrefTab* mViewPage;
00065 MiscPrefTab* mMiscPage;
00066
00067 protected slots:
00068 virtual void slotOk();
00069 virtual void slotApply();
00070 virtual void slotHelp();
00071 virtual void slotDefault();
00072 virtual void slotCancel();
00073
00074 private:
00075 KAlarmPrefDlg();
00076 void restore();
00077
00078 static KAlarmPrefDlg* mInstance;
00079 bool mValid;
00080 };
00081
00082
00083 class PrefsTabBase : public QWidget
00084 {
00085 Q_OBJECT
00086 public:
00087 PrefsTabBase(TQVBox*);
00088
00089 void setPreferences();
00090 virtual void restore() = 0;
00091 virtual void apply(bool syncToDisc) = 0;
00092 virtual void setDefaults() = 0;
00093 static int indentWidth() { return mIndentWidth; }
00094
00095 protected:
00096 TQVBox* mPage;
00097
00098 private:
00099 static int mIndentWidth;
00100 };
00101
00102
00103
00104 class MiscPrefTab : public PrefsTabBase
00105 {
00106 Q_OBJECT
00107 public:
00108 MiscPrefTab(TQVBox*);
00109
00110 virtual void restore();
00111 virtual void apply(bool syncToDisc);
00112 virtual void setDefaults();
00113
00114 private slots:
00115 void slotAutostartDaemonClicked();
00116 void slotRunModeToggled(bool);
00117 void slotDisableIfStoppedToggled(bool);
00118 void slotExpiredToggled(bool);
00119 void slotClearExpired();
00120 void slotOtherTerminalToggled(bool);
00121
00122 void slotAutostartToggled(bool);
00123
00124
00125 private:
00126 void setExpiredControls(int purgeDays);
00127
00128 TQCheckBox* mAutostartDaemon;
00129 TQRadioButton* mRunInSystemTray;
00130 TQRadioButton* mRunOnDemand;
00131 TQCheckBox* mDisableAlarmsIfStopped;
00132 TQCheckBox* mQuitWarn;
00133 TQCheckBox* mAutostartTrayIcon;
00134 TQCheckBox* mConfirmAlarmDeletion;
00135 TQCheckBox* mKeepExpired;
00136 TQCheckBox* mPurgeExpired;
00137 SpinBox* mPurgeAfter;
00138 TQLabel* mPurgeAfterLabel;
00139 TQPushButton* mClearExpired;
00140 TimeEdit* mStartOfDay;
00141 TQButtonGroup* mXtermType;
00142 TQLineEdit* mXtermCommand;
00143 int mXtermFirst;
00144 int mXtermCount;
00145 };
00146
00147
00148
00149 class EmailPrefTab : public PrefsTabBase
00150 {
00151 Q_OBJECT
00152 public:
00153 EmailPrefTab(TQVBox*);
00154
00155 TQString validate();
00156 virtual void restore();
00157 virtual void apply(bool syncToDisc);
00158 virtual void setDefaults();
00159
00160 private slots:
00161 void slotEmailClientChanged(int);
00162 void slotFromAddrChanged(int);
00163 void slotBccAddrChanged(int);
00164 void slotAddressChanged() { mAddressChanged = true; }
00165
00166 private:
00167 void setEmailAddress(Preferences::MailFrom, const TQString& address);
00168 void setEmailBccAddress(bool useControlCentre, const TQString& address);
00169 TQString validateAddr(ButtonGroup*, TQLineEdit* addr, const TQString& msg);
00170
00171 ButtonGroup* mEmailClient;
00172 ButtonGroup* mFromAddressGroup;
00173 TQLineEdit* mEmailAddress;
00174 ButtonGroup* mBccAddressGroup;
00175 TQLineEdit* mEmailBccAddress;
00176 TQCheckBox* mEmailQueuedNotify;
00177 TQCheckBox* mEmailCopyToKMail;
00178 bool mAddressChanged;
00179 bool mBccAddressChanged;
00180 };
00181
00182
00183
00184 class EditPrefTab : public PrefsTabBase
00185 {
00186 Q_OBJECT
00187 public:
00188 EditPrefTab(TQVBox*);
00189
00190 TQString validate();
00191 virtual void restore();
00192 virtual void apply(bool syncToDisc);
00193 virtual void setDefaults();
00194
00195 private slots:
00196 void slotBrowseSoundFile();
00197
00198 private:
00199 TQCheckBox* mAutoClose;
00200 TQCheckBox* mConfirmAck;
00201 TQComboBox* mReminderUnits;
00202 SpecialActionsButton* mSpecialActionsButton;
00203 TQCheckBox* mCmdScript;
00204 TQCheckBox* mCmdXterm;
00205 TQCheckBox* mEmailBcc;
00206 TQComboBox* mSound;
00207 TQLabel* mSoundFileLabel;
00208 TQLineEdit* mSoundFile;
00209 TQPushButton* mSoundFileBrowse;
00210 TQCheckBox* mSoundRepeat;
00211 TQCheckBox* mCopyToKOrganizer;
00212 TQCheckBox* mLateCancel;
00213 TQComboBox* mRecurPeriod;
00214 TQButtonGroup* mFeb29;
00215
00216 static int soundIndex(SoundPicker::Type);
00217 static int recurIndex(RecurrenceEdit::RepeatType);
00218 };
00219
00220
00221
00222 class ViewPrefTab : public PrefsTabBase
00223 {
00224 Q_OBJECT
00225 public:
00226 ViewPrefTab(TQVBox*);
00227
00228 virtual void restore();
00229 virtual void apply(bool syncToDisc);
00230 virtual void setDefaults();
00231
00232 private slots:
00233 void slotTooltipAlarmsToggled(bool);
00234 void slotTooltipMaxToggled(bool);
00235 void slotTooltipTimeToggled(bool);
00236 void slotTooltipTimeToToggled(bool);
00237
00238 private:
00239 void setTooltip(int maxAlarms, bool time, bool timeTo, const TQString& prefix);
00240
00241 TQCheckBox* mTooltipShowAlarms;
00242 TQCheckBox* mTooltipMaxAlarms;
00243 SpinBox* mTooltipMaxAlarmCount;
00244 TQCheckBox* mTooltipShowTime;
00245 TQCheckBox* mTooltipShowTimeTo;
00246 TQLineEdit* mTooltipTimeToPrefix;
00247 TQLabel* mTooltipTimeToPrefixLabel;
00248 TQCheckBox* mModalMessages;
00249 SpinBox* mDaemonTrayCheckInterval;
00250 };
00251
00252
00253
00254 class FontColourPrefTab : public PrefsTabBase
00255 {
00256 Q_OBJECT
00257 public:
00258 FontColourPrefTab(TQVBox*);
00259
00260 virtual void restore();
00261 virtual void apply(bool syncToDisc);
00262 virtual void setDefaults();
00263
00264 private:
00265 FontColourChooser* mFontChooser;
00266 KColorCombo* mDisabledColour;
00267 KColorCombo* mExpiredColour;
00268 };
00269
00270 #endif // PREFDLG_H
|