#ifndef __cpBaseQtApplication__MainWindow__h__ #define __cpBaseQtApplication__MainWindow__h__ #include #include #include #include // ------------------------------------------------------------------------- #define cpBaseQtApplication_ConnectAction( _act_, _slt_ ) \ this->connect( \ this->m_UI->_act_, SIGNAL( triggered( ) ), this, SLOT( _slt_( ) ) \ ) // ------------------------------------------------------------------------- #define cpBaseQtApplication_Execute( _cmd_ ) \ { \ this->_block( ); \ try \ { \ _cmd_; \ this->_unBlock( ); \ } \ catch( itk::ExceptionObject& err1 ) \ { \ this->_unBlock( ); \ QMessageBox::critical( \ this, \ QMessageBox::tr( "Error executing filter" ), \ 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" ) \ ); \ } \ this->_unBlock( ); \ } // ------------------------------------------------------------------------- namespace cpExtensions { namespace QT { class SimpleMPRWidget; } } // ------------------------------------------------------------------------- namespace cpBaseQtApplication { class Editor; class PluginsNavigator; /** */ class cpBaseQtApplication_EXPORT MainWindow : public QMainWindow { Q_OBJECT; public: typedef MainWindow Self; typedef QMainWindow Superclass; typedef cpPlugins::Interface::Plugins TPlugins; typedef cpPlugins::Interface::Workspace TWorkspace; typedef cpExtensions::QT::SimpleMPRWidget TMPR; protected: /** */ class _TBlocker : public QObject { protected: virtual bool eventFilter( QObject* obj, QEvent* event ) cpPlugins_OVERRIDE; }; public: explicit MainWindow( int argc, char* argv[], QApplication* app, QWidget* parent = NULL ); virtual ~MainWindow( ); void updateEnvironment( ); void updateFilter( const std::string& name ); void showData( const std::string& name, const std::string& port ); void showData( cpPlugins::BaseObjects::DataObject* data, const std::string& name ); /* TODO void hideData( const std::string& name, const std::string& port ); void hideData( const std::string& name ); */ void dataProperties( const std::string& name, const std::string& port ); void dataProperties( const std::string& name ); protected: void _block( ); void _unBlock( ); void _configure( PluginsNavigator* nav, TMPR* mpr, Editor* edt ); void _updatePlugins( ); protected slots: void _loadWorkspace( const std::string& filename ); void _loadWorkspace( ); void _saveWorkspace( const std::string& filename ); void _saveWorkspace( ); void _showPlugins( ); void _addEnvironmentPaths( const std::string& envs ); void _addEnvironmentPaths( ); void _loadPlugins( const std::string& filename ); void _loadPlugins( ); void _loadPluginsFromPath( const std::string& path ); void _loadPluginsFromPath( ); void _actorsProperties( ); /* TODO void _ClearWorkspace( ); void _LoadPlugins( const std::string& filename ); void _LoadPluginsFromPath( const std::string& path ); void _LoadWorkspace( const std::string& filename ); void _SaveWorkspace( const std::string& filename ); void _BackgroundProperties( unsigned int i ); void _DataProperties( const std::string& actor ); void _AddEnviromentPaths( ); void _LoadPlugins( ); void _LoadPluginsFromPath( ); void _ShowPlugins( ); void _LoadWorkspace( ); void _SaveWorkspace( ); void _DataProperties( const std::string& filter_name, const std::string& output_name ); */ protected: QApplication* m_Application; _TBlocker m_Blocker; std::string m_RunPath; TPlugins::Pointer m_Plugins; TWorkspace::Pointer m_Workspace; PluginsNavigator* m_Navigator; Editor* m_Editor; TMPR* m_MPR; /* TODO */ }; } // ecapseman #endif // __cpBaseQtApplication__MainWindow__h__ // eof - $RCSfile$