QskSkinlet::removeTraillingNodes added

This commit is contained in:
Uwe Rathmann 2020-07-23 09:29:45 +02:00
parent d8aee0e2a0
commit 2f69ca4388
3 changed files with 14 additions and 6 deletions

View File

@ -162,12 +162,7 @@ QSGNode* QskPageIndicatorSkinlet::updateBulletsNode(
} }
// if count has decreased we need to remove superfluous nodes // if count has decreased we need to remove superfluous nodes
while ( bulletNode->nextSibling() != nullptr ) removeTraillingNodes( node, bulletNode );
{
auto sibling = bulletNode->nextSibling();
node->removeChildNode( sibling );
delete sibling;
}
return node; return node;
} }

View File

@ -377,6 +377,18 @@ void QskSkinlet::insertNodeSorted( QSGNode* node, QSGNode* parentNode ) const
parentNode->prependChildNode( node ); 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 ) void QskSkinlet::setNodeRole( QSGNode* node, quint8 nodeRole )
{ {
qskSetRole( nodeRole, node ); qskSetRole( nodeRole, node );

View File

@ -49,6 +49,7 @@ class QSK_EXPORT QskSkinlet
static void setNodeRole( QSGNode* node, quint8 nodeRole ); static void setNodeRole( QSGNode* node, quint8 nodeRole );
static quint8 nodeRole( const QSGNode* node ); static quint8 nodeRole( const QSGNode* node );
static void removeTraillingNodes( QSGNode* node, QSGNode* child );
static QSGNode* findNodeByRole( QSGNode* parent, quint8 nodeRole ); static QSGNode* findNodeByRole( QSGNode* parent, quint8 nodeRole );