diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index f1c79795..844af312 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -437,6 +437,14 @@ qreal QskSkinnable::metric( const QskAspect aspect, QskSkinHintStatus* status ) return qskMetric< qreal >( this, aspect, status ); } +qreal QskSkinnable::metric( QskAspect aspect, qreal defaultValue ) const +{ + QskSkinHintStatus status; + + const auto value = qskMetric< qreal >( this, aspect, &status ); + return status.isValid() ? value : defaultValue; +} + bool QskSkinnable::setPositionHint( QskAspect aspect, qreal position ) { return qskSetMetric( this, aspect | QskAspect::Position, position ); diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index d7ec2d6b..08488ee0 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -175,6 +175,7 @@ class QSK_EXPORT QskSkinnable bool moveMetric( QskAspect, qreal ); bool resetMetric( QskAspect ); qreal metric( QskAspect, QskSkinHintStatus* = nullptr ) const; + qreal metric( QskAspect, qreal defaultValue ) const; bool setFlagHint( QskAspect, int flag ); template< typename T > T flagHint( QskAspect, T = T() ) const;