From 9ecd720f3d6a362d30ea44f6f95c0f377b5c9b43 Mon Sep 17 00:00:00 2001 From: Andrey Paskal Date: Sat, 5 Jul 2008 15:21:08 +0400 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B8=D0=BB=D1=81=D1=8F=20=D1=80=D0=B0=D1=81=D0=BA=D1=80=D0=B0=D1=81=D0=BA=D0=B8=20=D1=80=D0=B0=D0=BC=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=B8. =20=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=B4=20Linux/Gnome. =20TODO:=20=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B8=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B4=20Windows.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/plugins/wfield.cpp | 25 +++++++++++++++++++++---- src/plugins/wfield.h | 5 +++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/plugins/wfield.cpp b/src/plugins/wfield.cpp index f05ddc1..1ee2549 100644 --- a/src/plugins/wfield.cpp +++ b/src/plugins/wfield.cpp @@ -84,6 +84,9 @@ wField::wField( QWidget *parent, const char *name, WFlags fl ) checkBox = new wCheckBox(this); checkBox->hide(); vEditorType = Unknown; + defaultLineEditFrameMargin = lineEdit->margin(); + defaultLineEditPalette = lineEdit->palette(); + defaultLineEditFrameStyle = lineEdit->frameStyle(); } /* wField::wField( QWidget *parent, const char *name, WFlags fl, bool dbf ) @@ -369,27 +372,41 @@ wField::setValue(const QDate& newDate) void wField::Validate(const QString &test) { + int p = 0; QString s = test; + // restore LineEdit color state + lineEdit->setPalette( defaultLineEditPalette ); + lineEdit->setMargin( defaultLineEditFrameMargin ); + lineEdit->setFrameStyle( defaultLineEditFrameStyle ); + + if ( test.isNull() || test.isEmpty() ) return; + QPalette pal = lineEdit->palette(); switch ( v->validate(s, p) ) { case QValidator::Invalid: - pal.setColor(QColorGroup::Highlight, Qt::red); + lineEdit->setFrameStyle(QFrame::Box); + lineEdit->setMargin(2); + pal.setColor(QPalette::Active, QColorGroup::Light, Qt::red); lineEdit->setPalette(pal); emit inputInvalid(); break; case QValidator::Intermediate: + lineEdit->setFrameStyle(QFrame::Box); + lineEdit->setMargin(2); if (two_state == 0) { - pal.setColor(QColorGroup::Highlight, Qt::yellow); + pal.setColor(QPalette::Active, QColorGroup::Light, Qt::yellow); }else{ - pal.setColor(QColorGroup::Highlight, Qt::red); + pal.setColor(QPalette::Active, QColorGroup::Light, Qt::red); } lineEdit->setPalette(pal); setValue( test ); break; case QValidator::Acceptable: - pal.setColor(QColorGroup::Highlight, Qt::green); + lineEdit->setFrameStyle(QFrame::Box); + lineEdit->setMargin(2); + pal.setColor(QPalette::Active, QColorGroup::Light, Qt::green); lineEdit->setPalette(pal); setValue( test ); break; diff --git a/src/plugins/wfield.h b/src/plugins/wfield.h index edf58e8..b173127 100644 --- a/src/plugins/wfield.h +++ b/src/plugins/wfield.h @@ -129,6 +129,11 @@ private: int loaded; int md_oid, md_fid; void popupCalendar(QDateEdit *dateEdit); +// QColorGroup::ColorRole defaultFrameBorderLightColor; +// QColorGroup::ColorRole defaultFrameBorderDarkColor; + QPalette defaultLineEditPalette; + int defaultLineEditFrameMargin; + int defaultLineEditFrameStyle; }; class wCatButton: public QPushButton -- 1.7.1