autoDelete parameter for QskLayout::clear added
This commit is contained in:
parent
d09d08c338
commit
3d80322afe
@ -167,14 +167,26 @@ void QskLayout::removeItem( QQuickItem* item )
|
|||||||
removeAt( indexOf( item ) );
|
removeAt( indexOf( item ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskLayout::clear()
|
void QskLayout::clear( bool autoDelete )
|
||||||
{
|
{
|
||||||
const bool isActive = m_data->isActive;
|
const bool isActive = m_data->isActive;
|
||||||
setActive( false );
|
setActive( false );
|
||||||
|
|
||||||
for ( int i = itemCount() - 1; i >= 0; i-- )
|
for ( int i = itemCount() - 1; i >= 0; i-- )
|
||||||
|
{
|
||||||
|
auto item = itemAtIndex( i );
|
||||||
|
|
||||||
removeAt( i );
|
removeAt( i );
|
||||||
|
|
||||||
|
if( item )
|
||||||
|
{
|
||||||
|
if( autoDelete && ( item->parent() == this ) )
|
||||||
|
delete item;
|
||||||
|
else
|
||||||
|
item->setParentItem( nullptr );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setActive( isActive );
|
setActive( isActive );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,8 @@ class QSK_EXPORT QskLayout : public QskControl
|
|||||||
void removeItem( const QQuickItem* );
|
void removeItem( const QQuickItem* );
|
||||||
Q_INVOKABLE void removeItem( QQuickItem* );
|
Q_INVOKABLE void removeItem( QQuickItem* );
|
||||||
Q_INVOKABLE void removeAt( int index );
|
Q_INVOKABLE void removeAt( int index );
|
||||||
Q_INVOKABLE void clear();
|
|
||||||
|
Q_INVOKABLE void clear( bool autoDelete = false );
|
||||||
|
|
||||||
Q_INVOKABLE void setActive( bool );
|
Q_INVOKABLE void setActive( bool );
|
||||||
Q_INVOKABLE bool isActive() const;
|
Q_INVOKABLE bool isActive() const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user