mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#408) Save and restore MDI window size and position
This commit is contained in:
@@ -99,6 +99,9 @@ RimView::RimView(void)
|
|||||||
|
|
||||||
CAF_PDM_InitField(&m_disableLighting, "DisableLighting", false, "Disable Results Lighting", "", "Disable light model for scalar result colors", "");
|
CAF_PDM_InitField(&m_disableLighting, "DisableLighting", false, "Disable Results Lighting", "", "Disable light model for scalar result colors", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&windowGeometry, "WindowGeometry", "", "", "", "");
|
||||||
|
windowGeometry.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
m_previousGridModeMeshLinesWasFaults = false;
|
m_previousGridModeMeshLinesWasFaults = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +144,7 @@ void RimView::updateViewerWidget()
|
|||||||
m_viewer = new RiuViewer(glFormat, NULL);
|
m_viewer = new RiuViewer(glFormat, NULL);
|
||||||
m_viewer->setOwnerReservoirView(this);
|
m_viewer->setOwnerReservoirView(this);
|
||||||
|
|
||||||
RiuMainWindow::instance()->addViewer(m_viewer);
|
RiuMainWindow::instance()->addViewer(m_viewer, windowGeometry());
|
||||||
m_viewer->setMinNearPlaneDistance(10);
|
m_viewer->setMinNearPlaneDistance(10);
|
||||||
|
|
||||||
this->resetLegendsInViewer();
|
this->resetLegendsInViewer();
|
||||||
@@ -255,7 +258,9 @@ void RimView::setupBeforeSave()
|
|||||||
{
|
{
|
||||||
hasUserRequestedAnimation = m_viewer->isAnimationActive(); // JJS: This is not conceptually correct. The variable is updated as we go, and store the user intentions. But I guess that in practice...
|
hasUserRequestedAnimation = m_viewer->isAnimationActive(); // JJS: This is not conceptually correct. The variable is updated as we go, and store the user intentions. But I guess that in practice...
|
||||||
cameraPosition = m_viewer->mainCamera()->viewMatrix();
|
cameraPosition = m_viewer->mainCamera()->viewMatrix();
|
||||||
}
|
|
||||||
|
windowGeometry = RiuMainWindow::instance()->windowGeometryForViewer(m_viewer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -588,3 +593,4 @@ void RimView::notifyCameraHasChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ public:
|
|||||||
|
|
||||||
void notifyCameraHasChanged();
|
void notifyCameraHasChanged();
|
||||||
|
|
||||||
|
caf::PdmField< std::vector<int> > windowGeometry;
|
||||||
|
|
||||||
|
|
||||||
// Draw style
|
// Draw style
|
||||||
|
|
||||||
enum MeshModeType
|
enum MeshModeType
|
||||||
|
|||||||
@@ -1194,22 +1194,39 @@ void RiuMainWindow::removeViewer(RiuViewer* viewer)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuMainWindow::addViewer(RiuViewer* viewer)
|
void RiuMainWindow::addViewer(RiuViewer* viewer, const std::vector<int>& windowsGeometry)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
m_CentralFrame->layout()->addWidget(viewer->layoutWidget());
|
m_CentralFrame->layout()->addWidget(viewer->layoutWidget());
|
||||||
#else
|
#else
|
||||||
QMdiSubWindow * subWin = m_mdiArea->addSubWindow(viewer->layoutWidget());
|
QMdiSubWindow * subWin = m_mdiArea->addSubWindow(viewer->layoutWidget());
|
||||||
subWin->resize(400, 400);
|
|
||||||
|
|
||||||
if (m_mdiArea->subWindowList().size() == 1)
|
if (windowsGeometry.size() == 5)
|
||||||
{
|
{
|
||||||
// Show first view maximized
|
subWin->move(QPoint(windowsGeometry[0], windowsGeometry[1]));
|
||||||
subWin->showMaximized();
|
subWin->resize(QSize(windowsGeometry[2], windowsGeometry[3]));
|
||||||
|
if (windowsGeometry[4] > 0)
|
||||||
|
{
|
||||||
|
subWin->showMaximized();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subWin->show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
subWin->show();
|
subWin->resize(400, 400);
|
||||||
|
|
||||||
|
if (m_mdiArea->subWindowList().size() == 1)
|
||||||
|
{
|
||||||
|
// Show first view maximized
|
||||||
|
subWin->showMaximized();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subWin->show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2148,3 +2165,24 @@ void RiuMainWindow::customMenuRequested(const QPoint& pos)
|
|||||||
menu.exec(globalPos);
|
menu.exec(globalPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<int> RiuMainWindow::windowGeometryForViewer(RiuViewer* viewer)
|
||||||
|
{
|
||||||
|
std::vector<int> geo;
|
||||||
|
|
||||||
|
QMdiSubWindow* mdiWindow = findMdiSubWindow(viewer);
|
||||||
|
if (mdiWindow)
|
||||||
|
{
|
||||||
|
geo.push_back(mdiWindow->pos().x());
|
||||||
|
geo.push_back(mdiWindow->pos().y());
|
||||||
|
geo.push_back(mdiWindow->size().width());
|
||||||
|
geo.push_back(mdiWindow->size().height());
|
||||||
|
geo.push_back(mdiWindow->isMaximized());
|
||||||
|
}
|
||||||
|
|
||||||
|
return geo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public:
|
|||||||
void cleanupGuiBeforeProjectClose();
|
void cleanupGuiBeforeProjectClose();
|
||||||
|
|
||||||
void removeViewer( RiuViewer* viewer );
|
void removeViewer( RiuViewer* viewer );
|
||||||
void addViewer(RiuViewer* viewer);
|
void addViewer(RiuViewer* viewer, const std::vector<int>& windowsGeometry);
|
||||||
void setActiveViewer(RiuViewer* subWindow);
|
void setActiveViewer(RiuViewer* subWindow);
|
||||||
|
|
||||||
void addWellLogViewer(RiuWellLogPlot* viewer);
|
void addWellLogViewer(RiuWellLogPlot* viewer);
|
||||||
@@ -113,6 +113,8 @@ public:
|
|||||||
void addRecentFiles(const QString& file);
|
void addRecentFiles(const QString& file);
|
||||||
void removeRecentFiles(const QString& file);
|
void removeRecentFiles(const QString& file);
|
||||||
|
|
||||||
|
std::vector<int> windowGeometryForViewer(RiuViewer* viewer);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void closeEvent(QCloseEvent* event);
|
virtual void closeEvent(QCloseEvent* event);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user