kalarm
alarmtimewidget.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef ALARMTIMEWIDGET_H
00022 #define ALARMTIMEWIDGET_H
00023
00024 #include "buttongroup.h"
00025 #include "datetime.h"
00026
00027 class RadioButton;
00028 class CheckBox;
00029 class DateEdit;
00030 class TimeEdit;
00031 class TimeSpinBox;
00032
00033
00034 class AlarmTimeWidget : public ButtonGroup
00035 {
00036 Q_OBJECT
00037 public:
00038 enum {
00039 AT_TIME = 0x00,
00040 DEFER_TIME = 0x01,
00041 NARROW = 0x02
00042 };
00043 AlarmTimeWidget(const QString& groupBoxTitle, int mode, QWidget* parent = 0, const char* name = 0);
00044 AlarmTimeWidget(int mode, QWidget* parent = 0, const char* name = 0);
00045 DateTime getDateTime(int* minsFromNow = 0, bool checkExpired = true, bool showErrorMessage = true, QWidget** errorWidget = 0) const;
00046 void setDateTime(const DateTime&);
00047 void setMinDateTimeIsCurrent();
00048 void setMinDateTime(const QDateTime& = QDateTime());
00049 void setMaxDateTime(const DateTime& = DateTime());
00050 const QDateTime& maxDateTime() const { return mMaxDateTime; }
00051 void setReadOnly(bool);
00052 bool anyTime() const { return mAnyTime; }
00053 void enableAnyTime(bool enable);
00054 void selectTimeFromNow(int minutes = 0);
00055 QSize sizeHint() const { return minimumSizeHint(); }
00056
00057 static QString i18n_w_TimeFromNow();
00058 static QString i18n_TimeAfterPeriod();
00059 static const int maxDelayTime;
00060
00061 signals:
00062 void anyTimeToggled(bool anyTime);
00063 void pastMax();
00064
00065 protected slots:
00066 void slotTimer();
00067 void slotButtonSet(int id);
00068 void dateTimeChanged();
00069 void delayTimeChanged(int);
00070 void slotAnyTimeToggled(bool);
00071
00072 private:
00073 void init(int mode);
00074 void setAnyTime();
00075 void setMaxDelayTime(const QDateTime& now);
00076 void setMaxMinTimeIf(const QDateTime& now);
00077
00078 RadioButton* mAtTimeRadio;
00079 RadioButton* mAfterTimeRadio;
00080 DateEdit* mDateEdit;
00081 TimeEdit* mTimeEdit;
00082 TimeSpinBox* mDelayTimeEdit;
00083 CheckBox* mAnyTimeCheckBox;
00084 QDateTime mMinDateTime;
00085 QDateTime mMaxDateTime;
00086 int mAnyTime;
00087 bool mAnyTimeAllowed;
00088 bool mMinDateTimeIsNow;
00089 bool mPastMax;
00090 bool mMinMaxTimeSet;
00091 bool mTimerSyncing;
00092 };
00093
00094 #endif // ALARMTIMEWIDGET_H
|