-#ifndef __CPBASEQTAPPLICATION__MAINWINDOW__H__
-#define __CPBASEQTAPPLICATION__MAINWINDOW__H__
+#ifndef __cpBaseQtApplication__MainWindow__h__
+#define __cpBaseQtApplication__MainWindow__h__
#include <cpBaseQtApplication_Export.h>
#include <QMainWindow>
-#include <cpPlugins/Interface.h>
-#include <cpPlugins/Workspace.h>
+#include <QMessageBox>
+#include <cpPlugins/Interface/Plugins.h>
+#include <cpPlugins/Interface/Workspace.h>
+#include <cpBaseQtApplication/Blocker.h>
// -------------------------------------------------------------------------
-#define cpBaseQtApplication_ConnectAction( _action_, _slot_ ) \
+#define cpBaseQtApplication_ConnectAction( _act_, _slt_ ) \
this->connect( \
- this->m_UI->_action_, SIGNAL( triggered( ) ), \
- this, SLOT( _slot_( ) ) \
+ this->m_UI->_act_, SIGNAL( triggered( ) ), this, SLOT( _slt_( ) ) \
)
// -------------------------------------------------------------------------
-#define cpBaseQtApplication_Execute( _command_ ) \
- this->_Block( ); \
- try \
+#define cpBaseQtApplication_Execute( _cmd_ ) \
{ \
- _command_; \
- 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;
+ 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( ); \
}
-}
-class QTreeWidget;
+// -------------------------------------------------------------------------
+namespace cpExtensions { namespace QT { class ActorsWidgetInterface; } }
+
+// -------------------------------------------------------------------------
namespace cpBaseQtApplication
{
- class Editor;
+ namespace Pipeline { class Canvas; }
+ namespace Plugins { class Navigator; }
/**
*/
typedef MainWindow Self;
typedef QMainWindow Superclass;
- protected:
- /**
- */
- class _TBlocker
- : public QObject
- {
- protected:
- virtual bool eventFilter( QObject* obj, QEvent* event ) ITK_OVERRIDE;
- };
+ typedef cpPlugins::Interface::Plugins TPlugins;
+ typedef cpPlugins::Interface::Workspace TWorkspace;
public:
explicit MainWindow(
int argc, char* argv[],
- QApplication* app,
QWidget* parent = NULL
);
virtual ~MainWindow( );
- void UpdateEnvironment( );
+ TWorkspace* workspace( );
+ const TWorkspace* workspace( ) const;
- protected:
- void _Configure(
- QTreeWidget* tree,
- cpExtensions::QT::SimpleMPRWidget* mpr,
- cpBaseQtApplication::Editor* editor
- );
- void _ClearWorkspace( );
- void _AddEnvironments( const std::string& environments );
- void _LoadPlugins( const std::string& filename );
- void _LoadPluginsFromPath( const std::string& path );
- void _UpdateLoadedPlugins( );
- void _Block( );
- void _UnBlock( );
+ 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 );
- void _LoadWorkspace( const std::string& filename );
- void _SaveWorkspace( const std::string& filename );
+ cpExtensions::QT::ActorsWidgetInterface* viewer( );
+ const cpExtensions::QT::ActorsWidgetInterface* viewer( ) const;
+ void setViewer( cpExtensions::QT::ActorsWidgetInterface* v );
- void _BackgroundProperties( unsigned int i );
- void _DataProperties( const std::string& actor );
+ protected:
+ template< class _TViewer >
+ _TViewer* _configureViewer( QWidget* w )
+ {
+ _TViewer* v = dynamic_cast< _TViewer* >( w );
+ if( v == NULL )
+ v = new _TViewer( );
+ return( v );
+ }
protected slots:
- void _InteractiveLoadPlugins( );
- void _InteractiveLoadPluginsFromPath( );
- void _ShowPlugins( );
- void _InteractiveLoadWorkspace( );
- void _InteractiveSaveWorkspace( );
- void _InteractiveAddEnviromentPaths( );
- void _ExecFilter( const std::string& filter_name );
- void _ShowData(
- const std::string& filter_name, const std::string& output_name
- );
- void _HideData(
- const std::string& filter_name, const std::string& output_name
- );
- void _DataProperties(
- const std::string& filter_name, const std::string& output_name
- );
+ void _loadPlugins( const std::string& filename );
+ void _loadPlugins( );
+ void _loadPluginsFromPath( const std::string& path );
+ void _loadPluginsFromPath( );
+
+ void _clearWorkspace( );
+
+ void _saveWorkspace( const std::string& fname );
+ void _saveWorkspace( );
+
+ void _loadWorkspace( const std::string& fname );
+ void _loadWorkspace( );
+
+ void _actorsProperties( );
protected:
- QApplication* m_Application;
- _TBlocker m_Blocker;
- std::string m_PluginsPath;
+ Blocker m_Blocker;
+ std::string m_RunPath;
+ TPlugins::Pointer m_Plugins;
+ std::string m_LastSaveFileName;
+ TWorkspace::Pointer m_Workspace;
- std::string m_RunPath;
- cpPlugins::Interface m_Interface;
- cpPlugins::Workspace m_Workspace;
+ std::string m_BaseWindowTitle;
- QTreeWidget* m_TreeWidget;
- Editor* m_Editor;
- cpExtensions::QT::SimpleMPRWidget* m_MPR;
+ Pipeline::Canvas* m_Canvas;
+ Plugins::Navigator* m_Navigator;
+ cpExtensions::QT::ActorsWidgetInterface* m_Viewer;
};
} // ecapseman
-#endif // __CPBASEQTAPPLICATION__MAINWINDOW__H__
+#endif // __cpBaseQtApplication__MainWindow__h__
// eof - $RCSfile$