diff options
Diffstat (limited to 'src/widgets/dialogs/qinputdialog.cpp')
-rw-r--r-- | src/widgets/dialogs/qinputdialog.cpp | 77 |
1 files changed, 69 insertions, 8 deletions
diff --git a/src/widgets/dialogs/qinputdialog.cpp b/src/widgets/dialogs/qinputdialog.cpp index 04d13045e5..5c6e0f45a5 100644 --- a/src/widgets/dialogs/qinputdialog.cpp +++ b/src/widgets/dialogs/qinputdialog.cpp @@ -71,10 +71,11 @@ static const char *candidateSignal(int which) case IntValueSelectedSignal: return SIGNAL(intValueSelected(int)); case DoubleValueSelectedSignal: return SIGNAL(doubleValueSelected(double)); - case NumCandidateSignals: ; // fall through + case NumCandidateSignals: + break; }; Q_UNREACHABLE(); - return Q_NULLPTR; + return nullptr; } static const char *signalForMember(const char *member) @@ -115,7 +116,7 @@ private slots: void notifyTextChanged() { emit textChanged(hasAcceptableInput()); } private: - void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE { + void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { #ifndef QT_NO_PROPERTIES setProperty("value", property("value")); @@ -126,7 +127,7 @@ private: notifyTextChanged(); } - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE { + void mousePressEvent(QMouseEvent *event) override { QSpinBox::mousePressEvent(event); notifyTextChanged(); } @@ -150,7 +151,7 @@ private slots: void notifyTextChanged() { emit textChanged(hasAcceptableInput()); } private: - void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE { + void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { #ifndef QT_NO_PROPERTIES setProperty("value", property("value")); @@ -161,7 +162,7 @@ private: notifyTextChanged(); } - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE { + void mousePressEvent(QMouseEvent *event) override { QDoubleSpinBox::mousePressEvent(event); notifyTextChanged(); } @@ -239,7 +240,6 @@ void QInputDialogPrivate::ensureLayout() QObject::connect(buttonBox, SIGNAL(rejected()), q, SLOT(reject())); mainLayout = new QVBoxLayout(q); - //we want to let the input dialog grow to available size on Symbian. mainLayout->setSizeConstraint(QLayout::SetMinAndMaxSize); mainLayout->addWidget(label); mainLayout->addWidget(inputWidget); @@ -1312,7 +1312,7 @@ int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &l } /*! - \fn QInputDialog::getInteger(QWidget *parent, const QString &title, const QString &label, int value, int min, int max, int step, bool *ok, Qt::WindowFlags flags) + \fn int QInputDialog::getInteger(QWidget *parent, const QString &title, const QString &label, int value, int min, int max, int step, bool *ok, Qt::WindowFlags flags) \deprecated use getInt() Static convenience function to get an integer input from the user. @@ -1368,12 +1368,48 @@ double QInputDialog::getDouble(QWidget *parent, const QString &title, const QStr double value, double min, double max, int decimals, bool *ok, Qt::WindowFlags flags) { + return QInputDialog::getDouble(parent, title, label, value, min, max, decimals, ok, flags, 1.0); +} + +/*! + \overload + Static convenience function to get a floating point number from the user. + + \a title 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 min and \a max are the minimum and maximum values the user may choose. + \a decimals is the maximum number of decimal places the number may have. + \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 nonnull, *\a ok will be set to true if the user pressed \uicontrol OK + and to false if the user pressed \uicontrol Cancel. The dialog's parent is + \a parent. The dialog will be modal and uses the widget \a flags. + + This function returns the floating point number which has been entered by + the user. + + Use this static function like this: + + \snippet dialogs/standarddialogs/dialog.cpp 1 + + \sa getText(), getInt(), getItem(), getMultiLineText() +*/ + +double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label, + double value, double min, double max, int decimals, bool *ok, + Qt::WindowFlags flags, double step) +{ QAutoPointer<QInputDialog> dialog(new QInputDialog(parent, flags)); dialog->setWindowTitle(title); dialog->setLabelText(label); dialog->setDoubleDecimals(decimals); dialog->setDoubleRange(min, max); dialog->setDoubleValue(value); + dialog->setDoubleStep(step); const int ret = dialog->exec(); if (ok) @@ -1439,6 +1475,31 @@ QString QInputDialog::getItem(QWidget *parent, const QString &title, const QStri } /*! + \property QInputDialog::doubleStep + \since 5.10 + \brief the step by which the double value is increased and decreased + + This property is only relevant when the input dialog is used in + DoubleInput mode. +*/ + +void QInputDialog::setDoubleStep(double step) +{ + Q_D(QInputDialog); + d->ensureDoubleSpinBox(); + d->doubleSpinBox->setSingleStep(step); +} + +double QInputDialog::doubleStep() const +{ + Q_D(const QInputDialog); + if (d->doubleSpinBox) + return d->doubleSpinBox->singleStep(); + else + return 1.0; +} + +/*! \fn void QInputDialog::doubleValueChanged(double value) This signal is emitted whenever the double value changes in the dialog. |