diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickscrollbar.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp index f20805a8f0..14d4e3a86f 100644 --- a/src/quicktemplates2/qquickscrollbar.cpp +++ b/src/quicktemplates2/qquickscrollbar.cpp @@ -165,7 +165,8 @@ static const QQuickItemPrivate::ChangeTypes verticalChangeTypes = changeTypes | QQuickScrollBarPrivate::VisualArea QQuickScrollBarPrivate::visualArea() const { qreal visualPos = position; - if (minimumSize > size) + + if (minimumSize > size && size != 1.0) visualPos = position / (1.0 - size) * (1.0 - minimumSize); qreal visualSize = qBound<qreal>(0, qMax(size, minimumSize) + qMin<qreal>(0, visualPos), @@ -178,7 +179,7 @@ QQuickScrollBarPrivate::VisualArea QQuickScrollBarPrivate::visualArea() const qreal QQuickScrollBarPrivate::logicalPosition(qreal position) const { - if (minimumSize > size) + if (minimumSize > size && minimumSize != 1.0) return position * (1.0 - size) / (1.0 - minimumSize); return position; } @@ -434,11 +435,11 @@ qreal QQuickScrollBar::size() const void QQuickScrollBar::setSize(qreal size) { Q_D(QQuickScrollBar); - if (qFuzzyCompare(d->size, size)) + if (!qt_is_finite(size) || qFuzzyCompare(d->size, size)) return; auto oldVisualArea = d->visualArea(); - d->size = size; + d->size = qBound(0.0, size, 1.0); if (isComponentComplete()) d->resizeContent(); emit sizeChanged(); @@ -466,7 +467,7 @@ qreal QQuickScrollBar::position() const void QQuickScrollBar::setPosition(qreal position) { Q_D(QQuickScrollBar); - if (qFuzzyCompare(d->position, position)) + if (!qt_is_finite(position) || qFuzzyCompare(d->position, position)) return; auto oldVisualArea = d->visualArea(); @@ -493,7 +494,7 @@ qreal QQuickScrollBar::stepSize() const void QQuickScrollBar::setStepSize(qreal step) { Q_D(QQuickScrollBar); - if (qFuzzyCompare(d->stepSize, step)) + if (!qt_is_finite(step) || qFuzzyCompare(d->stepSize, step)) return; d->stepSize = step; @@ -737,11 +738,11 @@ qreal QQuickScrollBar::minimumSize() const void QQuickScrollBar::setMinimumSize(qreal minimumSize) { Q_D(QQuickScrollBar); - if (qFuzzyCompare(d->minimumSize, minimumSize)) + if (!qt_is_finite(minimumSize) || qFuzzyCompare(d->minimumSize, minimumSize)) return; auto oldVisualArea = d->visualArea(); - d->minimumSize = minimumSize; + d->minimumSize = qBound(0.0, minimumSize, 1.0); if (isComponentComplete()) d->resizeContent(); emit minimumSizeChanged(); |