From 4bfcf869622af2af2442c586f97b2f2e24b5b26f Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 11 Oct 2019 08:54:23 +0200 Subject: [PATCH] #4847 Move setFixedWindowSizeFor3dViews to RiuMainWindowTools --- .../Application/RiaGuiApplication.cpp | 3 +- .../Tools/RiaRegressionTestRunner.cpp | 66 ++----------------- .../Tools/RiaRegressionTestRunner.h | 1 - .../UserInterface/RiuMainWindowTools.cpp | 66 +++++++++++++++---- .../UserInterface/RiuMainWindowTools.h | 2 + 5 files changed, 63 insertions(+), 75 deletions(-) diff --git a/ApplicationCode/Application/RiaGuiApplication.cpp b/ApplicationCode/Application/RiaGuiApplication.cpp index 7d3810e65a..7df8a2292f 100644 --- a/ApplicationCode/Application/RiaGuiApplication.cpp +++ b/ApplicationCode/Application/RiaGuiApplication.cpp @@ -867,8 +867,7 @@ RiaApplication::ApplicationStatus RiaGuiApplication::handleArguments( cvf::Progr if ( snapshotHeight > -1 && snapshotWidth > -1 ) { - QSize windowSize( snapshotWidth, snapshotHeight ); - RiaRegressionTestRunner::setFixedWindowSizeFor3dViews( windowSize ); + RiuMainWindowTools::setFixedWindowSizeFor3dViews( mainWnd, snapshotWidth, snapshotHeight ); } processEvents(); diff --git a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp index 0d858c0bd5..22813325ae 100644 --- a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp +++ b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp @@ -34,6 +34,7 @@ #include "RimProject.h" #include "RiuMainWindow.h" +#include "RiuMainWindowTools.h" #include "RiuPlotMainWindow.h" #include "RiuViewer.h" @@ -469,47 +470,14 @@ void RiaRegressionTestRunner::removeDirectoryWithContent( QDir& dirToDelete ) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RiaRegressionTestRunner::setFixedWindowSizeFor3dViews( const QSize& snapshotImageSize ) +void RiaRegressionTestRunner::setDefaultFixedWindowSizeFor3dViews() { RiuMainWindow* mainWnd = RiuMainWindow::instance(); if ( !mainWnd ) return; - RimProject* proj = RiaApplication::instance()->project(); - if ( !proj ) return; + QSize defaultSize = RiaRegressionTestRunner::regressionDefaultImageSize(); - std::vector projectCases; - proj->allCases( projectCases ); - - for ( RimCase* cas : projectCases ) - { - if ( !cas ) continue; - - std::vector views = cas->views(); - - for ( Rim3dView* riv : views ) - { - if ( riv && riv->viewer() ) - { - // Make sure all views are maximized for snapshotting - QMdiSubWindow* subWnd = mainWnd->findMdiSubWindow( riv->viewer()->layoutWidget() ); - if ( subWnd ) - { - subWnd->showMaximized(); - } - - // This size is set to match the regression test reference images - riv->viewer()->setFixedSize( snapshotImageSize ); - } - } - } -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RiaRegressionTestRunner::setDefaultFixedWindowSizeFor3dViews() -{ - setFixedWindowSizeFor3dViews( RiaRegressionTestRunner::regressionDefaultImageSize() ); + RiuMainWindowTools::setFixedWindowSizeFor3dViews( mainWnd, defaultSize.width(), defaultSize.height() ); } //-------------------------------------------------------------------------------------------------- @@ -517,34 +485,12 @@ void RiaRegressionTestRunner::setDefaultFixedWindowSizeFor3dViews() //-------------------------------------------------------------------------------------------------- void RiaRegressionTestRunner::resizePlotWindows() { - RimProject* proj = RiaApplication::instance()->project(); - if ( !proj ) return; - RiuPlotMainWindow* plotMainWindow = RiaGuiApplication::instance()->mainPlotWindow(); if ( !plotMainWindow ) return; - std::vector viewWindows; + QSize defaultSize = RiaRegressionTestRunner::regressionDefaultImageSize(); - proj->mainPlotCollection()->descendantsIncludingThisOfType( viewWindows ); - - for ( auto viewWindow : viewWindows ) - { - if ( viewWindow->isMdiWindow() ) - { - QWidget* viewWidget = viewWindow->viewWidget(); - - if ( viewWidget ) - { - QMdiSubWindow* mdiWindow = plotMainWindow->findMdiSubWindow( viewWidget ); - if ( mdiWindow ) - { - mdiWindow->showNormal(); - - viewWidget->resize( RiaRegressionTestRunner::regressionDefaultImageSize() ); - } - } - } - } + RiuMainWindowTools::setWindowSizeOnWidgetsInMdiWindows( plotMainWindow, defaultSize.width(), defaultSize.height() ); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.h b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.h index 792c0abc81..0e7e0af445 100644 --- a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.h +++ b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.h @@ -42,7 +42,6 @@ public: bool useOpenMPForGeometryCreation() const; static void updateRegressionTest( const QString& testRootPath ); - static void setFixedWindowSizeFor3dViews( const QSize& snapshotImageSize ); static void setDefaultFixedWindowSizeFor3dViews(); private: diff --git a/ApplicationCode/UserInterface/RiuMainWindowTools.cpp b/ApplicationCode/UserInterface/RiuMainWindowTools.cpp index 225b680f47..07267b546d 100644 --- a/ApplicationCode/UserInterface/RiuMainWindowTools.cpp +++ b/ApplicationCode/UserInterface/RiuMainWindowTools.cpp @@ -22,10 +22,15 @@ #include "RimViewWindow.h" +#include "Rim3dView.h" +#include "RimCase.h" +#include "RimProject.h" + #include "RiuInterfaceToViewWindow.h" #include "RiuMainWindow.h" #include "RiuMainWindowBase.h" #include "RiuPlotMainWindow.h" +#include "RiuViewer.h" #include "cafPdmUiTreeOrdering.h" #include "cafPdmUiTreeView.h" @@ -95,23 +100,60 @@ void RiuMainWindowTools::collapseSiblings( const caf::PdmUiItem* sourceUiItem ) //-------------------------------------------------------------------------------------------------- void RiuMainWindowTools::setWindowSizeOnWidgetsInMdiWindows( RiuMainWindowBase* mainWindow, int width, int height ) { - if ( mainWindow ) + if ( !mainWindow ) return; + + auto widgets = mainWindow->findChildren(); + for ( auto w : widgets ) { - auto widgets = mainWindow->findChildren(); - for ( auto w : widgets ) + if ( !w ) continue; + + w->showNormal(); + + auto viewWindow = RiuInterfaceToViewWindow::viewWindowFromWidget( w->widget() ); + + if ( viewWindow && viewWindow->viewWidget() ) { - if ( w ) + QWidget* viewWidget = viewWindow->viewWidget(); + + viewWidget->resize( width, height ); + } + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RiuMainWindowTools::setFixedWindowSizeFor3dViews( RiuMainWindowBase* mainWindow, int width, int height ) +{ + if ( !mainWindow ) return; + + RimProject* proj = RiaApplication::instance()->project(); + if ( !proj ) return; + + std::vector projectCases; + proj->allCases( projectCases ); + + for ( RimCase* cas : projectCases ) + { + if ( !cas ) continue; + + std::vector views = cas->views(); + + for ( Rim3dView* riv : views ) + { + if ( riv && riv->viewer() ) { - w->showNormal(); - - auto viewWindow = RiuInterfaceToViewWindow::viewWindowFromWidget( w->widget() ); - - if ( viewWindow && viewWindow->viewWidget() ) + // Make sure all views are maximized for snapshotting + QMdiSubWindow* subWnd = mainWindow->findMdiSubWindow( riv->viewer()->layoutWidget() ); + if ( subWnd ) { - QWidget* viewWidget = viewWindow->viewWidget(); - - viewWidget->resize( width, height ); + subWnd->showMaximized(); } + + // This size is set to match the regression test reference images + QSize windowSize( width, height ); + + riv->viewer()->setFixedSize( windowSize ); } } } diff --git a/ApplicationCode/UserInterface/RiuMainWindowTools.h b/ApplicationCode/UserInterface/RiuMainWindowTools.h index 55da4e07fe..68cc138866 100644 --- a/ApplicationCode/UserInterface/RiuMainWindowTools.h +++ b/ApplicationCode/UserInterface/RiuMainWindowTools.h @@ -32,5 +32,7 @@ class RiuMainWindowTools { public: static void collapseSiblings( const caf::PdmUiItem* uiItem ); + static void setWindowSizeOnWidgetsInMdiWindows( RiuMainWindowBase* mainWindow, int width, int height ); + static void setFixedWindowSizeFor3dViews( RiuMainWindowBase* mainWindow, int width, int height ); };