#2798 Dock Widgets : Improve menus and handling of tabbed dock widgets

Create dock widgets based on static names
Build Windows menu based on static names
Wire up toggleView actions to RiuDockWidgetTools
Change dock widget visibility based on view
This commit is contained in:
Magne Sjaastad 2018-04-26 20:05:42 +02:00
parent 014944b4c0
commit 132db2bb1e
5 changed files with 141 additions and 152 deletions

View File

@ -72,6 +72,7 @@
#include "RimWellPltPlot.h" #include "RimWellPltPlot.h"
#include "RimWellRftPlot.h" #include "RimWellRftPlot.h"
#include "RiuDockWidgetTools.h"
#include "RiuMainPlotWindow.h" #include "RiuMainPlotWindow.h"
#include "RiuMainWindow.h" #include "RiuMainWindow.h"
#include "RiuProcessMonitor.h" #include "RiuProcessMonitor.h"
@ -195,12 +196,13 @@ RiaApplication::RiaApplication(int& argc, char** argv)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RiaApplication::~RiaApplication() RiaApplication::~RiaApplication()
{ {
RiuDockWidgetTools::instance()->saveDockWidgetsState();
deleteMainPlotWindow(); deleteMainPlotWindow();
delete m_preferences; delete m_preferences;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -209,7 +211,6 @@ RiaApplication* RiaApplication::instance()
return static_cast<RiaApplication*>qApp; return static_cast<RiaApplication*>qApp;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// Return -1 if unit test is not executed, returns 0 if test passed, returns 1 if tests failed /// Return -1 if unit test is not executed, returns 0 if test passed, returns 1 if tests failed
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1074,8 +1075,6 @@ bool RiaApplication::openOdbCaseFromFile(const QString& fileName)
return true; return true;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1167,6 +1166,8 @@ RimViewWindow* RiaApplication::activePlotWindow() const
void RiaApplication::setActiveReservoirView(Rim3dView* rv) void RiaApplication::setActiveReservoirView(Rim3dView* rv)
{ {
m_activeReservoirView = rv; m_activeReservoirView = rv;
RiuDockWidgetTools::instance()->changeDockWidgetVisibilityBasedOnView(rv);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -394,6 +394,12 @@ void RiuMainPlotWindow::createDockPanels()
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();
for (QDockWidget* dock : dockWidgets)
{
connect(dock->toggleViewAction(), SIGNAL(triggered()), SLOT(slotDockWidgetToggleViewActionTriggered()));
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -596,17 +602,9 @@ void RiuMainPlotWindow::slotBuildWindowActions()
m_windowMenu->clear(); m_windowMenu->clear();
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>(); QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();
for (QDockWidget* dock : dockWidgets)
int i = 0;
foreach (QDockWidget* dock, dockWidgets)
{ {
if (dock) m_windowMenu->addAction(dock->toggleViewAction());
{
if (i == 4)
m_windowMenu->addSeparator();
m_windowMenu->addAction(dock->toggleViewAction());
++i;
}
} }
m_windowMenu->addSeparator(); m_windowMenu->addSeparator();

View File

@ -84,10 +84,7 @@
#include <QToolBar> #include <QToolBar>
#include <QTreeView> #include <QTreeView>
#include <QUndoStack> #include <QUndoStack>
#include "RiuDockWidgetTools.h"
#define DOCK_PANEL_NAME_PROCESS_MONITOR "dockProcessMonitor"
//================================================================================================== //==================================================================================================
@ -367,39 +364,30 @@ void RiuMainWindow::createMenus()
QMenu* importMenu = fileMenu->addMenu("&Import"); QMenu* importMenu = fileMenu->addMenu("&Import");
importMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCaseFeature"));
QMenu* importEclipseMenu = importMenu->addMenu(QIcon(":/Case48x48.png"), "Eclipse Cases"); importMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCasesFeature"));
importEclipseMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCaseFeature")); importMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCaseTimeStepFilterFeature"));
importEclipseMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCasesFeature")); importMenu->addAction(cmdFeatureMgr->action("RicImportInputEclipseCaseFeature"));
importEclipseMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCaseTimeStepFilterFeature")); importMenu->addAction(cmdFeatureMgr->action("RicCreateGridCaseGroupFeature"));
importEclipseMenu->addAction(cmdFeatureMgr->action("RicImportInputEclipseCaseFeature")); importMenu->addAction(cmdFeatureMgr->action("RicCreateGridCaseGroupFromFilesFeature"));
importEclipseMenu->addAction(cmdFeatureMgr->action("RicCreateGridCaseGroupFeature")); importMenu->addSeparator();
importEclipseMenu->addAction(cmdFeatureMgr->action("RicCreateGridCaseGroupFromFilesFeature"));
#ifdef USE_ODB_API #ifdef USE_ODB_API
importMenu->addAction(cmdFeatureMgr->action("RicImportGeoMechCaseFeature"));
importMenu->addAction(cmdFeatureMgr->action("RicImportElementPropertyFeature"));
importMenu->addSeparator(); importMenu->addSeparator();
QMenu* importGeoMechMenu = importMenu->addMenu(QIcon(":/GeoMechCase48x48.png"), "Geo Mechanical Cases");
importGeoMechMenu->addAction(cmdFeatureMgr->action("RicImportGeoMechCaseFeature"));
importGeoMechMenu->addAction(cmdFeatureMgr->action("RicImportElementPropertyFeature"));
#endif #endif
importMenu->addAction(cmdFeatureMgr->action("RicImportSummaryCaseFeature"));
importMenu->addAction(cmdFeatureMgr->action("RicImportSummaryCasesFeature"));
importMenu->addAction(cmdFeatureMgr->action("RicImportEnsembleFeature"));
importMenu->addAction(cmdFeatureMgr->action("RicImportObservedDataInMenuFeature"));
importMenu->addSeparator(); importMenu->addSeparator();
QMenu* importSummaryMenu = importMenu->addMenu(QIcon(":/SummaryCase48x48.png"), "Summary Cases"); importMenu->addAction(cmdFeatureMgr->action("RicWellPathsImportFileFeature"));
importSummaryMenu->addAction(cmdFeatureMgr->action("RicImportSummaryCaseFeature")); importMenu->addAction(cmdFeatureMgr->action("RicWellPathsImportSsihubFeature"));
importSummaryMenu->addAction(cmdFeatureMgr->action("RicImportSummaryCasesFeature")); importMenu->addAction(cmdFeatureMgr->action("RicWellLogsImportFileFeature"));
importSummaryMenu->addAction(cmdFeatureMgr->action("RicImportEnsembleFeature"));
importSummaryMenu->addAction(cmdFeatureMgr->action("RicImportObservedDataInMenuFeature"));
importMenu->addSeparator(); importMenu->addSeparator();
QMenu* importWellMenu = importMenu->addMenu(QIcon(":/Well.png"), "Wells"); importMenu->addAction(cmdFeatureMgr->action("RicImportFormationNamesFeature"));
importWellMenu->addAction(cmdFeatureMgr->action("RicWellPathsImportFileFeature")); importMenu->addAction(cmdFeatureMgr->action("RicWellPathFormationsImportFileFeature"));
importWellMenu->addAction(cmdFeatureMgr->action("RicWellPathsImportSsihubFeature"));
importWellMenu->addAction(cmdFeatureMgr->action("RicWellLogsImportFileFeature"));
importMenu->addSeparator();
QMenu* importFormationsMenu = importMenu->addMenu(QIcon(":/FormationCollection16x16.png"), "Formations");
importFormationsMenu->addAction(cmdFeatureMgr->action("RicImportFormationNamesFeature"));
importFormationsMenu->addAction(cmdFeatureMgr->action("RicWellPathFormationsImportFileFeature"));
QMenu* exportMenu = fileMenu->addMenu("&Export"); QMenu* exportMenu = fileMenu->addMenu("&Export");
exportMenu->addAction(cmdFeatureMgr->action("RicSnapshotViewToFileFeature")); exportMenu->addAction(cmdFeatureMgr->action("RicSnapshotViewToFileFeature"));
@ -575,9 +563,11 @@ void RiuMainWindow::createToolBars()
void RiuMainWindow::createDockPanels() void RiuMainWindow::createDockPanels()
{ {
auto dwt = RiuDockWidgetTools::instance();
{ {
QDockWidget* dockWidget = new QDockWidget("Project Tree", this); QDockWidget* dockWidget = new QDockWidget("Project Tree", this);
dockWidget->setObjectName("dockWidget"); dockWidget->setObjectName(dwt->projectTreeName());
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas); dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
m_projectTreeView = new caf::PdmUiTreeView(this); m_projectTreeView = new caf::PdmUiTreeView(this);
@ -615,7 +605,7 @@ void RiuMainWindow::createDockPanels()
{ {
QDockWidget* dockWidget = new QDockWidget("Property Editor", this); QDockWidget* dockWidget = new QDockWidget("Property Editor", this);
dockWidget->setObjectName("dockWidget"); dockWidget->setObjectName(dwt->propertyEditorName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget); m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget);
@ -625,84 +615,84 @@ void RiuMainWindow::createDockPanels()
} }
{ {
QDockWidget* dockPanel = new QDockWidget("Result Info", this); QDockWidget* dockWidget = new QDockWidget("Result Info", this);
dockPanel->setObjectName("dockResultInfoPanel"); dockWidget->setObjectName(dwt->resultInfoName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_resultInfoPanel = new RiuResultInfoPanel(dockPanel); m_resultInfoPanel = new RiuResultInfoPanel(dockWidget);
dockPanel->setWidget(m_resultInfoPanel); dockWidget->setWidget(m_resultInfoPanel);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
} }
{ {
QDockWidget* dockPanel = new QDockWidget("Process Monitor", this); QDockWidget* dockWidget = new QDockWidget("Process Monitor", this);
dockPanel->setObjectName(DOCK_PANEL_NAME_PROCESS_MONITOR); dockWidget->setObjectName(dwt->processMonitorName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_processMonitor = new RiuProcessMonitor(dockPanel); m_processMonitor = new RiuProcessMonitor(dockWidget);
dockPanel->setWidget(m_processMonitor); dockWidget->setWidget(m_processMonitor);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
dockPanel->hide(); dockWidget->hide();
} }
{ {
QDockWidget* dockPanel = new QDockWidget("Result Plot", this); QDockWidget* dockWidget = new QDockWidget("Result Plot", this);
dockPanel->setObjectName("dockTimeHistoryPanel"); dockWidget->setObjectName(dwt->resultPlotName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_resultQwtPlot = new RiuResultQwtPlot(dockPanel); m_resultQwtPlot = new RiuResultQwtPlot(dockWidget);
dockPanel->setWidget(m_resultQwtPlot); dockWidget->setWidget(m_resultQwtPlot);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
resultPlotDock = dockPanel; resultPlotDock = dockWidget;
} }
#ifdef USE_ODB_API #ifdef USE_ODB_API
{ {
QDockWidget* dockPanel = new QDockWidget("Mohr's Circle Plot", this); QDockWidget* dockWidget = new QDockWidget("Mohr's Circle Plot", this);
dockPanel->setObjectName("dockTimeHistoryPanel"); dockWidget->setObjectName(dwt->mohrsCirclePlotName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_mohrsCirclePlot = new RiuMohrsCirclePlot(dockPanel); m_mohrsCirclePlot = new RiuMohrsCirclePlot(dockWidget);
dockPanel->setWidget(m_mohrsCirclePlot); dockWidget->setWidget(m_mohrsCirclePlot);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
mohrsCirclePlotDock = dockPanel; mohrsCirclePlotDock = dockWidget;
dockPanel->hide(); dockWidget->hide();
} }
#endif #endif
{ {
QDockWidget* dockPanel = new QDockWidget("Relative Permeability Plot", this); QDockWidget* dockWidget = new QDockWidget("Relative Permeability Plot", this);
dockPanel->setObjectName("dockRelativePermeabilityPlotPanel"); dockWidget->setObjectName(dwt->relPermPlotName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_relPermPlotPanel = new RiuRelativePermeabilityPlotPanel(dockPanel); m_relPermPlotPanel = new RiuRelativePermeabilityPlotPanel(dockWidget);
dockPanel->setWidget(m_relPermPlotPanel); dockWidget->setWidget(m_relPermPlotPanel);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
relPermPlotDock = dockPanel; relPermPlotDock = dockWidget;
} }
{ {
QDockWidget* dockPanel = new QDockWidget("PVT Plot", this); QDockWidget* dockWidget = new QDockWidget("PVT Plot", this);
dockPanel->setObjectName("dockPvtPlotPanel"); dockWidget->setObjectName(dwt->pvtPlotName());
dockPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_pvtPlotPanel = new RiuPvtPlotPanel(dockPanel); m_pvtPlotPanel = new RiuPvtPlotPanel(dockWidget);
dockPanel->setWidget(m_pvtPlotPanel); dockWidget->setWidget(m_pvtPlotPanel);
addDockWidget(Qt::BottomDockWidgetArea, dockPanel); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
pvtPlotDock = dockPanel; pvtPlotDock = dockWidget;
} }
{ {
QDockWidget* dockWidget = new QDockWidget("Messages", this); QDockWidget* dockWidget = new QDockWidget("Messages", this);
dockWidget->setObjectName("dockMessages"); dockWidget->setObjectName(dwt->messagesName());
m_messagePanel = new RiuMessagePanel(dockWidget); m_messagePanel = new RiuMessagePanel(dockWidget);
dockWidget->setWidget(m_messagePanel); dockWidget->setWidget(m_messagePanel);
addDockWidget(Qt::BottomDockWidgetArea, dockWidget); addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
dockWidget->hide(); dockWidget->hide();
} }
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
// Tabify docks // Tabify docks
@ -714,6 +704,11 @@ void RiuMainWindow::createDockPanels()
tabifyDockWidget(relPermPlotDock, resultPlotDock); tabifyDockWidget(relPermPlotDock, resultPlotDock);
#endif #endif
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();
for (QDockWidget* dock : dockWidgets)
{
connect(dock->toggleViewAction(), SIGNAL(triggered()), SLOT(slotDockWidgetToggleViewActionTriggered()));
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1270,18 +1265,20 @@ void RiuMainWindow::slotBuildWindowActions()
m_windowMenu->addAction(m_newPropertyView); m_windowMenu->addAction(m_newPropertyView);
m_windowMenu->addSeparator(); m_windowMenu->addSeparator();
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>(); auto dwt = RiuDockWidgetTools::instance();
int i = 0; m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->projectTreeName()));
foreach (QDockWidget* dock, dockWidgets) m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->propertyEditorName()));
{ m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->messagesName()));
if (dock) m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->processMonitorName()));
{
if (i == 4) m_windowMenu->addSeparator(); m_windowMenu->addSeparator();
m_windowMenu->addAction(dock->toggleViewAction());
++i; m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->resultInfoName()));
} m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->resultPlotName()));
} m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->relPermPlotName()));
m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->pvtPlotName()));
m_windowMenu->addAction(dwt->toggleActionForWidget(this, dwt->mohrsCirclePlotName()));
m_windowMenu->addSeparator(); m_windowMenu->addSeparator();
QAction* cascadeWindowsAction = new QAction("Cascade Windows", this); QAction* cascadeWindowsAction = new QAction("Cascade Windows", this);
@ -1406,42 +1403,6 @@ void RiuMainWindow::hideAllDockWindows()
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
/*void RiuMainWindow::slotOpenMultipleCases()
{
#if 1
QAction* action = caf::CmdFeatureManager::instance()->action("RicCreateGridCaseGroupFeature");
CVF_ASSERT(action);
action->trigger();
#else // Code to fast generate a test project
RiaApplication* app = RiaApplication::instance();
QStringList gridFileNames;
if (1)
{
gridFileNames += RiaDefines::mockModelBasicWithResults();
gridFileNames += RiaDefines::mockModelBasicWithResults();
gridFileNames += RiaDefines::mockModelBasicWithResults();
}
else
{
gridFileNames += "d:/Models/Statoil/MultipleRealisations/Case_with_10_timesteps/Real0/BRUGGE_0000.EGRID";
gridFileNames += "d:/Models/Statoil/MultipleRealisations/Case_with_10_timesteps/Real10/BRUGGE_0010.EGRID";
gridFileNames += "d:/Models/Statoil/MultipleRealisations/Case_with_10_timesteps/Real30/BRUGGE_0030.EGRID";
gridFileNames += "d:/Models/Statoil/MultipleRealisations/Case_with_10_timesteps/Real40/BRUGGE_0040.EGRID";
}
app->addEclipseCases(gridFileNames);
#endif
}
*/
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1635,7 +1596,7 @@ void RiuMainWindow::updateUiFieldsFromActiveResult(caf::PdmObjectHandle* objectT
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuMainWindow::showProcessMonitorDockPanel() void RiuMainWindow::showProcessMonitorDockPanel()
{ {
showDockPanel(DOCK_PANEL_NAME_PROCESS_MONITOR); showDockPanel(RiuDockWidgetTools::instance()->processMonitorName());
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -20,9 +20,13 @@
#include "RiaVersionInfo.h" #include "RiaVersionInfo.h"
#include <QSettings> #include "RiuDockWidgetTools.h"
#include "cafPdmUiTreeView.h"
#include "cafPdmObject.h" #include "cafPdmObject.h"
#include "cafPdmUiTreeView.h"
#include <QSettings>
#include <QDockWidget>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -118,3 +122,24 @@ void RiuMainWindowBase::setExpanded(const caf::PdmUiItem* uiItem, bool expanded)
{ {
m_projectTreeView->setExpanded(uiItem, expanded); m_projectTreeView->setExpanded(uiItem, expanded);
} }
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void RiuMainWindowBase::slotDockWidgetToggleViewActionTriggered()
{
if (!sender()) return;
auto dockWidget = dynamic_cast<QDockWidget*>(sender()->parent());
if (dockWidget)
{
if (dockWidget->isVisible())
{
// Raise the dock widget to make it visible if the widget is part of a tab widget
dockWidget->raise();
}
RiuDockWidgetTools::instance()->setDockWidgetVisibility(dockWidget->objectName(), dockWidget->isVisible());
}
}

View File

@ -39,28 +39,32 @@ class RiuMainWindowBase : public QMainWindow
public: public:
RiuMainWindowBase(); RiuMainWindowBase();
virtual QString mainWindowName() = 0; virtual QString mainWindowName() = 0;
virtual void removeViewer( QWidget* viewer ) = 0; virtual void removeViewer( QWidget* viewer ) = 0;
virtual void addViewer(QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry)= 0; virtual void addViewer(QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry)= 0;
virtual void setActiveViewer(QWidget* subWindow) = 0; virtual void setActiveViewer(QWidget* subWindow) = 0;
virtual RimMdiWindowGeometry windowGeometryForViewer(QWidget* viewer) = 0; virtual RimMdiWindowGeometry windowGeometryForViewer(QWidget* viewer) = 0;
void loadWinGeoAndDockToolBarLayout(); void loadWinGeoAndDockToolBarLayout();
void saveWinGeoAndDockToolBarLayout(); void saveWinGeoAndDockToolBarLayout();
void showWindow(); void showWindow();
caf::PdmUiTreeView* projectTreeView() { return m_projectTreeView;} caf::PdmUiTreeView* projectTreeView() { return m_projectTreeView;}
void setExpanded(const caf::PdmUiItem* uiItem, bool expanded = true); void setExpanded(const caf::PdmUiItem* uiItem, bool expanded = true);
void selectAsCurrentItem(const caf::PdmObject* object, bool allowActiveViewChange = true); void selectAsCurrentItem(const caf::PdmObject* object, bool allowActiveViewChange = true);
protected slots:
void slotDockWidgetToggleViewActionTriggered();
protected: protected:
caf::PdmUiTreeView* m_projectTreeView; caf::PdmUiTreeView* m_projectTreeView;
bool m_allowActiveViewChangeFromSelection; // To be used in selectedObjectsChanged() to control bool m_allowActiveViewChangeFromSelection; // To be used in selectedObjectsChanged() to control
// whether to select the corresponding active view or not // whether to select the corresponding active view or not
private: private:
QString registryFolderName(); QString registryFolderName();
}; };