void ModuleView::loadModule( QModelIndex menuItem ) { if ( !menuItem.isValid() ) { return; } QList<QModelIndex> indexes; for ( int done = 0; menuItem.model()->rowCount( menuItem ) > done; done = 1 + done ) { indexes << menuItem.model()->index( done, 0, menuItem ); } if ( indexes.empty() ) { indexes << menuItem; } foreach ( QModelIndex module, indexes ) { MenuItem *menuItem = module.data( Qt::UserRole ).value<MenuItem*>(); addModule( &menuItem->item() ); }