]> Creatis software - cpPlugins.git/blobdiff - lib/cpPipelineEditor/BaseQtMainWindow.cxx
...
[cpPlugins.git] / lib / cpPipelineEditor / BaseQtMainWindow.cxx
index cf5e41f32b07c686436283ff11e302be651892a2..8a9536b70ddf79140508e03bee159619b021eec3 100644 (file)
@@ -43,22 +43,12 @@ BaseQtMainWindow(
     m_TreeWidget( NULL ),
     m_Editor( NULL )
 {
-  // Prepare plugins interface
+  this->m_Interface.GuessAccesiblePlugins( );
+
+  // Try to load plugins from executable dir
   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( );
-
-  } // fi
+    this->_LoadPluginsFromPath( info.canonicalPath( ).toStdString( ) );
 
   // Prepare workspace
   this->m_Workspace.SetInterface( &( this->m_Interface ) );
@@ -193,7 +183,6 @@ _UpdateLoadedPlugins( )
 
   } // fi
   this->_UnBlock( );
-  this->m_Interface.SaveConfiguration( cpPlugins_CONFIG_FILE );
 }
 
 // -------------------------------------------------------------------------
@@ -256,9 +245,9 @@ _InteractiveLoadPlugins( )
   dlg.setDirectory( this->m_PluginsPath.c_str( ) );
 
   std::stringstream name_filter;
-  std::string suffix = std::string( cpPlugins_PLUGIN_EXT );
+  std::string suffix = std::string( cpPlugins_LIB_EXT );
   name_filter
-    << "Plugins file (*." << cpPlugins_PLUGIN_EXT << ");;All files (*)";
+    << "Plugins file (*." << cpPlugins_LIB_EXT << ");;All files (*)";
   dlg.setNameFilter( name_filter.str( ).c_str( ) );
   dlg.setDefaultSuffix( suffix.c_str( ) );
   if( !( dlg.exec( ) ) )
@@ -319,14 +308,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$