Пример #1
0
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;
    }
  }
}
Пример #2
0
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;
    }
  }
}