+++ /dev/null
-#include <cpBaseQtApplication/Plugins/Navigator.h>
-#include <cpPlugins/Interface/Plugins.h>
-
-// -------------------------------------------------------------------------
-cpBaseQtApplication::Plugins::Navigator::
-Navigator( QWidget* parent )
- : Superclass( parent )
-{
- this->setDragEnabled( true );
- this->setDragDropMode( QAbstractItemView::DragOnly );
- this->setAlternatingRowColors( true );
- this->_Clear( );
-}
-
-// -------------------------------------------------------------------------
-cpBaseQtApplication::Plugins::Navigator::
-~Navigator( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpBaseQtApplication::Plugins::Navigator::
-Update( )
-{
- this->_Clear( );
- this->_Update( );
-}
-
-// -------------------------------------------------------------------------
-void cpBaseQtApplication::Plugins::Navigator::
-_Clear( )
-{
- this->clear( );
- this->setColumnCount( 1 );
- QString header_txt = "Loaded plugins";
- if( QTreeWidgetItem* header = this->headerItem( ) )
- header->setText( 0, header_txt );
- else
- this->setHeaderLabel( header_txt );
-}
-
-// -------------------------------------------------------------------------
-void cpBaseQtApplication::Plugins::Navigator::
-_Update( )
-{
- typedef cpPlugins::Interface::Plugins _TPlugins;
- _TPlugins::Pointer plugins = _TPlugins::New( );
-
- // Iterate over categories and filters
- auto filters = plugins->GetFilters( );
- for( auto catIt : filters )
- {
- const char* c_cat = catIt.first.c_str( );
-
- // Create or get category
- QList< QTreeWidgetItem* > cat_items =
- this->findItems( c_cat, Qt::MatchExactly | Qt::MatchRecursive );
- QTreeWidgetItem* cat = NULL;
- if( cat_items.size( ) == 0 )
- {
- cat = new QTreeWidgetItem(
- ( QTreeWidgetItem* )( NULL ), QStringList( c_cat )
- );
- this->addTopLevelItem( cat );
- }
- else
- cat = cat_items[ 0 ];
-
- for( auto filIt : catIt.second )
- {
- const char* c_fil = filIt.first.c_str( );
- QList< QTreeWidgetItem* > filter_items =
- this->findItems( c_fil, Qt::MatchExactly | Qt::MatchRecursive );
- auto i = filter_items.begin( );
- auto found_i = filter_items.end( );
- for( ; i != filter_items.end( ); ++i )
- if( ( *i )->parent( ) == cat )
- found_i = i;
-
- // Add filter
- if( found_i == filter_items.end( ) )
- QTreeWidgetItem* filter = new QTreeWidgetItem(
- cat, QStringList( c_fil )
- );
-
- } // rof
-
- } // rof
- this->expandAll( );
-}
-
-// eof - $RCSfile$