diff options
Diffstat (limited to 'tqtinterface/qt4/src/dialogs/tqinputdialog.cpp')
-rw-r--r-- | tqtinterface/qt4/src/dialogs/tqinputdialog.cpp | 532 |
1 files changed, 0 insertions, 532 deletions
diff --git a/tqtinterface/qt4/src/dialogs/tqinputdialog.cpp b/tqtinterface/qt4/src/dialogs/tqinputdialog.cpp deleted file mode 100644 index a9ae81f..0000000 --- a/tqtinterface/qt4/src/dialogs/tqinputdialog.cpp +++ /dev/null @@ -1,532 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQInputDialog class -** -** Created : 991212 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the dialogs module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqinputdialog.h" - -#ifndef TQT_NO_INPUTDIALOG - -#include "tqlayout.h" -#include "tqlabel.h" -#include "tqlineedit.h" -#include "tqpushbutton.h" -#include "tqspinbox.h" -#include "tqcombobox.h" -#include "tqwidgetstack.h" -#include "tqvalidator.h" -#include "tqapplication.h" - -class TQInputDialogPrivate -{ -public: - friend class TQInputDialog; - TQLabel *label; - TQLineEdit *lineEdit; - TQSpinBox *spinBox; - TQComboBox *comboBox, *editComboBox; - TQPushButton *ok; - TQWidgetStack *stack; - TQInputDialog::Type type; -}; - -/*! - \class TQInputDialog - \brief The TQInputDialog class provides a simple convenience dialog to get a single value from the user. - \ingroup dialogs - \mainclass - - The input value can be a string, a number or an item from a list. A - label must be set to tell the user what they should enter. - - Four static convenience functions are provided: - getText(), getInteger(), getDouble() and getItem(). All the - functions can be used in a similar way, for example: - \code - bool ok; - TQString text = TQInputDialog::getText( - "MyApp 3000", "Enter your name:", TQLineEdit::Normal, - TQString::null, &ok, this ); - if ( ok && !text.isEmpty() ) { - // user entered something and pressed OK - } else { - // user entered nothing or pressed Cancel - } - \endcode - - \img inputdialogs.png Input Dialogs -*/ - -/*! - \enum TQInputDialog::Type - - This enum specifies the type of the dialog, i.e. what kind of data you - want the user to input: - - \value LineEdit A TQLineEdit is used for obtaining string or numeric - input. The TQLineEdit can be accessed using lineEdit(). - - \value SpinBox A TQSpinBox is used for obtaining integer input. - Use spinBox() to access the TQSpinBox. - - \value ComboBox A read-only TQComboBox is used to provide a fixed - list of choices from which the user can choose. - Use comboBox() to access the TQComboBox. - - \value EditableComboBox An editable TQComboBox is used to provide a fixed - list of choices from which the user can choose, but which also - allows the user to enter their own value instead. - Use editableComboBox() to access the TQComboBox. -*/ - -/*! - Constructs the dialog. The \a label is the text which is shown to the user - (it should tell the user what they are expected to enter). The \a parent - is the dialog's parent widget. The widget is called \a name. If \a - modal is TRUE (the default) the dialog will be modal. The \a type - parameter is used to specify which type of dialog to construct. - - \sa getText(), getInteger(), getDouble(), getItem() -*/ - -TQInputDialog::TQInputDialog( const TQString &label, TQWidget* parent, - const char* name, bool modal, Type type ) - : TQDialog( parent, name, modal ) -{ - d = new TQInputDialogPrivate; - d->lineEdit = 0; - d->spinBox = 0; - d->comboBox = 0; - - TQVBoxLayout *vbox = new TQVBoxLayout( this, 6, 6 ); - - d->label = new TQLabel( label, this, "qt_inputdlg_lbl" ); - vbox->addWidget( d->label ); - - d->stack = new TQWidgetStack( this, "qt_inputdlg_ws" ); - vbox->addWidget( d->stack ); - d->lineEdit = new TQLineEdit( d->stack, "qt_inputdlg_le" ); - d->spinBox = new TQSpinBox( d->stack, "qt_inputdlg_sb" ); - d->comboBox = new TQComboBox( FALSE, d->stack, "qt_inputdlg_cb" ); - d->editComboBox = new TQComboBox( TRUE, d->stack, "qt_inputdlg_editcb" ); - - TQHBoxLayout *hbox = new TQHBoxLayout( 6 ); - vbox->addLayout( hbox, Qt::AlignRight ); - - d->ok = new TQPushButton( tr( "OK" ), this, "qt_ok_btn" ); - d->ok->setDefault( TRUE ); - TQPushButton *cancel = new TQPushButton( tr( "Cancel" ), this, "qt_cancel_btn" ); - - TQSize bs = d->ok->tqsizeHint().expandedTo( cancel->tqsizeHint() ); - d->ok->setFixedSize( bs ); - cancel->setFixedSize( bs ); - - hbox->addStretch(); - hbox->addWidget( d->ok ); - hbox->addWidget( cancel ); - - connect( d->lineEdit, TQT_SIGNAL( returnPressed() ), - this, TQT_SLOT( tryAccept() ) ); - connect( d->lineEdit, TQT_SIGNAL( textChanged(const TQString&) ), - this, TQT_SLOT( textChanged(const TQString&) ) ); - - connect( d->ok, TQT_SIGNAL( clicked() ), this, TQT_SLOT( accept() ) ); - connect( cancel, TQT_SIGNAL( clicked() ), this, TQT_SLOT( reject() ) ); - - TQSize sh = tqsizeHint().expandedTo( TQSize(400, 10) ); - setType( type ); - resize( sh.width(), vbox->heightForWidth(sh.width()) ); -} - -/*! - Returns the line edit which is used in LineEdit mode. -*/ - -TQLineEdit *TQInputDialog::lineEdit() const -{ - return d->lineEdit; -} - -/*! - Returns the spinbox which is used in SpinBox mode. -*/ - -TQSpinBox *TQInputDialog::spinBox() const -{ - return d->spinBox; -} - -/*! - Returns the combobox which is used in ComboBox mode. -*/ - -TQComboBox *TQInputDialog::comboBox() const -{ - return d->comboBox; -} - -/*! - Returns the combobox which is used in EditableComboBox mode. -*/ - -TQComboBox *TQInputDialog::editableComboBox() const -{ - return d->editComboBox; -} - -/*! - Sets the input type of the dialog to \a t. -*/ - -void TQInputDialog::setType( Type t ) -{ - TQWidget *input = 0; - switch ( t ) { - case LineEdit: - input = d->lineEdit; - break; - case SpinBox: - input = d->spinBox; - break; - case ComboBox: - input = d->comboBox; - break; - case EditableComboBox: - input = d->editComboBox; - break; - default: -#if defined(TQT_CHECK_STATE) - qWarning( "TQInputDialog::setType: Invalid type" ); -#endif - break; - } - if ( input ) { - d->stack->raiseWidget( input ); - d->stack->setFixedHeight( input->tqsizeHint().height() ); - input->setFocus(); -#ifndef TQT_NO_ACCEL - d->label->setBuddy( input ); -#endif - } - - d->type = t; -} - -/*! - Returns the input type of the dialog. - - \sa setType() -*/ - -TQInputDialog::Type TQInputDialog::type() const -{ - return d->type; -} - -/*! - Destructor. -*/ - -TQInputDialog::~TQInputDialog() -{ - delete d; -} - -/*! - Static convenience function to get a string from the user. \a - caption is the text which is displayed in the title bar of the - dialog. \a label is the text which is shown to the user (it should - say what should be entered). \a text is the default text which is - placed in the line edit. The \a mode is the echo mode the line edit - will use. If \a ok is not-null \e *\a ok will be set to TRUE if the - user pressed OK and to FALSE if the user pressed Cancel. The - dialog's parent is \a parent; the dialog is called \a name. The - dialog will be modal. - - This function returns the text which has been entered in the line - edit. It will not return an empty string. - - Use this static function like this: - - \code - bool ok; - TQString text = TQInputDialog::getText( - "MyApp 3000", "Enter your name:", TQLineEdit::Normal, - TQString::null, &ok, this ); - if ( ok && !text.isEmpty() ) { - // user entered something and pressed OK - } else { - // user entered nothing or pressed Cancel - } - \endcode -*/ - -TQString TQInputDialog::getText( const TQString &caption, const TQString &label, - TQLineEdit::EchoMode mode, const TQString &text, - bool *ok, TQWidget *parent, const char *name ) -{ - TQInputDialog *dlg = new TQInputDialog( label, parent, - name ? name : "qt_inputdlg_gettext", - TRUE, LineEdit ); - -#ifndef TQT_NO_WIDGET_TOPEXTRA - dlg->setCaption( caption ); -#endif - dlg->lineEdit()->setText( text ); - dlg->lineEdit()->setEchoMode( mode ); - - bool ok_ = FALSE; - TQString result; - ok_ = dlg->exec() == TQDialog::Accepted; - if ( ok ) - *ok = ok_; - if ( ok_ ) - result = dlg->lineEdit()->text(); - - delete dlg; - return result; -} - -/*! - Static convenience function to get an integer input from the - user. \a caption is the text which is displayed in the title bar - of the dialog. \a label is the text which is shown to the user - (it should say what should be entered). \a value is the default - integer which the spinbox will be set to. \a minValue and \a - maxValue are the minimum and maximum values the user may choose, - and \a step is the amount by which the values change as the user - presses the arrow buttons to increment or decrement the value. - - If \a ok is not-null *\a ok will be set to TRUE if the user - pressed OK and to FALSE if the user pressed Cancel. The dialog's - parent is \a parent; the dialog is called \a name. The dialog will - be modal. - - This function returns the integer which has been entered by the user. - - Use this static function like this: - - \code - bool ok; - int res = TQInputDialog::getInteger( - "MyApp 3000", "Enter a number:", 22, 0, 1000, 2, - &ok, this ); - if ( ok ) { - // user entered something and pressed OK - } else { - // user pressed Cancel - } - \endcode -*/ - -int TQInputDialog::getInteger( const TQString &caption, const TQString &label, - int value, int minValue, int maxValue, int step, bool *ok, - TQWidget *parent, const char *name ) -{ - TQInputDialog *dlg = new TQInputDialog( label, parent, - name ? name : "qt_inputdlg_getint", - TRUE, SpinBox ); -#ifndef TQT_NO_WIDGET_TOPEXTRA - dlg->setCaption( caption ); -#endif - dlg->spinBox()->setRange( minValue, maxValue ); - dlg->spinBox()->setSteps( step, 0 ); - dlg->spinBox()->setValue( value ); - - bool ok_ = FALSE; - int result; - ok_ = dlg->exec() == TQDialog::Accepted; - if ( ok ) - *ok = ok_; - result = dlg->spinBox()->value(); - - delete dlg; - return result; -} - -/*! - Static convenience function to get a floating point number from - the user. \a caption is the text which is displayed in the title - bar of the dialog. \a label is the text which is shown to the user - (it should say what should be entered). \a value is the default - floating point number that the line edit will be set to. \a - minValue and \a maxValue are the minimum and maximum values the - user may choose, and \a decimals is the maximum number of decimal - places the number may have. - - If \a ok is not-null \e *\a ok will be set to TRUE if the user - pressed OK and to FALSE if the user pressed Cancel. The dialog's - parent is \a parent; the dialog is called \a name. The dialog will - be modal. - - This function returns the floating point number which has been - entered by the user. - - Use this static function like this: - - \code - bool ok; - double res = TQInputDialog::getDouble( - "MyApp 3000", "Enter a decimal number:", 33.7, 0, - 1000, 2, &ok, this ); - if ( ok ) { - // user entered something and pressed OK - } else { - // user pressed Cancel - } - \endcode -*/ - -double TQInputDialog::getDouble( const TQString &caption, const TQString &label, - double value, double minValue, double maxValue, - int decimals, bool *ok, TQWidget *parent, - const char *name ) -{ - TQInputDialog dlg( label, parent, - name ? name : "qt_inputdlg_getdbl", TRUE, LineEdit ); -#ifndef TQT_NO_WIDGET_TOPEXTRA - dlg.setCaption( caption ); -#endif - dlg.lineEdit()->setValidator( new TQDoubleValidator( minValue, maxValue, decimals, TQT_TQOBJECT(dlg.lineEdit()) ) ); - dlg.lineEdit()->setText( TQString::number( value, 'f', decimals ) ); - dlg.lineEdit()->selectAll(); - - bool accepted = ( dlg.exec() == TQDialog::Accepted ); - if ( ok ) - *ok = accepted; - return dlg.lineEdit()->text().toDouble(); -} - -/*! - Static convenience function to let the user select an item from a - string list. \a caption is the text which is displayed in the title - bar of the dialog. \a label is the text which is shown to the user (it - should say what should be entered). \a list is the - string list which is inserted into the combobox, and \a current is the number - of the item which should be the current item. If \a editable is TRUE - the user can enter their own text; if \a editable is FALSE the user - may only select one of the existing items. - - If \a ok is not-null \e *\a ok will be set to TRUE if the user - pressed OK and to FALSE if the user pressed Cancel. The dialog's - parent is \a parent; the dialog is called \a name. The dialog will - be modal. - - This function returns the text of the current item, or if \a - editable is TRUE, the current text of the combobox. - - Use this static function like this: - - \code - TQStringList lst; - lst << "First" << "Second" << "Third" << "Fourth" << "Fifth"; - bool ok; - TQString res = TQInputDialog::getItem( - "MyApp 3000", "Select an item:", lst, 1, TRUE, &ok, - this ); - if ( ok ) { - // user selected an item and pressed OK - } else { - // user pressed Cancel - } - \endcode -*/ - -TQString TQInputDialog::getItem( const TQString &caption, const TQString &label, const TQStringList &list, - int current, bool editable, - bool *ok, TQWidget *parent, const char *name ) -{ - TQInputDialog *dlg = new TQInputDialog( label, parent, name ? name : "qt_inputdlg_getitem", TRUE, editable ? EditableComboBox : ComboBox ); -#ifndef TQT_NO_WIDGET_TOPEXTRA - dlg->setCaption( caption ); -#endif - if ( editable ) { - dlg->editableComboBox()->insertStringList( list ); - dlg->editableComboBox()->setCurrentItem( current ); - } else { - dlg->comboBox()->insertStringList( list ); - dlg->comboBox()->setCurrentItem( current ); - } - - bool ok_ = FALSE; - TQString result; - ok_ = dlg->exec() == TQDialog::Accepted; - if ( ok ) - *ok = ok_; - if ( editable ) - result = dlg->editableComboBox()->currentText(); - else - result = dlg->comboBox()->currentText(); - - delete dlg; - return result; -} - -/*! - \internal - - This slot is invoked when the text is changed; the new text is passed - in \a s. -*/ - -void TQInputDialog::textChanged( const TQString &s ) -{ - bool on = TRUE; - - if ( d->lineEdit->validator() ) { - TQString str = d->lineEdit->text(); - int index = d->lineEdit->cursorPosition(); - on = ( d->lineEdit->validator()->validate(str, index) == - TQValidator::Acceptable ); - } else if ( type() != LineEdit ) { - on = !s.isEmpty(); - } - d->ok->setEnabled( on ); -} - -/*! - \internal -*/ - -void TQInputDialog::tryAccept() -{ - if ( !d->lineEdit->text().isEmpty() ) - accept(); -} - -#endif |