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