#2798 Dock Widgets : Store dock widget state when closed by "x"

This commit is contained in:
Magne Sjaastad 2018-04-26 20:40:06 +02:00
parent 132db2bb1e
commit 515ed8a649

View File

@ -556,17 +556,35 @@ void RiuMainWindow::createToolBars()
refreshDrawStyleActions();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
class RiuDockWidget : public QDockWidget
{
public:
explicit RiuDockWidget(const QString& title, QWidget* parent = 0, Qt::WindowFlags flags = 0)
: QDockWidget(title, parent, flags)
{
}
void closeEvent(QCloseEvent* event) override
{
// This event is called when the user clicks the "x" in upper right corner to close the dock widget
RiuDockWidgetTools::instance()->setDockWidgetVisibility(objectName(), false);
QDockWidget::closeEvent(event);
}
};
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuMainWindow::createDockPanels()
{
auto dwt = RiuDockWidgetTools::instance();
{
QDockWidget* dockWidget = new QDockWidget("Project Tree", this);
QDockWidget* dockWidget = new RiuDockWidget("Project Tree", this);
dockWidget->setObjectName(dwt->projectTreeName());
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
@ -604,7 +622,7 @@ void RiuMainWindow::createDockPanels()
QDockWidget* mohrsCirclePlotDock = nullptr;
{
QDockWidget* dockWidget = new QDockWidget("Property Editor", this);
QDockWidget* dockWidget = new RiuDockWidget("Property Editor", this);
dockWidget->setObjectName(dwt->propertyEditorName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
@ -615,7 +633,7 @@ void RiuMainWindow::createDockPanels()
}
{
QDockWidget* dockWidget = new QDockWidget("Result Info", this);
QDockWidget* dockWidget = new RiuDockWidget("Result Info", this);
dockWidget->setObjectName(dwt->resultInfoName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_resultInfoPanel = new RiuResultInfoPanel(dockWidget);
@ -625,7 +643,7 @@ void RiuMainWindow::createDockPanels()
}
{
QDockWidget* dockWidget = new QDockWidget("Process Monitor", this);
QDockWidget* dockWidget = new RiuDockWidget("Process Monitor", this);
dockWidget->setObjectName(dwt->processMonitorName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_processMonitor = new RiuProcessMonitor(dockWidget);
@ -636,7 +654,7 @@ void RiuMainWindow::createDockPanels()
}
{
QDockWidget* dockWidget = new QDockWidget("Result Plot", this);
QDockWidget* dockWidget = new RiuDockWidget("Result Plot", this);
dockWidget->setObjectName(dwt->resultPlotName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_resultQwtPlot = new RiuResultQwtPlot(dockWidget);
@ -648,7 +666,7 @@ void RiuMainWindow::createDockPanels()
#ifdef USE_ODB_API
{
QDockWidget* dockWidget = new QDockWidget("Mohr's Circle Plot", this);
QDockWidget* dockWidget = new RiuDockWidget("Mohr's Circle Plot", this);
dockWidget->setObjectName(dwt->mohrsCirclePlotName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_mohrsCirclePlot = new RiuMohrsCirclePlot(dockWidget);
@ -662,7 +680,7 @@ void RiuMainWindow::createDockPanels()
#endif
{
QDockWidget* dockWidget = new QDockWidget("Relative Permeability Plot", this);
QDockWidget* dockWidget = new RiuDockWidget("Relative Permeability Plot", this);
dockWidget->setObjectName(dwt->relPermPlotName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_relPermPlotPanel = new RiuRelativePermeabilityPlotPanel(dockWidget);
@ -673,7 +691,7 @@ void RiuMainWindow::createDockPanels()
}
{
QDockWidget* dockWidget = new QDockWidget("PVT Plot", this);
QDockWidget* dockWidget = new RiuDockWidget("PVT Plot", this);
dockWidget->setObjectName(dwt->pvtPlotName());
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
m_pvtPlotPanel = new RiuPvtPlotPanel(dockWidget);
@ -684,7 +702,7 @@ void RiuMainWindow::createDockPanels()
}
{
QDockWidget* dockWidget = new QDockWidget("Messages", this);
QDockWidget* dockWidget = new RiuDockWidget("Messages", this);
dockWidget->setObjectName(dwt->messagesName());
m_messagePanel = new RiuMessagePanel(dockWidget);
dockWidget->setWidget(m_messagePanel);