mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -06:00
#4312 Force new current sub window in MDI area to be maximized if closing a sub-window that was maximized
This commit is contained in:
parent
edf46496b7
commit
e41f8ec149
@ -1114,13 +1114,21 @@ RiuMessagePanel* RiuMainWindow::messagePanel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::removeViewer(QWidget* viewer)
|
||||
{
|
||||
bool wasMaximized = viewer && viewer->isMaximized();
|
||||
|
||||
setBlockSlotSubWindowActivated(true);
|
||||
m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
|
||||
setBlockSlotSubWindowActivated(false);
|
||||
if (subWindowsAreTiled())
|
||||
|
||||
if (wasMaximized && m_mdiArea->currentSubWindow())
|
||||
{
|
||||
m_mdiArea->currentSubWindow()->showMaximized();
|
||||
}
|
||||
else if (subWindowsAreTiled())
|
||||
{
|
||||
tileSubWindows();
|
||||
}
|
||||
|
||||
slotRefreshViewActions();
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,6 @@
|
||||
RiuPlotMainWindow::RiuPlotMainWindow()
|
||||
: m_activePlotViewWindow(nullptr)
|
||||
, m_windowMenu(nullptr)
|
||||
, m_blockSlotSubWindowActivated(false)
|
||||
{
|
||||
m_mdiArea = new RiuMdiArea;
|
||||
connect(m_mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), SLOT(slotSubWindowActivated(QMdiSubWindow*)));
|
||||
@ -587,13 +586,22 @@ void RiuPlotMainWindow::updateSummaryPlotToolBar(bool forceUpdateUi)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindow::removeViewer(QWidget* viewer)
|
||||
{
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
bool wasMaximized = viewer && viewer->isMaximized();
|
||||
|
||||
setBlockSlotSubWindowActivated(true);
|
||||
m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
if (subWindowsAreTiled())
|
||||
setBlockSlotSubWindowActivated(false);
|
||||
|
||||
if (wasMaximized && m_mdiArea->currentSubWindow())
|
||||
{
|
||||
m_mdiArea->currentSubWindow()->showMaximized();
|
||||
}
|
||||
else if (subWindowsAreTiled())
|
||||
{
|
||||
tileSubWindows();
|
||||
}
|
||||
|
||||
|
||||
refreshToolbars();
|
||||
}
|
||||
|
||||
@ -655,7 +663,7 @@ void RiuPlotMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
|
||||
|
||||
if (viewWindow && viewWindow != m_activePlotViewWindow)
|
||||
{
|
||||
if (!m_blockSlotSubWindowActivated)
|
||||
if (!blockSlotSubWindowActivated())
|
||||
{
|
||||
selectAsCurrentItem(viewWindow);
|
||||
}
|
||||
@ -672,12 +680,12 @@ void RiuPlotMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindow::setActiveViewer(QWidget* viewer)
|
||||
{
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
setBlockSlotSubWindowActivated(true);
|
||||
|
||||
QMdiSubWindow* swin = findMdiSubWindow(viewer);
|
||||
if (swin) m_mdiArea->setActiveSubWindow(swin);
|
||||
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
setBlockSlotSubWindowActivated(false);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -124,7 +124,5 @@ private:
|
||||
|
||||
caf::PdmUiPropertyView* m_pdmUiPropertyView;
|
||||
|
||||
bool m_blockSlotSubWindowActivated;
|
||||
|
||||
std::vector<QWidget*> m_temporaryWidgets;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user