From 5f2edec6cbeeaedeed7be6808ced0c32d2b9fac9 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 2 Mar 2021 07:03:57 +0100 Subject: [PATCH] Utils: Fix setting up spinbox for IntegerAspect setValue() has to be called after setRange(), otherwise the value will by cut at the initial default 99 maximum. Change-Id: Id4a7cf1db0e3044f32022d6de8f66810f9cd6b4e Reviewed-by: David Schulz --- src/libs/utils/aspects.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index b6a13dc0fe7..fb7b60ea78a 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -645,8 +645,8 @@ public: class IntegerAspectPrivate { public: - QVariant m_minimumValue; - QVariant m_maximumValue; + Utils::optional m_minimumValue; + Utils::optional m_maximumValue; int m_displayIntegerBase = 10; qint64 m_displayScaleFactor = 1; QString m_prefix; @@ -1554,15 +1554,15 @@ void IntegerAspect::addToLayout(LayoutBuilder &builder) { QTC_CHECK(!d->m_spinBox); d->m_spinBox = createSubWidget(); - d->m_spinBox->setValue(int(value() / d->m_displayScaleFactor)); d->m_spinBox->setDisplayIntegerBase(d->m_displayIntegerBase); d->m_spinBox->setPrefix(d->m_prefix); d->m_spinBox->setSuffix(d->m_suffix); d->m_spinBox->setSingleStep(d->m_singleStep); d->m_spinBox->setSpecialValueText(d->m_specialValueText); - if (d->m_maximumValue.isValid() && d->m_maximumValue.isValid()) - d->m_spinBox->setRange(int(d->m_minimumValue.toLongLong() / d->m_displayScaleFactor), - int(d->m_maximumValue.toLongLong() / d->m_displayScaleFactor)); + if (d->m_maximumValue && d->m_maximumValue) + d->m_spinBox->setRange(int(d->m_minimumValue.value() / d->m_displayScaleFactor), + int(d->m_maximumValue.value() / d->m_displayScaleFactor)); + d->m_spinBox->setValue(int(value() / d->m_displayScaleFactor)); // Must happen after setRange() addLabeledItem(builder, d->m_spinBox); if (isAutoApply()) { @@ -1674,13 +1674,13 @@ void DoubleAspect::addToLayout(LayoutBuilder &builder) { QTC_CHECK(!d->m_spinBox); d->m_spinBox = createSubWidget(); - d->m_spinBox->setValue(value()); d->m_spinBox->setPrefix(d->m_prefix); d->m_spinBox->setSuffix(d->m_suffix); d->m_spinBox->setSingleStep(d->m_singleStep); d->m_spinBox->setSpecialValueText(d->m_specialValueText); if (d->m_maximumValue && d->m_maximumValue) d->m_spinBox->setRange(d->m_minimumValue.value(), d->m_maximumValue.value()); + d->m_spinBox->setValue(value()); // Must happen after setRange()! addLabeledItem(builder, d->m_spinBox); if (isAutoApply()) {