]> Creatis software - cpPlugins.git/blobdiff - lib/cpPipelineEditor/BaseQtMainWindow.cxx
...
[cpPlugins.git] / lib / cpPipelineEditor / BaseQtMainWindow.cxx
index cf5e41f32b07c686436283ff11e302be651892a2..b600c0ee12002dc33e7c09d49fec0a8cc5bf2ec7 100644 (file)
@@ -43,22 +43,16 @@ BaseQtMainWindow(
     m_TreeWidget( NULL ),
     m_Editor( NULL )
 {
-  // Prepare plugins interface
+  this->m_Interface.GuessAccesiblePlugins( );
+
   QFileInfo info( argv[ 0 ] );
   if( info.exists( ) )
   {
-    this->m_Interface.LoadConfiguration( cpPlugins_CONFIG_FILE );
-    this->_LoadPluginsFromPath( this->m_PluginsPath );
-    this->m_PluginsPath = info.canonicalPath( ).toStdString( );
-
-  } // fi
-  QDir exec_dir( "." );
-  if( exec_dir.exists( ) )
-  {
-    this->_LoadPluginsFromPath( exec_dir.canonicalPath( ).toStdString( ) );
-    this->m_PluginsPath = exec_dir.canonicalPath( ).toStdString( );
+    auto exec_dir = info.canonicalPath( ).toStdString( );
+    this->_LoadPluginsFromPath( exec_dir );
 
   } // fi
+  this->_UpdateLoadedPlugins( );
 
   // Prepare workspace
   this->m_Workspace.SetInterface( &( this->m_Interface ) );
@@ -319,14 +313,39 @@ void cpPipelineEditor::BaseQtMainWindow::
 _ExecFilter( const std::string& filter_name )
 {
   this->_Block( );
-  std::string err = this->m_Workspace.Execute( filter_name );
-  this->_UnBlock( );
-  if( err != "" )
+  try
+  {
+    this->m_Workspace.Execute( filter_name );
+    this->_UnBlock( );
+  }
+  catch( itk::ExceptionObject& err1 )
+  {
+    this->_UnBlock( );
     QMessageBox::critical(
       this,
       QMessageBox::tr( "Error executing filter" ),
-      QMessageBox::tr( err.c_str( ) )
+      QMessageBox::tr( err1.GetDescription( ) )
       );
+  }
+  catch( std::exception& err2 )
+  {
+    this->_UnBlock( );
+    QMessageBox::critical(
+      this,
+      QMessageBox::tr( "Error executing filter" ),
+      QMessageBox::tr( err2.what( ) )
+      );
+  }
+  catch( ... )
+  {
+    this->_UnBlock( );
+    QMessageBox::critical(
+      this,
+      QMessageBox::tr( "Error executing filter" ),
+      QMessageBox::tr( "Unknown error" )
+      );
+
+  } // yrt
 }
 
 // eof - $RCSfile$