1 | /****************************************************************************
|
---|
2 | ** $Id: qinputdialog.cpp 2 2005-11-16 15:49:26Z dmik $
|
---|
3 | **
|
---|
4 | ** Implementation of QInputDialog class
|
---|
5 | **
|
---|
6 | ** Created : 991212
|
---|
7 | **
|
---|
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
|
---|
9 | **
|
---|
10 | ** This file is part of the dialogs module of the Qt GUI Toolkit.
|
---|
11 | **
|
---|
12 | ** This file may be distributed under the terms of the Q Public License
|
---|
13 | ** as defined by Trolltech AS of Norway and appearing in the file
|
---|
14 | ** LICENSE.QPL included in the packaging of this file.
|
---|
15 | **
|
---|
16 | ** This file may be distributed and/or modified under the terms of the
|
---|
17 | ** GNU General Public License version 2 as published by the Free Software
|
---|
18 | ** Foundation and appearing in the file LICENSE.GPL included in the
|
---|
19 | ** packaging of this file.
|
---|
20 | **
|
---|
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
|
---|
22 | ** licenses may use this file in accordance with the Qt Commercial License
|
---|
23 | ** Agreement provided with the Software.
|
---|
24 | **
|
---|
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
---|
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
---|
27 | **
|
---|
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
---|
29 | ** information about Qt Commercial License Agreements.
|
---|
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information.
|
---|
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
---|
32 | **
|
---|
33 | ** Contact info@trolltech.com if any conditions of this licensing are
|
---|
34 | ** not clear to you.
|
---|
35 | **
|
---|
36 | **********************************************************************/
|
---|
37 |
|
---|
38 | #include "qinputdialog.h"
|
---|
39 |
|
---|
40 | #ifndef QT_NO_INPUTDIALOG
|
---|
41 |
|
---|
42 | #include "qlayout.h"
|
---|
43 | #include "qlabel.h"
|
---|
44 | #include "qlineedit.h"
|
---|
45 | #include "qpushbutton.h"
|
---|
46 | #include "qspinbox.h"
|
---|
47 | #include "qcombobox.h"
|
---|
48 | #include "qwidgetstack.h"
|
---|
49 | #include "qvalidator.h"
|
---|
50 | #include "qapplication.h"
|
---|
51 |
|
---|
52 | class QInputDialogPrivate
|
---|
53 | {
|
---|
54 | public:
|
---|
55 | friend class QInputDialog;
|
---|
56 | QLabel *label;
|
---|
57 | QLineEdit *lineEdit;
|
---|
58 | QSpinBox *spinBox;
|
---|
59 | QComboBox *comboBox, *editComboBox;
|
---|
60 | QPushButton *ok;
|
---|
61 | QWidgetStack *stack;
|
---|
62 | QInputDialog::Type type;
|
---|
63 | };
|
---|
64 |
|
---|
65 | /*!
|
---|
66 | \class QInputDialog
|
---|
67 | \brief The QInputDialog class provides a simple convenience dialog to get a single value from the user.
|
---|
68 | \ingroup dialogs
|
---|
69 | \mainclass
|
---|
70 |
|
---|
71 | The input value can be a string, a number or an item from a list. A
|
---|
72 | label must be set to tell the user what they should enter.
|
---|
73 |
|
---|
74 | Four static convenience functions are provided:
|
---|
75 | getText(), getInteger(), getDouble() and getItem(). All the
|
---|
76 | functions can be used in a similar way, for example:
|
---|
77 | \code
|
---|
78 | bool ok;
|
---|
79 | QString text = QInputDialog::getText(
|
---|
80 | "MyApp 3000", "Enter your name:", QLineEdit::Normal,
|
---|
81 | QString::null, &ok, this );
|
---|
82 | if ( ok && !text.isEmpty() ) {
|
---|
83 | // user entered something and pressed OK
|
---|
84 | } else {
|
---|
85 | // user entered nothing or pressed Cancel
|
---|
86 | }
|
---|
87 | \endcode
|
---|
88 |
|
---|
89 | \img inputdialogs.png Input Dialogs
|
---|
90 | */
|
---|
91 |
|
---|
92 | /*!
|
---|
93 | \enum QInputDialog::Type
|
---|
94 |
|
---|
95 | This enum specifies the type of the dialog, i.e. what kind of data you
|
---|
96 | want the user to input:
|
---|
97 |
|
---|
98 | \value LineEdit A QLineEdit is used for obtaining string or numeric
|
---|
99 | input. The QLineEdit can be accessed using lineEdit().
|
---|
100 |
|
---|
101 | \value SpinBox A QSpinBox is used for obtaining integer input.
|
---|
102 | Use spinBox() to access the QSpinBox.
|
---|
103 |
|
---|
104 | \value ComboBox A read-only QComboBox is used to provide a fixed
|
---|
105 | list of choices from which the user can choose.
|
---|
106 | Use comboBox() to access the QComboBox.
|
---|
107 |
|
---|
108 | \value EditableComboBox An editable QComboBox is used to provide a fixed
|
---|
109 | list of choices from which the user can choose, but which also
|
---|
110 | allows the user to enter their own value instead.
|
---|
111 | Use editableComboBox() to access the QComboBox.
|
---|
112 | */
|
---|
113 |
|
---|
114 | /*!
|
---|
115 | Constructs the dialog. The \a label is the text which is shown to the user
|
---|
116 | (it should tell the user what they are expected to enter). The \a parent
|
---|
117 | is the dialog's parent widget. The widget is called \a name. If \a
|
---|
118 | modal is TRUE (the default) the dialog will be modal. The \a type
|
---|
119 | parameter is used to specify which type of dialog to construct.
|
---|
120 |
|
---|
121 | \sa getText(), getInteger(), getDouble(), getItem()
|
---|
122 | */
|
---|
123 |
|
---|
124 | QInputDialog::QInputDialog( const QString &label, QWidget* parent,
|
---|
125 | const char* name, bool modal, Type type )
|
---|
126 | : QDialog( parent, name, modal )
|
---|
127 | {
|
---|
128 | d = new QInputDialogPrivate;
|
---|
129 | d->lineEdit = 0;
|
---|
130 | d->spinBox = 0;
|
---|
131 | d->comboBox = 0;
|
---|
132 |
|
---|
133 | QVBoxLayout *vbox = new QVBoxLayout( this, 6, 6 );
|
---|
134 |
|
---|
135 | d->label = new QLabel( label, this, "qt_inputdlg_lbl" );
|
---|
136 | vbox->addWidget( d->label );
|
---|
137 |
|
---|
138 | d->stack = new QWidgetStack( this, "qt_inputdlg_ws" );
|
---|
139 | vbox->addWidget( d->stack );
|
---|
140 | d->lineEdit = new QLineEdit( d->stack, "qt_inputdlg_le" );
|
---|
141 | d->spinBox = new QSpinBox( d->stack, "qt_inputdlg_sb" );
|
---|
142 | d->comboBox = new QComboBox( FALSE, d->stack, "qt_inputdlg_cb" );
|
---|
143 | d->editComboBox = new QComboBox( TRUE, d->stack, "qt_inputdlg_editcb" );
|
---|
144 |
|
---|
145 | QHBoxLayout *hbox = new QHBoxLayout( 6 );
|
---|
146 | vbox->addLayout( hbox, AlignRight );
|
---|
147 |
|
---|
148 | d->ok = new QPushButton( tr( "OK" ), this, "qt_ok_btn" );
|
---|
149 | d->ok->setDefault( TRUE );
|
---|
150 | QPushButton *cancel = new QPushButton( tr( "Cancel" ), this, "qt_cancel_btn" );
|
---|
151 |
|
---|
152 | QSize bs = d->ok->sizeHint().expandedTo( cancel->sizeHint() );
|
---|
153 | d->ok->setFixedSize( bs );
|
---|
154 | cancel->setFixedSize( bs );
|
---|
155 |
|
---|
156 | hbox->addStretch();
|
---|
157 | hbox->addWidget( d->ok );
|
---|
158 | hbox->addWidget( cancel );
|
---|
159 |
|
---|
160 | connect( d->lineEdit, SIGNAL( returnPressed() ),
|
---|
161 | this, SLOT( tryAccept() ) );
|
---|
162 | connect( d->lineEdit, SIGNAL( textChanged(const QString&) ),
|
---|
163 | this, SLOT( textChanged(const QString&) ) );
|
---|
164 |
|
---|
165 | connect( d->ok, SIGNAL( clicked() ), this, SLOT( accept() ) );
|
---|
166 | connect( cancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
|
---|
167 |
|
---|
168 | QSize sh = sizeHint().expandedTo( QSize(400, 10) );
|
---|
169 | setType( type );
|
---|
170 | resize( sh.width(), vbox->heightForWidth(sh.width()) );
|
---|
171 | }
|
---|
172 |
|
---|
173 | /*!
|
---|
174 | Returns the line edit which is used in LineEdit mode.
|
---|
175 | */
|
---|
176 |
|
---|
177 | QLineEdit *QInputDialog::lineEdit() const
|
---|
178 | {
|
---|
179 | return d->lineEdit;
|
---|
180 | }
|
---|
181 |
|
---|
182 | /*!
|
---|
183 | Returns the spinbox which is used in SpinBox mode.
|
---|
184 | */
|
---|
185 |
|
---|
186 | QSpinBox *QInputDialog::spinBox() const
|
---|
187 | {
|
---|
188 | return d->spinBox;
|
---|
189 | }
|
---|
190 |
|
---|
191 | /*!
|
---|
192 | Returns the combobox which is used in ComboBox mode.
|
---|
193 | */
|
---|
194 |
|
---|
195 | QComboBox *QInputDialog::comboBox() const
|
---|
196 | {
|
---|
197 | return d->comboBox;
|
---|
198 | }
|
---|
199 |
|
---|
200 | /*!
|
---|
201 | Returns the combobox which is used in EditableComboBox mode.
|
---|
202 | */
|
---|
203 |
|
---|
204 | QComboBox *QInputDialog::editableComboBox() const
|
---|
205 | {
|
---|
206 | return d->editComboBox;
|
---|
207 | }
|
---|
208 |
|
---|
209 | /*!
|
---|
210 | Sets the input type of the dialog to \a t.
|
---|
211 | */
|
---|
212 |
|
---|
213 | void QInputDialog::setType( Type t )
|
---|
214 | {
|
---|
215 | QWidget *input = 0;
|
---|
216 | switch ( t ) {
|
---|
217 | case LineEdit:
|
---|
218 | input = d->lineEdit;
|
---|
219 | break;
|
---|
220 | case SpinBox:
|
---|
221 | input = d->spinBox;
|
---|
222 | break;
|
---|
223 | case ComboBox:
|
---|
224 | input = d->comboBox;
|
---|
225 | break;
|
---|
226 | case EditableComboBox:
|
---|
227 | input = d->editComboBox;
|
---|
228 | break;
|
---|
229 | default:
|
---|
230 | #if defined(QT_CHECK_STATE)
|
---|
231 | qWarning( "QInputDialog::setType: Invalid type" );
|
---|
232 | #endif
|
---|
233 | break;
|
---|
234 | }
|
---|
235 | if ( input ) {
|
---|
236 | d->stack->raiseWidget( input );
|
---|
237 | d->stack->setFixedHeight( input->sizeHint().height() );
|
---|
238 | input->setFocus();
|
---|
239 | #ifndef QT_NO_ACCEL
|
---|
240 | d->label->setBuddy( input );
|
---|
241 | #endif
|
---|
242 | }
|
---|
243 |
|
---|
244 | d->type = t;
|
---|
245 | }
|
---|
246 |
|
---|
247 | /*!
|
---|
248 | Returns the input type of the dialog.
|
---|
249 |
|
---|
250 | \sa setType()
|
---|
251 | */
|
---|
252 |
|
---|
253 | QInputDialog::Type QInputDialog::type() const
|
---|
254 | {
|
---|
255 | return d->type;
|
---|
256 | }
|
---|
257 |
|
---|
258 | /*!
|
---|
259 | Destructor.
|
---|
260 | */
|
---|
261 |
|
---|
262 | QInputDialog::~QInputDialog()
|
---|
263 | {
|
---|
264 | delete d;
|
---|
265 | }
|
---|
266 |
|
---|
267 | /*!
|
---|
268 | Static convenience function to get a string from the user. \a
|
---|
269 | caption is the text which is displayed in the title bar of the
|
---|
270 | dialog. \a label is the text which is shown to the user (it should
|
---|
271 | say what should be entered). \a text is the default text which is
|
---|
272 | placed in the line edit. The \a mode is the echo mode the line edit
|
---|
273 | will use. If \a ok is not-null \e *\a ok will be set to TRUE if the
|
---|
274 | user pressed OK and to FALSE if the user pressed Cancel. The
|
---|
275 | dialog's parent is \a parent; the dialog is called \a name. The
|
---|
276 | dialog will be modal.
|
---|
277 |
|
---|
278 | This function returns the text which has been entered in the line
|
---|
279 | edit. It will not return an empty string.
|
---|
280 |
|
---|
281 | Use this static function like this:
|
---|
282 |
|
---|
283 | \code
|
---|
284 | bool ok;
|
---|
285 | QString text = QInputDialog::getText(
|
---|
286 | "MyApp 3000", "Enter your name:", QLineEdit::Normal,
|
---|
287 | QString::null, &ok, this );
|
---|
288 | if ( ok && !text.isEmpty() ) {
|
---|
289 | // user entered something and pressed OK
|
---|
290 | } else {
|
---|
291 | // user entered nothing or pressed Cancel
|
---|
292 | }
|
---|
293 | \endcode
|
---|
294 | */
|
---|
295 |
|
---|
296 | QString QInputDialog::getText( const QString &caption, const QString &label,
|
---|
297 | QLineEdit::EchoMode mode, const QString &text,
|
---|
298 | bool *ok, QWidget *parent, const char *name )
|
---|
299 | {
|
---|
300 | QInputDialog *dlg = new QInputDialog( label, parent,
|
---|
301 | name ? name : "qt_inputdlg_gettext",
|
---|
302 | TRUE, LineEdit );
|
---|
303 |
|
---|
304 | #ifndef QT_NO_WIDGET_TOPEXTRA
|
---|
305 | dlg->setCaption( caption );
|
---|
306 | #endif
|
---|
307 | dlg->lineEdit()->setText( text );
|
---|
308 | dlg->lineEdit()->setEchoMode( mode );
|
---|
309 |
|
---|
310 | bool ok_ = FALSE;
|
---|
311 | QString result;
|
---|
312 | ok_ = dlg->exec() == QDialog::Accepted;
|
---|
313 | if ( ok )
|
---|
314 | *ok = ok_;
|
---|
315 | if ( ok_ )
|
---|
316 | result = dlg->lineEdit()->text();
|
---|
317 |
|
---|
318 | delete dlg;
|
---|
319 | return result;
|
---|
320 | }
|
---|
321 |
|
---|
322 | /*!
|
---|
323 | Static convenience function to get an integer input from the
|
---|
324 | user. \a caption is the text which is displayed in the title bar
|
---|
325 | of the dialog. \a label is the text which is shown to the user
|
---|
326 | (it should say what should be entered). \a value is the default
|
---|
327 | integer which the spinbox will be set to. \a minValue and \a
|
---|
328 | maxValue are the minimum and maximum values the user may choose,
|
---|
329 | and \a step is the amount by which the values change as the user
|
---|
330 | presses the arrow buttons to increment or decrement the value.
|
---|
331 |
|
---|
332 | If \a ok is not-null *\a ok will be set to TRUE if the user
|
---|
333 | pressed OK and to FALSE if the user pressed Cancel. The dialog's
|
---|
334 | parent is \a parent; the dialog is called \a name. The dialog will
|
---|
335 | be modal.
|
---|
336 |
|
---|
337 | This function returns the integer which has been entered by the user.
|
---|
338 |
|
---|
339 | Use this static function like this:
|
---|
340 |
|
---|
341 | \code
|
---|
342 | bool ok;
|
---|
343 | int res = QInputDialog::getInteger(
|
---|
344 | "MyApp 3000", "Enter a number:", 22, 0, 1000, 2,
|
---|
345 | &ok, this );
|
---|
346 | if ( ok ) {
|
---|
347 | // user entered something and pressed OK
|
---|
348 | } else {
|
---|
349 | // user pressed Cancel
|
---|
350 | }
|
---|
351 | \endcode
|
---|
352 | */
|
---|
353 |
|
---|
354 | int QInputDialog::getInteger( const QString &caption, const QString &label,
|
---|
355 | int value, int minValue, int maxValue, int step, bool *ok,
|
---|
356 | QWidget *parent, const char *name )
|
---|
357 | {
|
---|
358 | QInputDialog *dlg = new QInputDialog( label, parent,
|
---|
359 | name ? name : "qt_inputdlg_getint",
|
---|
360 | TRUE, SpinBox );
|
---|
361 | #ifndef QT_NO_WIDGET_TOPEXTRA
|
---|
362 | dlg->setCaption( caption );
|
---|
363 | #endif
|
---|
364 | dlg->spinBox()->setRange( minValue, maxValue );
|
---|
365 | dlg->spinBox()->setSteps( step, 0 );
|
---|
366 | dlg->spinBox()->setValue( value );
|
---|
367 |
|
---|
368 | bool ok_ = FALSE;
|
---|
369 | int result;
|
---|
370 | ok_ = dlg->exec() == QDialog::Accepted;
|
---|
371 | if ( ok )
|
---|
372 | *ok = ok_;
|
---|
373 | result = dlg->spinBox()->value();
|
---|
374 |
|
---|
375 | delete dlg;
|
---|
376 | return result;
|
---|
377 | }
|
---|
378 |
|
---|
379 | /*!
|
---|
380 | Static convenience function to get a floating point number from
|
---|
381 | the user. \a caption is the text which is displayed in the title
|
---|
382 | bar of the dialog. \a label is the text which is shown to the user
|
---|
383 | (it should say what should be entered). \a value is the default
|
---|
384 | floating point number that the line edit will be set to. \a
|
---|
385 | minValue and \a maxValue are the minimum and maximum values the
|
---|
386 | user may choose, and \a decimals is the maximum number of decimal
|
---|
387 | places the number may have.
|
---|
388 |
|
---|
389 | If \a ok is not-null \e *\a ok will be set to TRUE if the user
|
---|
390 | pressed OK and to FALSE if the user pressed Cancel. The dialog's
|
---|
391 | parent is \a parent; the dialog is called \a name. The dialog will
|
---|
392 | be modal.
|
---|
393 |
|
---|
394 | This function returns the floating point number which has been
|
---|
395 | entered by the user.
|
---|
396 |
|
---|
397 | Use this static function like this:
|
---|
398 |
|
---|
399 | \code
|
---|
400 | bool ok;
|
---|
401 | double res = QInputDialog::getDouble(
|
---|
402 | "MyApp 3000", "Enter a decimal number:", 33.7, 0,
|
---|
403 | 1000, 2, &ok, this );
|
---|
404 | if ( ok ) {
|
---|
405 | // user entered something and pressed OK
|
---|
406 | } else {
|
---|
407 | // user pressed Cancel
|
---|
408 | }
|
---|
409 | \endcode
|
---|
410 | */
|
---|
411 |
|
---|
412 | double QInputDialog::getDouble( const QString &caption, const QString &label,
|
---|
413 | double value, double minValue, double maxValue,
|
---|
414 | int decimals, bool *ok, QWidget *parent,
|
---|
415 | const char *name )
|
---|
416 | {
|
---|
417 | QInputDialog dlg( label, parent,
|
---|
418 | name ? name : "qt_inputdlg_getdbl", TRUE, LineEdit );
|
---|
419 | #ifndef QT_NO_WIDGET_TOPEXTRA
|
---|
420 | dlg.setCaption( caption );
|
---|
421 | #endif
|
---|
422 | dlg.lineEdit()->setValidator( new QDoubleValidator( minValue, maxValue, decimals, dlg.lineEdit() ) );
|
---|
423 | dlg.lineEdit()->setText( QString::number( value, 'f', decimals ) );
|
---|
424 | dlg.lineEdit()->selectAll();
|
---|
425 |
|
---|
426 | bool accepted = ( dlg.exec() == QDialog::Accepted );
|
---|
427 | if ( ok )
|
---|
428 | *ok = accepted;
|
---|
429 | return dlg.lineEdit()->text().toDouble();
|
---|
430 | }
|
---|
431 |
|
---|
432 | /*!
|
---|
433 | Static convenience function to let the user select an item from a
|
---|
434 | string list. \a caption is the text which is displayed in the title
|
---|
435 | bar of the dialog. \a label is the text which is shown to the user (it
|
---|
436 | should say what should be entered). \a list is the
|
---|
437 | string list which is inserted into the combobox, and \a current is the number
|
---|
438 | of the item which should be the current item. If \a editable is TRUE
|
---|
439 | the user can enter their own text; if \a editable is FALSE the user
|
---|
440 | may only select one of the existing items.
|
---|
441 |
|
---|
442 | If \a ok is not-null \e *\a ok will be set to TRUE if the user
|
---|
443 | pressed OK and to FALSE if the user pressed Cancel. The dialog's
|
---|
444 | parent is \a parent; the dialog is called \a name. The dialog will
|
---|
445 | be modal.
|
---|
446 |
|
---|
447 | This function returns the text of the current item, or if \a
|
---|
448 | editable is TRUE, the current text of the combobox.
|
---|
449 |
|
---|
450 | Use this static function like this:
|
---|
451 |
|
---|
452 | \code
|
---|
453 | QStringList lst;
|
---|
454 | lst << "First" << "Second" << "Third" << "Fourth" << "Fifth";
|
---|
455 | bool ok;
|
---|
456 | QString res = QInputDialog::getItem(
|
---|
457 | "MyApp 3000", "Select an item:", lst, 1, TRUE, &ok,
|
---|
458 | this );
|
---|
459 | if ( ok ) {
|
---|
460 | // user selected an item and pressed OK
|
---|
461 | } else {
|
---|
462 | // user pressed Cancel
|
---|
463 | }
|
---|
464 | \endcode
|
---|
465 | */
|
---|
466 |
|
---|
467 | QString QInputDialog::getItem( const QString &caption, const QString &label, const QStringList &list,
|
---|
468 | int current, bool editable,
|
---|
469 | bool *ok, QWidget *parent, const char *name )
|
---|
470 | {
|
---|
471 | QInputDialog *dlg = new QInputDialog( label, parent, name ? name : "qt_inputdlg_getitem", TRUE, editable ? EditableComboBox : ComboBox );
|
---|
472 | #ifndef QT_NO_WIDGET_TOPEXTRA
|
---|
473 | dlg->setCaption( caption );
|
---|
474 | #endif
|
---|
475 | if ( editable ) {
|
---|
476 | dlg->editableComboBox()->insertStringList( list );
|
---|
477 | dlg->editableComboBox()->setCurrentItem( current );
|
---|
478 | } else {
|
---|
479 | dlg->comboBox()->insertStringList( list );
|
---|
480 | dlg->comboBox()->setCurrentItem( current );
|
---|
481 | }
|
---|
482 |
|
---|
483 | bool ok_ = FALSE;
|
---|
484 | QString result;
|
---|
485 | ok_ = dlg->exec() == QDialog::Accepted;
|
---|
486 | if ( ok )
|
---|
487 | *ok = ok_;
|
---|
488 | if ( editable )
|
---|
489 | result = dlg->editableComboBox()->currentText();
|
---|
490 | else
|
---|
491 | result = dlg->comboBox()->currentText();
|
---|
492 |
|
---|
493 | delete dlg;
|
---|
494 | return result;
|
---|
495 | }
|
---|
496 |
|
---|
497 | /*!
|
---|
498 | \internal
|
---|
499 |
|
---|
500 | This slot is invoked when the text is changed; the new text is passed
|
---|
501 | in \a s.
|
---|
502 | */
|
---|
503 |
|
---|
504 | void QInputDialog::textChanged( const QString &s )
|
---|
505 | {
|
---|
506 | bool on = TRUE;
|
---|
507 |
|
---|
508 | if ( d->lineEdit->validator() ) {
|
---|
509 | QString str = d->lineEdit->text();
|
---|
510 | int index = d->lineEdit->cursorPosition();
|
---|
511 | on = ( d->lineEdit->validator()->validate(str, index) ==
|
---|
512 | QValidator::Acceptable );
|
---|
513 | } else if ( type() != LineEdit ) {
|
---|
514 | on = !s.isEmpty();
|
---|
515 | }
|
---|
516 | d->ok->setEnabled( on );
|
---|
517 | }
|
---|
518 |
|
---|
519 | /*!
|
---|
520 | \internal
|
---|
521 | */
|
---|
522 |
|
---|
523 | void QInputDialog::tryAccept()
|
---|
524 | {
|
---|
525 | if ( !d->lineEdit->text().isEmpty() )
|
---|
526 | accept();
|
---|
527 | }
|
---|
528 |
|
---|
529 | #endif
|
---|