From 204a07cb931ece92dece7c6d8b8c51922cc3cd61 Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Thu, 12 Mar 2015 18:43:36 +0000 Subject: [PATCH] Fix disabling contents when there is not subwindow selected --- app/DialogSubWindowSelector.cpp | 5 ----- app/QualityHandle.cpp | 17 ++++++++++++----- app/QualityHandle.h | 3 ++- app/QualityMeasurementSidebar.cpp | 9 ++++++++- app/QualityMeasurementSidebar.h | 2 ++ 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/DialogSubWindowSelector.cpp b/app/DialogSubWindowSelector.cpp index 060617e..0b7d191 100644 --- a/app/DialogSubWindowSelector.cpp +++ b/app/DialogSubWindowSelector.cpp @@ -107,11 +107,6 @@ DialogSubWindowSelector::DialogSubWindowSelector( QWidget *parent, PlaYUVerSubWi connect( m_pushButtonRemoveAll, SIGNAL( clicked() ), this, SLOT( removeAllSubWindow() ) ); QMetaObject::connectSlotsByName( this ); -// SubWindowHandle* activeSubWindow = qobject_cast( m_pcMainWindowMdiArea->activeSubWindow() ); -// if( activeSubWindow->getCategory() == SubWindowHandle::VIDEO_SUBWINDOW ) -// { -// m_pcSelectedWindowListNames.append( activeSubWindow->getWindowName() ); -// } updateSubWindowList(); } diff --git a/app/QualityHandle.cpp b/app/QualityHandle.cpp index 497fd3b..0230970 100644 --- a/app/QualityHandle.cpp +++ b/app/QualityHandle.cpp @@ -64,18 +64,18 @@ Void QualityHandle::createActions() m_arrayActions.resize( TOTAL_ACT ); m_arrayActions[SELECT_REF_ACT] = new QAction( "Select Reference", this ); connect( m_arrayActions[SELECT_REF_ACT], SIGNAL( triggered() ), this, SLOT( slotSelectReference() ) ); - m_arrayActions[CREATE_PLOT] = new QAction( "CREATE_PLOT", this ); - connect( m_arrayActions[CREATE_PLOT], SIGNAL( triggered() ), this, SLOT( slotCreatePlot() ) ); + m_arrayActions[PLOT_QUALITY] = new QAction( "CREATE_PLOT", this ); + connect( m_arrayActions[PLOT_QUALITY], SIGNAL( triggered() ), this, SLOT( slotCreatePlot() ) ); } QMenu* QualityHandle::createMenu() { m_pcMenuQuality = new QMenu( "Quality", this ); - QMenu* metricsSubMenu = m_pcMenuQuality->addMenu( "Quality Metrics" ); - metricsSubMenu->addActions( m_actionGroupQualityMetric->actions() ); + m_pcSubMenuQualityMetrics = m_pcMenuQuality->addMenu( "Quality Metrics" ); + m_pcSubMenuQualityMetrics->addActions( m_actionGroupQualityMetric->actions() ); m_pcMenuQuality->addAction( m_arrayActions[SELECT_REF_ACT] ); m_pcMenuQuality->addSeparator(); - //m_pcMenuQuality->addAction( m_arrayActions[CREATE_PLOT] ); + //m_pcMenuQuality->addAction( m_arrayActions[PLOT_QUALITY] ); return m_pcMenuQuality; } @@ -96,7 +96,14 @@ QDockWidget* QualityHandle::createDock() Void QualityHandle::updateMenus() { + VideoSubWindow* pcSubWindow = qobject_cast( m_pcMainWindowManager->activeSubWindow() ); + Bool hasSubWindow = pcSubWindow ? true : false; + m_pcSubMenuQualityMetrics->setEnabled( hasSubWindow ); + m_arrayActions[SELECT_REF_ACT]->setEnabled( hasSubWindow ); + m_arrayActions[PLOT_QUALITY]->setEnabled( hasSubWindow ); + + m_pcQualityHandleSideBar->updateSideBar( hasSubWindow ); } Void QualityHandle::readSettings() diff --git a/app/QualityHandle.h b/app/QualityHandle.h index 1659dda..faa42d5 100644 --- a/app/QualityHandle.h +++ b/app/QualityHandle.h @@ -64,7 +64,7 @@ private: enum { SELECT_REF_ACT, - CREATE_PLOT, + PLOT_QUALITY, TOTAL_ACT, }; QVector m_arrayActions; @@ -73,6 +73,7 @@ private: Int m_iQualityMetricIdx; QMenu* m_pcMenuQuality; + QMenu* m_pcSubMenuQualityMetrics; QDockWidget* m_pcQualityHandleDock; QualityMeasurementSidebar* m_pcQualityHandleSideBar; diff --git a/app/QualityMeasurementSidebar.cpp b/app/QualityMeasurementSidebar.cpp index b55e4bf..3b2cf01 100644 --- a/app/QualityMeasurementSidebar.cpp +++ b/app/QualityMeasurementSidebar.cpp @@ -48,7 +48,7 @@ QualityMeasurementSidebar::QualityMeasurementSidebar( QWidget* parent, PlaYUVerS RecLabel->setAlignment( Qt::AlignVCenter | Qt::AlignRight ); m_comboBoxMetric = new QComboBox; - for( UInt i=0; iinsertItem( i, PlaYUVerFrame::supportedQualityMetricsList()[i].c_str() ); } @@ -120,6 +120,13 @@ QSize QualityMeasurementSidebar::sizeHint() const return currSize; } +Void QualityMeasurementSidebar::updateSideBar( Bool hasSubWindow ) +{ + if( !hasSubWindow ) + m_comboBoxRef->clear(); + setEnabled( hasSubWindow ); +} + Void QualityMeasurementSidebar::updateSubWindowList() { QString currSubWindowName; diff --git a/app/QualityMeasurementSidebar.h b/app/QualityMeasurementSidebar.h index d1c2531..e94e3e1 100644 --- a/app/QualityMeasurementSidebar.h +++ b/app/QualityMeasurementSidebar.h @@ -52,6 +52,8 @@ public: QSize sizeHint() const; + Void updateSideBar( Bool hasSubWindow ); + Void updateSubWindowList(); Void updateCurrentWindow( VideoSubWindow * ); Void updateSidebarData();