mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4312 Move handleMdiWindowClosed call from widget destructors to MdiSubWindow closeEvent
* This way the mdi window still exists at the time of removal and we can handle the removal orderly
This commit is contained in:
@@ -98,41 +98,25 @@ void RiuMdiSubWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
QWidget* mainWidget = widget();
|
||||
|
||||
RimViewWindow* viewWindow = RiuInterfaceToViewWindow::viewWindowFromWidget(mainWidget);
|
||||
if (viewWindow)
|
||||
{
|
||||
viewWindow->setMdiWindowGeometry(windowGeometry());
|
||||
}
|
||||
else
|
||||
RimViewWindow* viewWindow = RiuInterfaceToViewWindow::viewWindowFromWidget(mainWidget);
|
||||
if (!viewWindow)
|
||||
{
|
||||
RiuViewer* viewer = mainWidget->findChild<RiuViewer*>();
|
||||
if (viewer)
|
||||
{
|
||||
viewer->ownerReservoirView()->setMdiWindowGeometry(windowGeometry());
|
||||
viewWindow = viewer->ownerViewWindow();
|
||||
}
|
||||
}
|
||||
|
||||
RiuMainWindowBase* windowToTile = nullptr;
|
||||
if (window() == RiaApplication::instance()->mainWindow())
|
||||
if (viewWindow)
|
||||
{
|
||||
if (RiaApplication::instance()->mainWindow()->subWindowsAreTiled())
|
||||
{
|
||||
windowToTile = RiaApplication::instance()->mainWindow();
|
||||
}
|
||||
viewWindow->setMdiWindowGeometry(windowGeometry());
|
||||
viewWindow->handleMdiWindowClosed();
|
||||
event->accept();
|
||||
}
|
||||
else if (window() == RiaApplication::instance()->mainPlotWindow())
|
||||
else
|
||||
{
|
||||
if (RiaApplication::instance()->mainPlotWindow()->subWindowsAreTiled())
|
||||
{
|
||||
windowToTile = RiaApplication::instance()->mainPlotWindow();
|
||||
}
|
||||
}
|
||||
|
||||
QMdiSubWindow::closeEvent(event);
|
||||
|
||||
if(windowToTile)
|
||||
{
|
||||
windowToTile->tileSubWindows();
|
||||
QMdiSubWindow::closeEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user