mirror of
				https://github.com/OPM/ResInsight.git
				synced 2025-02-25 18:55:39 -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:
		@@ -1114,13 +1114,21 @@ RiuMessagePanel* RiuMainWindow::messagePanel()
 | 
				
			|||||||
//--------------------------------------------------------------------------------------------------
 | 
					//--------------------------------------------------------------------------------------------------
 | 
				
			||||||
void RiuMainWindow::removeViewer(QWidget* viewer)
 | 
					void RiuMainWindow::removeViewer(QWidget* viewer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    bool wasMaximized = viewer && viewer->isMaximized();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setBlockSlotSubWindowActivated(true);
 | 
					    setBlockSlotSubWindowActivated(true);
 | 
				
			||||||
    m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
 | 
					    m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
 | 
				
			||||||
    setBlockSlotSubWindowActivated(false);
 | 
					    setBlockSlotSubWindowActivated(false);
 | 
				
			||||||
    if (subWindowsAreTiled())
 | 
					    
 | 
				
			||||||
 | 
					    if (wasMaximized && m_mdiArea->currentSubWindow())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_mdiArea->currentSubWindow()->showMaximized();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else if (subWindowsAreTiled())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        tileSubWindows();
 | 
					        tileSubWindows();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    slotRefreshViewActions();
 | 
					    slotRefreshViewActions();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,7 +63,6 @@
 | 
				
			|||||||
RiuPlotMainWindow::RiuPlotMainWindow()
 | 
					RiuPlotMainWindow::RiuPlotMainWindow()
 | 
				
			||||||
    : m_activePlotViewWindow(nullptr)
 | 
					    : m_activePlotViewWindow(nullptr)
 | 
				
			||||||
    , m_windowMenu(nullptr)
 | 
					    , m_windowMenu(nullptr)
 | 
				
			||||||
    , m_blockSlotSubWindowActivated(false)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    m_mdiArea = new RiuMdiArea;
 | 
					    m_mdiArea = new RiuMdiArea;
 | 
				
			||||||
    connect(m_mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), SLOT(slotSubWindowActivated(QMdiSubWindow*)));
 | 
					    connect(m_mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), SLOT(slotSubWindowActivated(QMdiSubWindow*)));
 | 
				
			||||||
@@ -587,13 +586,22 @@ void RiuPlotMainWindow::updateSummaryPlotToolBar(bool forceUpdateUi)
 | 
				
			|||||||
//--------------------------------------------------------------------------------------------------
 | 
					//--------------------------------------------------------------------------------------------------
 | 
				
			||||||
void RiuPlotMainWindow::removeViewer(QWidget* viewer)
 | 
					void RiuPlotMainWindow::removeViewer(QWidget* viewer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    m_blockSlotSubWindowActivated = true;
 | 
					    bool wasMaximized = viewer && viewer->isMaximized();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    setBlockSlotSubWindowActivated(true);
 | 
				
			||||||
    m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
 | 
					    m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
 | 
				
			||||||
    m_blockSlotSubWindowActivated = false;
 | 
					    setBlockSlotSubWindowActivated(false);
 | 
				
			||||||
    if (subWindowsAreTiled())
 | 
					    
 | 
				
			||||||
 | 
					    if (wasMaximized && m_mdiArea->currentSubWindow())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_mdiArea->currentSubWindow()->showMaximized();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else if (subWindowsAreTiled())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        tileSubWindows();
 | 
					        tileSubWindows();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    refreshToolbars();
 | 
					    refreshToolbars();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -655,7 +663,7 @@ void RiuPlotMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (viewWindow && viewWindow != m_activePlotViewWindow)
 | 
					    if (viewWindow && viewWindow != m_activePlotViewWindow)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (!m_blockSlotSubWindowActivated)
 | 
					        if (!blockSlotSubWindowActivated())
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            selectAsCurrentItem(viewWindow);
 | 
					            selectAsCurrentItem(viewWindow);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -672,12 +680,12 @@ void RiuPlotMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
 | 
				
			|||||||
//--------------------------------------------------------------------------------------------------
 | 
					//--------------------------------------------------------------------------------------------------
 | 
				
			||||||
void RiuPlotMainWindow::setActiveViewer(QWidget* viewer)
 | 
					void RiuPlotMainWindow::setActiveViewer(QWidget* viewer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    m_blockSlotSubWindowActivated = true;
 | 
					    setBlockSlotSubWindowActivated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QMdiSubWindow* swin = findMdiSubWindow(viewer);
 | 
					    QMdiSubWindow* swin = findMdiSubWindow(viewer);
 | 
				
			||||||
    if (swin) m_mdiArea->setActiveSubWindow(swin);
 | 
					    if (swin) m_mdiArea->setActiveSubWindow(swin);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    m_blockSlotSubWindowActivated = false;
 | 
					    setBlockSlotSubWindowActivated(false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//--------------------------------------------------------------------------------------------------
 | 
					//--------------------------------------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -124,7 +124,5 @@ private:
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    caf::PdmUiPropertyView*     m_pdmUiPropertyView;
 | 
					    caf::PdmUiPropertyView*     m_pdmUiPropertyView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool                        m_blockSlotSubWindowActivated;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    std::vector<QWidget*>       m_temporaryWidgets;
 | 
					    std::vector<QWidget*>       m_temporaryWidgets;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user