diff options
author | Andy Shaw <andy.shaw@qt.io> | 2017-06-28 11:18:43 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2017-07-11 12:10:39 +0000 |
commit | 82e6ac8cdb4eed2cfaae7b5b5541e1cb99b812d0 (patch) | |
tree | d19fe7e96eb7ddbe0c5203a4b72a62bcfa2ef729 /src/widgets/dialogs/qinputdialog.cpp | |
parent | 072119918762448391414d570e029fd1b53ff3de (diff) |
Implement setDoubleStep for QInputDialog
setDoubleStep works in the same manner as for setIntStep in that it is
just available for input dialogs getting a double.
[ChangeLog][QtWidgets][QInputDialog] Added setDoubleStep to enable
changing of the step amount for getDouble().
Task-number: QTBUG-17547
Change-Id: I5cabcfceb23324f8045f2b1e49017644418db01a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/widgets/dialogs/qinputdialog.cpp')
-rw-r--r-- | src/widgets/dialogs/qinputdialog.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/widgets/dialogs/qinputdialog.cpp b/src/widgets/dialogs/qinputdialog.cpp index 04d13045e5..4c0f22ae97 100644 --- a/src/widgets/dialogs/qinputdialog.cpp +++ b/src/widgets/dialogs/qinputdialog.cpp @@ -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. |