X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FPipelineEditor%2FPipelineEditor.cxx;h=05dee60e955b10fb76b82e359eaa850c7f574fd0;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=c55920f407ea6b1235c95e645f06c55ff0a1be51;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/appli/PipelineEditor/PipelineEditor.cxx b/appli/PipelineEditor/PipelineEditor.cxx index c55920f..05dee60 100644 --- a/appli/PipelineEditor/PipelineEditor.cxx +++ b/appli/PipelineEditor/PipelineEditor.cxx @@ -1,157 +1,53 @@ -#include -#include +// ========================================================================= +// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) +// ========================================================================= -#include -#include -#include -#include -#include -#include +#include "PipelineEditor.h" +#include // ------------------------------------------------------------------------- PipelineEditor:: -PipelineEditor( int argc, char* argv[], QWidget* parent ) - : Superclass( argc, argv, parent ), - m_UI( new Ui::PipelineEditor ) +PipelineEditor( QWidget* parent ) + : QMainWindow( parent ), + Ui::PipelineEditor( ) { - // Basic configuration - this->m_BaseWindowTitle = "PipelineEditor - "; - this->m_UI->setupUi( this ); - this->setCanvas( this->m_UI->Canvas ); - this->setNavigator( this->m_UI->Navigator ); - this->m_UI->Navigator->Update( ); - - // Connect slots <-> signals - cpBaseQtApplication_ConnectAction( actionLoadDirectory, _loadPluginsFromPath ); - cpBaseQtApplication_ConnectAction( actionLoadLibrary, _loadPlugins ); - cpBaseQtApplication_ConnectAction( actionOpenWorkspace, _loadWorkspace ); - cpBaseQtApplication_ConnectAction( actionSaveWorkspace, _saveWorkspace ); - cpBaseQtApplication_ConnectAction( actionSaveWorkspaceAs, _saveWorkspace ); - cpBaseQtApplication_ConnectAction( actionActorsProperties, _actorsProperties ); - this->m_UI->Canvas->connectOutputPortSlot( - this, SLOT( _slotView( const std::string&, bool ) ) - ); - this->connect( - this->m_UI->actionPrintExecutionInformation, SIGNAL( triggered( bool ) ), - this, SLOT( _slotPrintExecutionInformation( bool ) ) - ); - - // Load command-line given workspace (if any) - if( argc > 1 ) - this->_loadWorkspace( argv[ 1 ] ); + this->setupUi( this ); } // ------------------------------------------------------------------------- PipelineEditor:: ~PipelineEditor( ) { - delete this->m_UI; } // ------------------------------------------------------------------------- -void PipelineEditor:: -_slotView( const std::string& name, bool show ) -{ - typedef cpExtensions::QT::ActorsWidgetInterface _TViewer; - - // Get filter parameters - std::vector< std::string > tokens = - cpPlugins::OS::String::Tokenize( name, "@" ); - if( tokens.size( ) != 2 ) - return; - auto filter_name = tokens[ 1 ]; - auto output_name = tokens[ 0 ]; - - // Process data - if( show ) - { - try - { - auto ws = this->workspace( ); - auto filter = ws->GetFilter( filter_name ); - cpBaseQtApplication_Execute( filter->Update( ) ); - auto image = filter->GetOutputData< vtkImageData >( output_name ); - auto mesh = filter->GetOutputData< vtkPolyData >( output_name ); - _TViewer* viewer = NULL; - if( image != NULL ) - { - int dim = image->GetDataDimension( ); - if( dim == 2 ) - viewer = - this->_configureViewer< cpExtensions::QT::ImageWidget >( - this->m_UI->Viewer - ); - else if( dim == 3 ) - viewer = - this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >( - this->m_UI->Viewer - ); - } - else if( mesh != NULL ) - { - viewer = - this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >( - this->m_UI->Viewer - ); - - } // fi - if( - dynamic_cast< QWidget* >( viewer ) != - dynamic_cast< QWidget* >( this->m_UI->Viewer ) && - viewer != NULL - ) - { - delete this->m_UI->Viewer; - this->m_UI->Viewer = dynamic_cast< QWidget* >( viewer ); - this->m_UI->MainSplitter->insertWidget( 0, this->m_UI->Viewer ); - this->setViewer( viewer ); - - } // fi - if( image != NULL ) - { - this->m_Blocker.block( ); - auto mpr = dynamic_cast< cpExtensions::QT::SimpleMPRWidget* >( viewer ); - auto imv = dynamic_cast< cpExtensions::QT::ImageWidget* >( viewer ); - if( mpr != NULL ) - mpr->SetImage( image, name ); - else if( imv != NULL ) - imv->SetImage( image, name ); - this->m_Blocker.unblock( ); - } - else if( mesh != NULL ) - { - this->m_Blocker.block( ); - auto mpr = dynamic_cast< cpExtensions::QT::SimpleMPRWidget* >( viewer ); - if( mpr != NULL ) - mpr->Add( mesh, name ); - this->m_Blocker.unblock( ); +#include +#include +#include - } // fi - } - catch( std::exception& err ) - { - QMessageBox::critical( - NULL, - QMessageBox::tr( "Error showing data" ), - QMessageBox::tr( err.what( ) ) - ); - - } // yrt - - } // fi -} - -// ------------------------------------------------------------------------- -void PipelineEditor:: -_slotPrintExecutionInformation( bool show ) +int main( int argc, char* argv[] ) { - if( this->m_Workspace.IsNotNull( ) ) - this->m_Workspace->SetPrintExecution( show ); + // TODO: Q_INIT_RESOURCE(application); + + QApplication app( argc, argv ); + QCoreApplication::setOrganizationName( "Creatis-PUJ" ); + QCoreApplication::setApplicationName( "cpPlugins_PipelineEditor" ); + QCoreApplication::setApplicationVersion( "1.0.0" ); + + QCommandLineParser parser; + parser.setApplicationDescription( QCoreApplication::applicationName( ) ); + parser.addHelpOption( ); + parser.addVersionOption( ); + parser.addPositionalArgument( "file", "The file to open." ); + parser.process( app ); + + PipelineEditor win; + /* TODO + if( !parser.positionalArguments( ).isEmpty( ) ) + win.loadFile( parser.positionalArguments( ).first( ) ); + */ + win.show( ); + return( app.exec( ) ); } -// ------------------------------------------------------------------------- -#include -cpBaseQtApplication_Main( PipelineEditor ); -cpBaseQtApplication_MainComplement; - // eof - $RCSfile$