From 72dfde05a1e0b6c77a2afc3759fd17073acb404f Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 17 Dec 2020 08:52:30 +0100 Subject: [PATCH] extent property fixed --- src/controls/QskProgressBar.cpp | 30 ++++++++++++++++++++++-------- src/controls/QskProgressBar.h | 9 +++++++-- src/controls/QskSeparator.cpp | 2 +- src/controls/QskSeparator.h | 2 +- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/controls/QskProgressBar.cpp b/src/controls/QskProgressBar.cpp index 18580a41..ce14a3d3 100644 --- a/src/controls/QskProgressBar.cpp +++ b/src/controls/QskProgressBar.cpp @@ -188,25 +188,39 @@ QskGradient QskProgressBar::barGradient() const return gradientHint( QskProgressBar::Bar ); } -void QskProgressBar::setThickness( qreal thickness ) +void QskProgressBar::setExtent( qreal extent ) { - // effectiveSubcontrol( QskProgressBar::Groove ) ??? - const auto aspect = QskProgressBar::Groove | QskAspect::Size; + extent = qMax( extent, 0.0 ); - if ( thickness != metric( aspect ) ) + const auto aspect = effectiveSubcontrol( Groove ) | QskAspect::Size; + + if ( extent != metric( aspect ) ) { - setMetric( aspect, thickness ); + setMetric( aspect, extent ); resetImplicitSize(); update(); + + Q_EMIT extentChanged( extent ); } } -qreal QskProgressBar::thickness() const +qreal QskProgressBar::extent() const { return metric( Groove | QskAspect::Size ); } +void QskProgressBar::resetExtent() +{ + if ( resetMetric( Groove | QskAspect::Size ) ) + { + resetImplicitSize(); + update(); + + Q_EMIT extentChanged( extent() ); + } +} + void QskProgressBar::setOrigin( qreal origin ) { if ( isComponentComplete() ) @@ -272,9 +286,9 @@ QSizeF QskProgressBar::contentsSizeHint( Qt::SizeHint which, const QSizeF& ) con return QSizeF(); if ( orientation() == Qt::Horizontal ) - return QSizeF( -1, thickness() ); + return QSizeF( -1, extent() ); else - return QSizeF( thickness(), -1 ); + return QSizeF( extent(), -1 ); } void QskProgressBar::componentComplete() diff --git a/src/controls/QskProgressBar.h b/src/controls/QskProgressBar.h index 5565152f..4185cad4 100644 --- a/src/controls/QskProgressBar.h +++ b/src/controls/QskProgressBar.h @@ -17,6 +17,9 @@ class QSK_EXPORT QskProgressBar : public QskBoundedControl Q_PROPERTY( Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged ) + Q_PROPERTY( qreal extent READ extent + WRITE setExtent RESET resetExtent NOTIFY extentChanged ) + Q_PROPERTY( bool indeterminate READ isIndeterminate WRITE setIndeterminate NOTIFY indeterminateChanged ) @@ -52,8 +55,9 @@ class QSK_EXPORT QskProgressBar : public QskBoundedControl void resetBarGradient(); QskGradient barGradient() const; - void setThickness( qreal ); - qreal thickness() const; + void setExtent( qreal ); + void resetExtent(); + qreal extent() const; void resetOrigin(); qreal origin() const; @@ -69,6 +73,7 @@ class QSK_EXPORT QskProgressBar : public QskBoundedControl Q_SIGNALS: void orientationChanged( Qt::Orientation ); + void extentChanged( qreal ); void indeterminateChanged( bool ); void valueChanged( qreal ); void originChanged( qreal ); diff --git a/src/controls/QskSeparator.cpp b/src/controls/QskSeparator.cpp index 5db2e209..983faef1 100644 --- a/src/controls/QskSeparator.cpp +++ b/src/controls/QskSeparator.cpp @@ -54,7 +54,7 @@ void QskSeparator::setExtent( qreal extent ) { extent = qMax( extent, 0.0 ); - const auto aspect = Panel | QskAspect::Size; + const auto aspect = effectiveSubcontrol( Panel ) | QskAspect::Size; if ( extent != metric( aspect ) ) { diff --git a/src/controls/QskSeparator.h b/src/controls/QskSeparator.h index 5dcd89c6..fcb95199 100644 --- a/src/controls/QskSeparator.h +++ b/src/controls/QskSeparator.h @@ -31,7 +31,7 @@ class QSK_EXPORT QskSeparator : public QskControl void setOrientation( Qt::Orientation ); Qt::Orientation orientation() const; - void setExtent( qreal thickness ); + void setExtent( qreal ); void resetExtent(); qreal extent() const;