From d8aee0e2a047d7bedcde2e856d3df9dee17b91de Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 23 Jul 2020 09:29:18 +0200 Subject: [PATCH 1/2] QskIntervalF::width fixed --- src/common/QskIntervalF.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/QskIntervalF.h b/src/common/QskIntervalF.h index aa21e1f7..f8295a97 100644 --- a/src/common/QskIntervalF.h +++ b/src/common/QskIntervalF.h @@ -113,7 +113,7 @@ inline constexpr qreal QskIntervalF::upperBound() const noexcept inline constexpr qreal QskIntervalF::width() const noexcept { - return ( m_upperBound > m_lowerBound ) ? m_upperBound - m_upperBound : 0.0; + return ( m_upperBound > m_lowerBound ) ? ( m_upperBound - m_lowerBound ) : 0.0; } inline void QskIntervalF::setWidth( qreal width ) noexcept From 2f69ca4388a0db4a121bc1e7ac48e9e92c70536a Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 23 Jul 2020 09:29:45 +0200 Subject: [PATCH 2/2] QskSkinlet::removeTraillingNodes added --- src/controls/QskPageIndicatorSkinlet.cpp | 7 +------ src/controls/QskSkinlet.cpp | 12 ++++++++++++ src/controls/QskSkinlet.h | 1 + 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/controls/QskPageIndicatorSkinlet.cpp b/src/controls/QskPageIndicatorSkinlet.cpp index 275e1324..f7bea195 100644 --- a/src/controls/QskPageIndicatorSkinlet.cpp +++ b/src/controls/QskPageIndicatorSkinlet.cpp @@ -162,12 +162,7 @@ QSGNode* QskPageIndicatorSkinlet::updateBulletsNode( } // if count has decreased we need to remove superfluous nodes - while ( bulletNode->nextSibling() != nullptr ) - { - auto sibling = bulletNode->nextSibling(); - node->removeChildNode( sibling ); - delete sibling; - } + removeTraillingNodes( node, bulletNode ); return node; } diff --git a/src/controls/QskSkinlet.cpp b/src/controls/QskSkinlet.cpp index 6f27cdf0..40fb0d4c 100644 --- a/src/controls/QskSkinlet.cpp +++ b/src/controls/QskSkinlet.cpp @@ -377,6 +377,18 @@ void QskSkinlet::insertNodeSorted( QSGNode* node, QSGNode* parentNode ) const parentNode->prependChildNode( node ); } +void QskSkinlet::removeTraillingNodes( QSGNode* node, QSGNode* child ) +{ + if ( node && child ) + { + while ( auto sibling = child->nextSibling() ) + { + node->removeChildNode( sibling ); + delete sibling; + } + } +} + void QskSkinlet::setNodeRole( QSGNode* node, quint8 nodeRole ) { qskSetRole( nodeRole, node ); diff --git a/src/controls/QskSkinlet.h b/src/controls/QskSkinlet.h index b717286d..e44be0c6 100644 --- a/src/controls/QskSkinlet.h +++ b/src/controls/QskSkinlet.h @@ -49,6 +49,7 @@ class QSK_EXPORT QskSkinlet static void setNodeRole( QSGNode* node, quint8 nodeRole ); static quint8 nodeRole( const QSGNode* node ); + static void removeTraillingNodes( QSGNode* node, QSGNode* child ); static QSGNode* findNodeByRole( QSGNode* parent, quint8 nodeRole );