kexi
kexidbdatetimeedit.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KexiDBDateTimeEdit_H
00022 #define KexiDBDateTimeEdit_H
00023
00024 #include "kexiformdataiteminterface.h"
00025 #include <qdatetimeedit.h>
00026
00027 class KDatePicker;
00028 class QDateTimeEditor;
00029 class KPopupMenu;
00030
00032 class KEXIFORMUTILS_EXPORT KexiDBDateTimeEdit : public QWidget, public KexiFormDataItemInterface
00033 {
00034 Q_OBJECT
00035 Q_PROPERTY(QString dataSource READ dataSource WRITE setDataSource DESIGNABLE true)
00036 Q_PROPERTY(QCString dataSourceMimeType READ dataSourceMimeType WRITE setDataSourceMimeType DESIGNABLE true)
00037
00038 Q_PROPERTY( QDateTime dateTime READ dateTime WRITE setDateTime )
00039 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly DESIGNABLE true )
00040
00041 public:
00042 enum Order { DMY, MDY, YMD, YDM };
00043
00044 KexiDBDateTimeEdit(const QDateTime &datetime, QWidget *parent, const char *name=0);
00045 virtual ~KexiDBDateTimeEdit();
00046
00047 inline QString dataSource() const { return KexiFormDataItemInterface::dataSource(); }
00048 inline QCString dataSourceMimeType() const { return KexiFormDataItemInterface::dataSourceMimeType(); }
00049 virtual QVariant value();
00050 virtual void setInvalidState( const QString& displayText );
00051
00054 virtual bool valueIsNull();
00055
00060 virtual bool valueIsEmpty();
00061
00063 virtual bool isReadOnly() const;
00064
00066 virtual QWidget* widget();
00067
00068 virtual bool cursorAtStart();
00069 virtual bool cursorAtEnd();
00070 virtual void clear();
00071
00072 virtual void setEnabled(bool enabled);
00073
00074
00075 QDateTime dateTime() const;
00076
00077 signals:
00078 void dateTimeChanged();
00079
00080 public slots:
00081 inline void setDataSource(const QString &ds) { KexiFormDataItemInterface::setDataSource(ds); }
00082 inline void setDataSourceMimeType(const QCString &ds) { KexiFormDataItemInterface::setDataSourceMimeType(ds); }
00083 void setDateTime(const QDateTime &dt);
00084 virtual void setReadOnly(bool set);
00085
00086 protected:
00087 virtual void setValueInternal(const QVariant& add, bool removeOld);
00088 virtual bool eventFilter(QObject *o, QEvent *e);
00089
00090 protected slots:
00091 void slotValueChanged();
00092 void slotShowDatePicker();
00093 void acceptDate();
00094
00095 private:
00096 KDatePicker *m_datePicker;
00097 QDateEdit* m_dateEdit;
00098 QTimeEdit* m_timeEdit;
00099 QDateTimeEditor *m_dte_date, *m_dte_time;
00100 KPopupMenu *m_datePickerPopupMenu;
00101 bool m_invalidState : 1;
00102 bool m_cleared : 1;
00103 bool m_readOnly : 1;
00104 };
00105
00106 #endif
|