1 #include <cpBaseQtApplication/Plugins/Navigator.h>
2 #include <cpPlugins/Interface/Plugins.h>
4 // -------------------------------------------------------------------------
5 cpBaseQtApplication::Plugins::Navigator::
6 Navigator( QWidget* parent )
9 this->setDragEnabled( true );
10 this->setDragDropMode( QAbstractItemView::DragOnly );
11 this->setAlternatingRowColors( true );
15 // -------------------------------------------------------------------------
16 cpBaseQtApplication::Plugins::Navigator::
21 // -------------------------------------------------------------------------
22 void cpBaseQtApplication::Plugins::Navigator::
29 // -------------------------------------------------------------------------
30 void cpBaseQtApplication::Plugins::Navigator::
34 this->setColumnCount( 1 );
35 QString header_txt = "Loaded plugins";
36 if( QTreeWidgetItem* header = this->headerItem( ) )
37 header->setText( 0, header_txt );
39 this->setHeaderLabel( header_txt );
42 // -------------------------------------------------------------------------
43 void cpBaseQtApplication::Plugins::Navigator::
46 typedef cpPlugins::Interface::Plugins _TPlugins;
47 _TPlugins::Pointer plugins = _TPlugins::New( );
49 // Iterate over categories and filters
50 auto filters = plugins->GetFilters( );
51 for( auto catIt : filters )
53 const char* c_cat = catIt.first.c_str( );
55 // Create or get category
56 QList< QTreeWidgetItem* > cat_items =
57 this->findItems( c_cat, Qt::MatchExactly | Qt::MatchRecursive );
58 QTreeWidgetItem* cat = NULL;
59 if( cat_items.size( ) == 0 )
61 cat = new QTreeWidgetItem(
62 ( QTreeWidgetItem* )( NULL ), QStringList( c_cat )
64 this->addTopLevelItem( cat );
69 for( auto filIt : catIt.second )
71 const char* c_fil = filIt.first.c_str( );
72 QList< QTreeWidgetItem* > filter_items =
73 this->findItems( c_fil, Qt::MatchExactly | Qt::MatchRecursive );
74 auto i = filter_items.begin( );
75 auto found_i = filter_items.end( );
76 for( ; i != filter_items.end( ); ++i )
77 if( ( *i )->parent( ) == cat )
81 if( found_i == filter_items.end( ) )
82 QTreeWidgetItem* filter = new QTreeWidgetItem(
83 cat, QStringList( c_fil )