mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4410 Dock Window State : Create static functions instead of singleton
This commit is contained in:
@@ -566,7 +566,9 @@ void RiaGuiApplication::initialize()
|
||||
// Create main windows
|
||||
// The plot window is created to be able to set expanded state on created objects, but hidden by default
|
||||
getOrCreateAndShowMainWindow();
|
||||
getOrCreateMainPlotWindow();
|
||||
RiuPlotMainWindow* plotMainWindow = getOrCreateMainPlotWindow();
|
||||
plotMainWindow->hideAllDockWindows();
|
||||
|
||||
RiaLogging::setLoggerInstance(new RiuMessagePanelLogger(m_mainWindow->messagePanel()));
|
||||
RiaLogging::loggerInstance()->setLevel(RI_LL_DEBUG);
|
||||
|
||||
@@ -959,6 +961,11 @@ RiuMainWindow* RiaGuiApplication::getOrCreateAndShowMainWindow()
|
||||
{
|
||||
createMainWindow();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_mainWindow->loadWinGeoAndDockToolBarLayout();
|
||||
}
|
||||
|
||||
return m_mainWindow;
|
||||
}
|
||||
|
||||
@@ -1023,6 +1030,7 @@ void RiaGuiApplication::createMainPlotWindow()
|
||||
m_mainPlotWindow->setWindowTitle("Plots - ResInsight");
|
||||
m_mainPlotWindow->setDefaultWindowSize();
|
||||
m_mainPlotWindow->loadWinGeoAndDockToolBarLayout();
|
||||
m_mainPlotWindow->hideAllDockWindows();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1042,12 +1050,18 @@ void RiaGuiApplication::deleteMainPlotWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuPlotMainWindow* RiaGuiApplication::getOrCreateAndShowMainPlotWindow()
|
||||
{
|
||||
bool triggerReloadOfDockWidgetVisibilities = false;
|
||||
|
||||
if (!m_mainPlotWindow)
|
||||
{
|
||||
createMainPlotWindow();
|
||||
m_mainPlotWindow->initializeGuiNewProjectLoaded();
|
||||
loadAndUpdatePlotData();
|
||||
}
|
||||
else
|
||||
{
|
||||
triggerReloadOfDockWidgetVisibilities = !m_mainPlotWindow->isVisible();
|
||||
}
|
||||
|
||||
if (m_mainPlotWindow->isMinimized())
|
||||
{
|
||||
@@ -1061,6 +1075,12 @@ RiuPlotMainWindow* RiaGuiApplication::getOrCreateAndShowMainPlotWindow()
|
||||
|
||||
m_mainPlotWindow->raise();
|
||||
m_mainPlotWindow->activateWindow();
|
||||
|
||||
if (triggerReloadOfDockWidgetVisibilities)
|
||||
{
|
||||
m_mainPlotWindow->restoreDockWidgetVisibilities();
|
||||
}
|
||||
|
||||
return m_mainPlotWindow;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,8 @@ void RicShowMainWindowFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
RiuMainWindow* mainWnd = RiuMainWindow::instance();
|
||||
|
||||
bool triggerReloadOfDockWindowVisibilities = !mainWnd->isVisible();
|
||||
|
||||
if (mainWnd->isMinimized())
|
||||
{
|
||||
mainWnd->showNormal();
|
||||
@@ -54,6 +56,11 @@ void RicShowMainWindowFeature::onActionTriggered(bool isChecked)
|
||||
}
|
||||
|
||||
mainWnd->raise();
|
||||
|
||||
if (triggerReloadOfDockWindowVisibilities)
|
||||
{
|
||||
mainWnd->restoreDockWidgetVisibilities();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -31,25 +31,7 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDockWidgetTools::RiuDockWidgetTools()
|
||||
{
|
||||
loadDockWidgetsState();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDockWidgetTools* RiuDockWidgetTools::instance()
|
||||
{
|
||||
static RiuDockWidgetTools staticInstance;
|
||||
|
||||
return &staticInstance;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::projectTreeName() const
|
||||
QString RiuDockWidgetTools::projectTreeName()
|
||||
{
|
||||
return "dockProjectTree";
|
||||
}
|
||||
@@ -57,7 +39,7 @@ QString RiuDockWidgetTools::projectTreeName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::propertyEditorName() const
|
||||
QString RiuDockWidgetTools::propertyEditorName()
|
||||
{
|
||||
return "dockpropertyEditor";
|
||||
}
|
||||
@@ -65,7 +47,7 @@ QString RiuDockWidgetTools::propertyEditorName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::resultInfoName() const
|
||||
QString RiuDockWidgetTools::resultInfoName()
|
||||
{
|
||||
return "dockResultInfo";
|
||||
}
|
||||
@@ -73,7 +55,7 @@ QString RiuDockWidgetTools::resultInfoName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::processMonitorName() const
|
||||
QString RiuDockWidgetTools::processMonitorName()
|
||||
{
|
||||
return "dockProcessMonitor";
|
||||
}
|
||||
@@ -81,7 +63,7 @@ QString RiuDockWidgetTools::processMonitorName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::resultPlotName() const
|
||||
QString RiuDockWidgetTools::resultPlotName()
|
||||
{
|
||||
return "dockResultPlot";
|
||||
}
|
||||
@@ -89,7 +71,7 @@ QString RiuDockWidgetTools::resultPlotName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::relPermPlotName() const
|
||||
QString RiuDockWidgetTools::relPermPlotName()
|
||||
{
|
||||
return "dockRelPermPlot";
|
||||
}
|
||||
@@ -97,7 +79,7 @@ QString RiuDockWidgetTools::relPermPlotName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::pvtPlotName() const
|
||||
QString RiuDockWidgetTools::pvtPlotName()
|
||||
{
|
||||
return "dockPvtPlot";
|
||||
}
|
||||
@@ -105,7 +87,7 @@ QString RiuDockWidgetTools::pvtPlotName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::mohrsCirclePlotName() const
|
||||
QString RiuDockWidgetTools::mohrsCirclePlotName()
|
||||
{
|
||||
return "dockMohrsCirclePlot";
|
||||
}
|
||||
@@ -113,7 +95,7 @@ QString RiuDockWidgetTools::mohrsCirclePlotName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::messagesName() const
|
||||
QString RiuDockWidgetTools::messagesName()
|
||||
{
|
||||
return "dockMessages";
|
||||
}
|
||||
@@ -165,8 +147,8 @@ void RiuDockWidgetTools::setVisibleDockingWindowsForEclipse()
|
||||
}
|
||||
}
|
||||
|
||||
RiuDockWidgetTools::instance()->trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::relPermPlotName(), true);
|
||||
RiuDockWidgetTools::instance()->trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::pvtPlotName(), true);
|
||||
RiuDockWidgetTools::trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::relPermPlotName(), true);
|
||||
RiuDockWidgetTools::trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::pvtPlotName(), true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -176,7 +158,7 @@ void RiuDockWidgetTools::setVisibleDockingWindowsForGeoMech()
|
||||
{
|
||||
RiuMainWindow* mainWindow = RiuMainWindow::instance();
|
||||
|
||||
RiuDockWidgetTools::instance()->trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::mohrsCirclePlotName(), false);
|
||||
RiuDockWidgetTools::trySetDockWidgetVisibility(mainWindow, RiuDockWidgetTools::mohrsCirclePlotName(), false);
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = findDockWidget(mainWindow, RiuDockWidgetTools::relPermPlotName());
|
||||
@@ -203,78 +185,57 @@ void RiuDockWidgetTools::trySetDockWidgetVisibility(const QObject* parent, const
|
||||
QDockWidget* dockWidget = findDockWidget(parent, dockWidgetName);
|
||||
if (dockWidget)
|
||||
{
|
||||
bool unifiedIsVisible = isVisible;
|
||||
|
||||
auto state = visibilityForWidget(dockWidgetName);
|
||||
if (state != RiuDockWidgetTools::USER_DEFINED_UNKNOWN)
|
||||
{
|
||||
if (state == RiuDockWidgetTools::USER_DEFINED_ON)
|
||||
{
|
||||
unifiedIsVisible = true;
|
||||
}
|
||||
else if (state == RiuDockWidgetTools::USER_DEFINED_OFF)
|
||||
{
|
||||
unifiedIsVisible = false;
|
||||
}
|
||||
}
|
||||
|
||||
dockWidget->setVisible(unifiedIsVisible);
|
||||
dockWidget->setVisible(isVisible);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDockWidgetTools::UserDefinedVisibility RiuDockWidgetTools::visibilityForWidget(const QString& objectName)
|
||||
QVariant RiuDockWidgetTools::storeDockWidgetsVisibility(const QObject* parent)
|
||||
{
|
||||
RiuDockWidgetTools::UserDefinedVisibility visibility = USER_DEFINED_UNKNOWN;
|
||||
QMap<QString, QVariant> widgetVisibility;
|
||||
|
||||
auto windowStateIt = m_userDefinedDockWidgetVisibility.find(objectName);
|
||||
if (windowStateIt != m_userDefinedDockWidgetVisibility.end())
|
||||
QList<QDockWidget*> dockWidgets = parent->findChildren<QDockWidget*>();
|
||||
|
||||
for (QDockWidget* dock : dockWidgets)
|
||||
{
|
||||
bool isVisible = windowStateIt.value().toBool();
|
||||
if (isVisible)
|
||||
if (dock)
|
||||
{
|
||||
visibility = USER_DEFINED_ON;
|
||||
}
|
||||
else
|
||||
{
|
||||
visibility = USER_DEFINED_OFF;
|
||||
bool isVisible = dock->isVisible();
|
||||
widgetVisibility[dock->objectName()] = isVisible;
|
||||
|
||||
// qDebug() << "Store " << dock->objectName() << " : " << (isVisible ? "visible" : "not visible");
|
||||
}
|
||||
}
|
||||
|
||||
return visibility;
|
||||
return QVariant(widgetVisibility);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDockWidgetTools::setDockWidgetVisibility(const QString& dockingWindowName, bool isVisible)
|
||||
void RiuDockWidgetTools::restoreDockWidgetsVisibility(const QObject* parent, QVariant widgetVisibilities)
|
||||
{
|
||||
m_userDefinedDockWidgetVisibility[dockingWindowName] = isVisible;
|
||||
}
|
||||
QMap<QString, QVariant> widgetVisibilityMap = widgetVisibilities.toMap();
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDockWidgetTools::loadDockWidgetsState()
|
||||
{
|
||||
// Company and appname set through QCoreApplication
|
||||
QSettings settings;
|
||||
QList<QDockWidget*> dockWidgets = parent->findChildren<QDockWidget*>();
|
||||
|
||||
m_userDefinedDockWidgetVisibility = settings.value("dockWindowStates").toMap();
|
||||
}
|
||||
for (QDockWidget* dock : dockWidgets)
|
||||
{
|
||||
if (dock)
|
||||
{
|
||||
auto widgetVisibility = widgetVisibilityMap.find(dock->objectName());
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDockWidgetTools::saveDockWidgetsState()
|
||||
{
|
||||
// Company and appname set through QCoreApplication
|
||||
QSettings settings;
|
||||
if (widgetVisibility != widgetVisibilityMap.end())
|
||||
{
|
||||
bool isVisible = widgetVisibility.value().toBool();
|
||||
dock->setVisible(isVisible);
|
||||
|
||||
QVariant v(m_userDefinedDockWidgetVisibility);
|
||||
settings.setValue("dockWindowStates", v);
|
||||
// qDebug() << "Restore " << dock->objectName() << " : " << (isVisible ? "visible" : "not visible");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -30,45 +30,32 @@ class Rim3dView;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RiuDockWidgetTools
|
||||
{
|
||||
public:
|
||||
static RiuDockWidgetTools* instance();
|
||||
static QString projectTreeName();
|
||||
static QString propertyEditorName();
|
||||
static QString resultInfoName();
|
||||
static QString processMonitorName();
|
||||
static QString resultPlotName();
|
||||
static QString relPermPlotName();
|
||||
static QString pvtPlotName();
|
||||
static QString messagesName();
|
||||
static QString mohrsCirclePlotName();
|
||||
|
||||
QString projectTreeName() const;
|
||||
QString propertyEditorName() const;
|
||||
QString resultInfoName() const;
|
||||
QString processMonitorName() const;
|
||||
QString resultPlotName() const;
|
||||
QString relPermPlotName() const;
|
||||
QString pvtPlotName() const;
|
||||
QString messagesName() const;
|
||||
QString mohrsCirclePlotName() const;
|
||||
static QAction* toggleActionForWidget(const QObject* parent, const QString& dockWidgetName);
|
||||
|
||||
QAction* toggleActionForWidget(const QObject* parent, const QString& dockWidgetName);
|
||||
void setDockWidgetVisibility(const QString& dockWidgetName, bool isVisible);
|
||||
void changeDockWidgetVisibilityBasedOnView(Rim3dView* view);
|
||||
void saveDockWidgetsState();
|
||||
static QVariant storeDockWidgetsVisibility(const QObject* parent);
|
||||
static void restoreDockWidgetsVisibility(const QObject* parent, QVariant widgetVisibilities);
|
||||
|
||||
private:
|
||||
enum UserDefinedVisibility
|
||||
{
|
||||
USER_DEFINED_ON,
|
||||
USER_DEFINED_OFF,
|
||||
USER_DEFINED_UNKNOWN
|
||||
};
|
||||
static void changeDockWidgetVisibilityBasedOnView(Rim3dView* view);
|
||||
|
||||
RiuDockWidgetTools();
|
||||
void setVisibleDockingWindowsForEclipse();
|
||||
void setVisibleDockingWindowsForGeoMech();
|
||||
void loadDockWidgetsState();
|
||||
UserDefinedVisibility visibilityForWidget(const QString& dockWidgetName);
|
||||
static QDockWidget* findDockWidget(const QObject* parent, const QString& dockWidgetName);
|
||||
void trySetDockWidgetVisibility(const QObject* parent, const QString& dockWidgetName, bool isVisible);
|
||||
|
||||
private:
|
||||
QMap<QString, QVariant> m_userDefinedDockWidgetVisibility;
|
||||
static void setVisibleDockingWindowsForEclipse();
|
||||
static void setVisibleDockingWindowsForGeoMech();
|
||||
static QDockWidget* findDockWidget(const QObject* parent, const QString& dockWidgetName);
|
||||
static void trySetDockWidgetVisibility(const QObject* parent, const QString& dockWidgetName, bool isVisible);
|
||||
};
|
||||
|
||||
@@ -270,10 +270,10 @@ void RiuMainWindow::cleanupGuiBeforeProjectClose()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
|
||||
this->saveWinGeoAndDockToolBarLayout();
|
||||
this->hideAllDockWindows();
|
||||
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
if (app->isMainPlotWindowVisible())
|
||||
{
|
||||
event->ignore(); // Make Qt think we don't do anything, otherwise it closes the window.
|
||||
@@ -666,11 +666,9 @@ void RiuMainWindow::createToolBars()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::createDockPanels()
|
||||
{
|
||||
auto dwt = RiuDockWidgetTools::instance();
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Project Tree", this);
|
||||
dockWidget->setObjectName(dwt->projectTreeName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::projectTreeName());
|
||||
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
|
||||
|
||||
m_projectTreeView = new caf::PdmUiTreeView(this);
|
||||
@@ -712,7 +710,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Property Editor", this);
|
||||
dockWidget->setObjectName(dwt->propertyEditorName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::propertyEditorName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||
|
||||
m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget);
|
||||
@@ -723,7 +721,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Result Info", this);
|
||||
dockWidget->setObjectName(dwt->resultInfoName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::resultInfoName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_resultInfoPanel = new RiuResultInfoPanel(dockWidget);
|
||||
dockWidget->setWidget(m_resultInfoPanel);
|
||||
@@ -733,7 +731,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Process Monitor", this);
|
||||
dockWidget->setObjectName(dwt->processMonitorName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::processMonitorName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_processMonitor = new RiuProcessMonitor(dockWidget);
|
||||
dockWidget->setWidget(m_processMonitor);
|
||||
@@ -744,7 +742,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Result Plot", this);
|
||||
dockWidget->setObjectName(dwt->resultPlotName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::resultPlotName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_resultQwtPlot = new RiuResultQwtPlot(dockWidget);
|
||||
dockWidget->setWidget(m_resultQwtPlot);
|
||||
@@ -756,7 +754,7 @@ void RiuMainWindow::createDockPanels()
|
||||
#ifdef USE_ODB_API
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Mohr's Circle Plot", this);
|
||||
dockWidget->setObjectName(dwt->mohrsCirclePlotName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::mohrsCirclePlotName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_mohrsCirclePlot = new RiuMohrsCirclePlot(dockWidget);
|
||||
dockWidget->setWidget(m_mohrsCirclePlot);
|
||||
@@ -770,7 +768,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Relative Permeability Plot", this);
|
||||
dockWidget->setObjectName(dwt->relPermPlotName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::relPermPlotName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_relPermPlotPanel = new RiuRelativePermeabilityPlotPanel(dockWidget);
|
||||
dockWidget->setWidget(m_relPermPlotPanel);
|
||||
@@ -781,7 +779,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("PVT Plot", this);
|
||||
dockWidget->setObjectName(dwt->pvtPlotName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::pvtPlotName());
|
||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||
m_pvtPlotPanel = new RiuPvtPlotPanel(dockWidget);
|
||||
dockWidget->setWidget(m_pvtPlotPanel);
|
||||
@@ -792,7 +790,7 @@ void RiuMainWindow::createDockPanels()
|
||||
|
||||
{
|
||||
QDockWidget* dockWidget = new QDockWidget("Messages", this);
|
||||
dockWidget->setObjectName(dwt->messagesName());
|
||||
dockWidget->setObjectName(RiuDockWidgetTools::messagesName());
|
||||
m_messagePanel = new RiuMessagePanel(dockWidget);
|
||||
dockWidget->setWidget(m_messagePanel);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
|
||||
@@ -1349,8 +1347,7 @@ void appendToggleActionForDockingWidget(QMenu* menu, QWidget* parent, const QStr
|
||||
{
|
||||
if (menu)
|
||||
{
|
||||
auto dwt = RiuDockWidgetTools::instance();
|
||||
QAction* action = dwt->toggleActionForWidget(parent, dockWidgetName);
|
||||
QAction* action = RiuDockWidgetTools::toggleActionForWidget(parent, dockWidgetName);
|
||||
if (action)
|
||||
{
|
||||
// Some dock windows are depending on configuration (mohrs circle plot), so do not assert they exist
|
||||
@@ -1372,20 +1369,18 @@ void RiuMainWindow::slotBuildWindowActions()
|
||||
m_windowMenu->addSeparator();
|
||||
}
|
||||
|
||||
auto dwt = RiuDockWidgetTools::instance();
|
||||
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->projectTreeName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->propertyEditorName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->messagesName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->processMonitorName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::projectTreeName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::propertyEditorName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::messagesName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::processMonitorName());
|
||||
|
||||
m_windowMenu->addSeparator();
|
||||
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->resultInfoName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->resultPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->relPermPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->pvtPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, dwt->mohrsCirclePlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::resultInfoName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::resultPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::relPermPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::pvtPlotName());
|
||||
appendToggleActionForDockingWidget(m_windowMenu, this, RiuDockWidgetTools::mohrsCirclePlotName());
|
||||
|
||||
m_windowMenu->addSeparator();
|
||||
QAction* cascadeWindowsAction = new QAction("Cascade Windows", this);
|
||||
@@ -1780,7 +1775,7 @@ void RiuMainWindow::updateMemoryUsage()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::showProcessMonitorDockPanel()
|
||||
{
|
||||
showDockPanel(RiuDockWidgetTools::instance()->processMonitorName());
|
||||
showDockPanel(RiuDockWidgetTools::processMonitorName());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -83,6 +83,8 @@ void RiuMainWindowBase::loadWinGeoAndDockToolBarLayout()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
restoreDockWidgetVisibilities();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -100,6 +102,24 @@ void RiuMainWindowBase::saveWinGeoAndDockToolBarLayout()
|
||||
settings.setValue(QString("%1/dockAndToolBarLayout").arg(registryFolderName()), layout);
|
||||
|
||||
settings.setValue(QString("%1/isMaximized").arg(registryFolderName()), isMaximized());
|
||||
|
||||
if (this->isVisible())
|
||||
{
|
||||
QVariant dockWindowVisibilities = RiuDockWidgetTools::storeDockWidgetsVisibility(this);
|
||||
settings.setValue(QString("%1/dockWindowVisibilies").arg(registryFolderName()), dockWindowVisibilities);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindowBase::restoreDockWidgetVisibilities()
|
||||
{
|
||||
// Company and appname set through QCoreApplication
|
||||
QSettings settings;
|
||||
|
||||
QVariant dockWindowVisibilities = settings.value(QString("%1/dockWindowVisibilies").arg(registryFolderName()));
|
||||
RiuDockWidgetTools::restoreDockWidgetsVisibility(this, dockWindowVisibilities);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -119,6 +139,22 @@ void RiuMainWindowBase::showWindow()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindowBase::closeAllDockWidgets()
|
||||
{
|
||||
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();
|
||||
|
||||
for (QDockWidget* dock : dockWidgets)
|
||||
{
|
||||
if (dock)
|
||||
{
|
||||
dock->hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -225,8 +261,6 @@ void RiuMainWindowBase::slotDockWidgetToggleViewActionTriggered()
|
||||
// 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,8 +56,11 @@ public:
|
||||
RimMdiWindowGeometry windowGeometryForViewer(QWidget* viewer);
|
||||
void loadWinGeoAndDockToolBarLayout();
|
||||
void saveWinGeoAndDockToolBarLayout();
|
||||
void restoreDockWidgetVisibilities();
|
||||
void showWindow();
|
||||
|
||||
void closeAllDockWidgets();
|
||||
|
||||
caf::PdmUiTreeView* projectTreeView() { return m_projectTreeView;}
|
||||
void setExpanded(const caf::PdmUiItem* uiItem, bool expanded = true);
|
||||
|
||||
|
||||
@@ -180,6 +180,8 @@ void RiuPlotMainWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
this->saveWinGeoAndDockToolBarLayout();
|
||||
|
||||
this->hideAllDockWindows();
|
||||
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
|
||||
if (app->isMain3dWindowVisible())
|
||||
|
||||
Reference in New Issue
Block a user