#ifndef __cpBaseQtApplication__MainWindow__h__ #define __cpBaseQtApplication__MainWindow__h__ #include #include #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->m_Blocker.block( ); \ try \ { \ _cmd_; \ this->m_Blocker.unblock( ); \ } \ catch( std::exception& err ) \ { \ this->m_Blocker.unblock( ); \ QMessageBox::critical( \ this, \ QMessageBox::tr( "Error executing filter" ), \ QMessageBox::tr( err.what( ) ) \ ); \ } \ catch( ... ) \ { \ this->m_Blocker.unblock( ); \ QMessageBox::critical( \ this, \ QMessageBox::tr( "Error executing filter" ), \ QMessageBox::tr( "Unknown error" ) \ ); \ } \ this->m_Blocker.unblock( ); \ } // ------------------------------------------------------------------------- namespace cpExtensions { namespace QT { class ActorsWidgetInterface; } } // ------------------------------------------------------------------------- namespace cpBaseQtApplication { namespace Pipeline { class Canvas; } namespace Plugins { class Navigator; } /** */ 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; public: explicit MainWindow( int argc, char* argv[], QWidget* parent = NULL ); virtual ~MainWindow( ); /* TODO 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 ); 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 ); */ TWorkspace* workspace( const std::string& wname ); const TWorkspace* workspace( const std::string& wname ) const; Pipeline::Canvas* canvas( ); const Pipeline::Canvas* canvas( ) const; void setCanvas( Pipeline::Canvas* c ); Plugins::Navigator* navigator( ); const Plugins::Navigator* navigator( ) const; void setNavigator( Plugins::Navigator* n ); cpExtensions::QT::ActorsWidgetInterface* viewer( ); const cpExtensions::QT::ActorsWidgetInterface* viewer( ) const; void setViewer( cpExtensions::QT::ActorsWidgetInterface* v ); /* TODO protected: void _configure( PluginsNavigator* nav, TMPR* mpr, Editor* edt ); void _updatePlugins( ); */ protected slots: void _loadPlugins( const std::string& filename ); void _loadPlugins( ); void _loadPluginsFromPath( const std::string& path ); void _loadPluginsFromPath( ); void _clearWorkspaces( ); virtual void _addWorkspace( const std::string& name ); void _addWorkspace( ); void _saveWorkspace( const std::string& wname, const std::string& fname ); void _saveWorkspace( const std::string& wname, bool force ); void _saveWorkspace( ); void _loadWorkspace( const std::string& fname ); void _loadWorkspace( ); /* TODO 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 _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: Blocker m_Blocker; std::string m_RunPath; TPlugins::Pointer m_Plugins; std::string m_LastSaveFileName; std::map< std::string, TWorkspace::Pointer > m_Workspaces; bool m_SingleWorkspace; std::string m_BaseWindowTitle; Pipeline::Canvas* m_Canvas; Plugins::Navigator* m_Navigator; cpExtensions::QT::ActorsWidgetInterface* m_Viewer; }; } // ecapseman #endif // __cpBaseQtApplication__MainWindow__h__ // eof - $RCSfile$