void QgsGrassTools::removeEmptyItems( QTreeWidget *tree ) { // Clean tree nodes without children for ( int i = tree->topLevelItemCount() - 1; i >= 0; i-- ) { QTreeWidgetItem *sub = tree->topLevelItem( i ); removeEmptyItems( sub ); if ( sub->childCount() == 0 ) { tree->removeItemWidget( sub, 0 ); tree->takeTopLevelItem( i ); delete sub; } } }
void QgsGrassTools::removeEmptyItems( QTreeWidgetItem *item ) { for ( int i = item->childCount() - 1; i >= 0; i-- ) { QTreeWidgetItem *sub = item->child( i ); QString name = sub->text( 1 ); //module name if ( !name.isEmpty() ) continue; // module removeEmptyItems( sub ); if ( sub->childCount() == 0 ) { item->removeChild( sub ); delete sub; } } }