00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef QAFIELD_H
00032 #define QAFIELD_H
00033
00034 #include <qwidget.h>
00035 #include <qwidgetplugin.h>
00036 #include <qpushbutton.h>
00037 #include <qlabel.h>
00038 #include <qdatetimeedit.h>
00039 #include <qcheckbox.h>
00040 #include "qlineedit.h"
00041 #include "wdateedit.h"
00042 #include "adatabase.h"
00043 #include "ananas.h"
00044 #include "acalendar.h"
00045 #include <qvalidator.h>
00046
00047 class wCatButton;
00048 class wCheckBox;
00049
00063 class QT_WIDGET_PLUGIN_EXPORT wField : public aWidget
00064 {
00065 Q_OBJECT
00066
00067 Q_PROPERTY( QString value READ value WRITE setValue)
00068 Q_PROPERTY( QString FieldType READ getFieldType WRITE setFieldType )
00069 Q_PROPERTY( tEditorType EditorType READ getEditorType WRITE setEditorType )
00070 Q_ENUMS(tEditorType)
00071 Q_ENUMS(FieldMode)
00072 public:
00073 enum tEditorType { Unknown, Numberic, String, Date, DateTime, Boolean, Catalogue=101, Document};
00074
00075 wField( QWidget *parent, const char *name, WFlags fl = 0 );
00076
00077 virtual ~wField();
00078
00079 virtual QDialog* createEditor( QWidget *parent );
00080
00081 signals:
00082 void valueChanged( const QString & );
00083 void valueChanged( const QVariant & );
00084 void inputInvalid();
00085 void lostFocus();
00086
00087 public slots:
00088 bool getOpt() const { return false; };
00089 void setOpt( bool fn ) { if(fn) widgetEditor(); };
00090 virtual QString value() const;
00091 QString text() const;
00092 virtual void setValue( const QString &fn );
00093 virtual void Validate( const QString &fn );
00094 void setValue( const QDate& d);
00095 virtual QString textValue() {return text();};
00096 void setFieldType( QString n );
00097 QString getFieldType() const {return vFieldType;};
00098 void setEditorType( tEditorType n );
00099 tEditorType getEditorType() const { return vEditorType; };
00100 void fieldSelect();
00101
00102 virtual void focusInEvent();
00103 virtual void focusOutEvent();
00104 void selectAll();
00105 virtual void SetReadOnly(bool);
00106 virtual void SetNonZero(bool);
00107 virtual void SetMask(QString);
00108 virtual void SetValidator(QString Validator, int twostate);
00109
00110 private slots:
00111 void on_selected( Q_ULLONG uid );
00112 void popupCalendar();
00113
00114 protected:
00115 QLineEdit *lineEdit;
00116 wDateEdit *dateEdit;
00117 QLabel *objLabel;
00118 QLabel *nzLabel;
00119 wCatButton *objButton;
00120 wCheckBox *checkBox;
00121 QValidator *v;
00122 int two_state;
00123 tEditorType vEditorType;
00124 QString vFieldType;
00125 QString vValue;
00126
00127 void widgetInit();
00128 private:
00129 int loaded;
00130 int md_oid, md_fid;
00131 void popupCalendar(QDateEdit *dateEdit);
00132
00133
00134 QPalette defaultLineEditPalette;
00135 int defaultLineEditFrameMargin;
00136 int defaultLineEditFrameStyle;
00137 };
00138
00139 class wCatButton: public QPushButton
00140 {
00141 Q_OBJECT
00142 public:
00143 wCatButton(const char * caption, QWidget *parent);
00144 virtual ~wCatButton();
00145 protected:
00146 void keyPressEvent ( QKeyEvent * e );
00147 };
00148 class wCheckBox: public QCheckBox
00149 {
00150 Q_OBJECT
00151 public:
00152 wCheckBox(QWidget *parent, const char * name =0);
00153 virtual ~wCheckBox();
00154
00155 public slots:
00156 void on_toggled();
00157 signals:
00158 void valueChanged(const QString &);
00159 };
00160
00161 #endif