1 #include "QDS_LineEdit.h"
4 #include <qvalidator.h>
7 Class: QDS_LineEdit::Editor
8 Descr: Internal class inherited from line edit
11 class QDS_LineEdit::Editor : public QLineEdit
14 Editor( QWidget* parent = 0 ) : QLineEdit( parent ), myNumber( 2 ) {};
17 void setNumber( const int num ) { myNumber = num; };
19 virtual QSize minimumSizeHint() const
21 return QLineEdit::minimumSizeHint().
22 expandedTo( QSize( fontMetrics().width( "0" ) * myNumber, 0 ) );
25 virtual QSize sizeHint() const
27 return minimumSizeHint();
36 Descr: Data control corresponding to line edit
42 QDS_LineEdit::QDS_LineEdit( const QString& id, QWidget* parent, const int flags, const QString& comp )
43 : QDS_Datum( id, parent, flags, comp )
50 QDS_LineEdit::~QDS_LineEdit()
54 void QDS_LineEdit::unitSystemChanged( const QString& system )
56 QDS_Datum::unitSystemChanged( system );
58 QLineEdit* le = lineEdit();
62 delete le->validator();
64 QValidator* valid = validator();
66 le->setValidator( valid );
68 QString aFormat = format();
70 int pos = aFormat.find( '%' );
75 while ( pos < (int)aFormat.length() && aFormat.at( pos ).isDigit() )
76 aLen += aFormat.at( pos++ );
77 if ( pos < (int)aFormat.length() && aFormat.at( pos ) == '.' )
79 if ( !aLen.isEmpty() )
83 int zeroLen = format( format(), type(), 0 ).length();
84 int minLen = format( format(), type(), minValue() ).length();
85 int maxLen = format( format(), type(), maxValue() ).length();
87 num = QMAX( QMAX( num, zeroLen ), QMAX( minLen, maxLen ) );
88 ((Editor*)le)->setNumber( num );
92 Set the aligment of line edit.
94 void QDS_LineEdit::setAlignment( const int align, const int type )
96 if ( ( type & Control ) && lineEdit() )
97 lineEdit()->setAlignment( align );
99 QDS_Datum::setAlignment( align, type );
103 Returns string from QLineEdit widget.
105 QString QDS_LineEdit::getString() const
109 res = lineEdit()->text();
114 Sets the string into QLineEdit widget.
116 void QDS_LineEdit::setString( const QString& txt )
119 lineEdit()->setText( txt );
123 Returns pointer to QLineEdit widget.
125 QLineEdit* QDS_LineEdit::lineEdit() const
127 return ::qt_cast<QLineEdit*>( controlWidget() );
131 Create QLineEdit widget as control subwidget.
133 QWidget* QDS_LineEdit::createControl( QWidget* parent )
135 Editor* le = new Editor( parent );
136 connect( le, SIGNAL( returnPressed() ), this, SIGNAL( returnPressed() ) );
137 connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
142 Notify about text changing in line edit.
144 void QDS_LineEdit::onTextChanged( const QString& )
149 QString str = getString();
151 emit paramChanged( str );
155 Checks the current parameter value on validity.
157 void QDS_LineEdit::onParamChanged()
159 QLineEdit* anEdit = lineEdit();
163 bool aValid = isValid( false );
165 QPalette aPal = anEdit->palette();
167 aPal.setColor( QPalette::Active, QColorGroup::Text, QColor( 255, 0, 0 ) );
169 aPal.setColor( QPalette::Active, QColorGroup::Text, QColor( 0, 0, 0 ) );
171 anEdit->setPalette( aPal );