From f5ece2ff31d45df9276bbd9a73d18600e3d80d3f Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sat, 10 May 2014 01:26:54 +0100 Subject: [PATCH] Add a disable all button in Modules Handle --- source/app/ModulesHandle.cpp | 23 ++++++++++++++++++----- source/app/ModulesHandle.h | 13 +++++++++++-- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/source/app/ModulesHandle.cpp b/source/app/ModulesHandle.cpp index f73cd87..426906f 100644 --- a/source/app/ModulesHandle.cpp +++ b/source/app/ModulesHandle.cpp @@ -69,7 +69,7 @@ void ModulesHandle::selectModule( int index ) SubWindowHandle* ModulesHandle::toggleSelectedModuleIf( SubWindowHandle* pcSubWindow ) { - Bool bShowModulesNewWindow = m_pcForceNewWindowAction->isChecked(); + Bool bShowModulesNewWindow = m_arrayActions[FORCE_NEW_WINDOW_ACT]->isChecked(); SubWindowHandle* interfaceChild = NULL; PlaYUVerModuleIf* currModuleIf = NULL; @@ -128,12 +128,22 @@ Void ModulesHandle::destroyModuleIf( PlaYUVerModuleIf *pcCurrModuleIf ) pcCurrModuleIf->destroy(); } +Void ModulesHandle::destroyAllModulesIf() +{ + for( Int i = 0; i < m_pcPlaYUVerModules.size(); i++ ) + { + destroyModuleIf( m_pcPlaYUVerModules.at( i ) ); + } +} + QMenu* ModulesHandle::createMenus( QMenuBar *MainAppMenuBar ) { PlaYUVerModuleIf* currModuleIf; QAction* currAction; QMenu* currSubMenu; + m_arrayActions.resize( MODULES_TOTAL_ACT ); + m_pcActionMapper = new QSignalMapper( this ); connect( m_pcActionMapper, SIGNAL( mapped(int) ), this, SLOT( selectModule(int) ) ); @@ -178,12 +188,15 @@ QMenu* ModulesHandle::createMenus( QMenuBar *MainAppMenuBar ) currModuleIf->m_pcAction = currAction; } - m_pcForceNewWindowAction = new QAction( "Use New Window", parent() ); - m_pcForceNewWindowAction->setStatusTip( "Show module result in a new window. Some modules already force this feature" ); - m_pcForceNewWindowAction->setCheckable( true ); + m_arrayActions[DISABLE_ALL_ACT] = new QAction( "Disable All Modules", parent() ); + connect( m_arrayActions[DISABLE_ALL_ACT], SIGNAL( triggered() ), this, SLOT( destroyAllModulesIf() ) ); + m_arrayActions[FORCE_NEW_WINDOW_ACT] = new QAction( "Use New Window", parent() ); + m_arrayActions[FORCE_NEW_WINDOW_ACT]->setStatusTip( "Show module result in a new window. Some modules already force this feature" ); + m_arrayActions[FORCE_NEW_WINDOW_ACT]->setCheckable( true ); m_pcModulesMenu->addSeparator(); - m_pcModulesMenu->addAction( m_pcForceNewWindowAction ); + m_pcModulesMenu->addAction( m_arrayActions[DISABLE_ALL_ACT] ); + m_pcModulesMenu->addAction( m_arrayActions[FORCE_NEW_WINDOW_ACT] ); return m_pcModulesMenu; } diff --git a/source/app/ModulesHandle.h b/source/app/ModulesHandle.h index b656a4f..9fdedab 100644 --- a/source/app/ModulesHandle.h +++ b/source/app/ModulesHandle.h @@ -54,7 +54,6 @@ public: QMenu* createMenus( QMenuBar *MainAppMenuBar ); Void updateMenus( Bool hasSubWindow ); SubWindowHandle* toggleSelectedModuleIf( SubWindowHandle* pcSubWindow ); - Void destroyModuleIf( PlaYUVerModuleIf* pcCurrModuleIf ); private: QWidget *m_pcParent; @@ -66,13 +65,23 @@ private: QList m_pcPlaYUVerModules; QSignalMapper* m_pcActionMapper; QVector m_arrayModulesActions; - QAction *m_pcForceNewWindowAction; + + enum MODULES_ACTION_LIST + { + FORCE_NEW_WINDOW_ACT=0, + DISABLE_ALL_ACT, + MODULES_TOTAL_ACT + }; + QVector m_arrayActions; Void appendModule( PlaYUVerModuleIf* ); Void ModulesList( Bool bCreate ); + Void destroyModuleIf( PlaYUVerModuleIf* pcCurrModuleIf ); + private Q_SLOTS: void selectModule( int index ); + void destroyAllModulesIf(); }; } // NAMESPACE