mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#493) Correct handling of MDI sub window activation.
Setting bool member variable that blocks sub window activation slot temporarily at the correct places - the main window methods that sets active viewer and removes a viewer.
This commit is contained in:
@@ -1180,7 +1180,9 @@ QMdiSubWindow* RiuMainWindow::findMdiSubWindow(QWidget* viewer)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::removeViewer(QWidget* viewer)
|
||||
{
|
||||
m_mdiArea->removeSubWindow( findMdiSubWindow(viewer));
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
m_mdiArea->removeSubWindow(findMdiSubWindow(viewer));
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
|
||||
slotRefreshViewActions();
|
||||
}
|
||||
@@ -1578,8 +1580,12 @@ void RiuMainWindow::slotEditPreferences()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::setActiveViewer(QWidget* viewer)
|
||||
{
|
||||
QMdiSubWindow * swin = findMdiSubWindow(viewer);
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
|
||||
QMdiSubWindow * swin = findMdiSubWindow(viewer);
|
||||
if (swin) m_mdiArea->setActiveSubWindow(swin);
|
||||
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1680,9 +1686,7 @@ void RiuMainWindow::selectedObjectsChanged()
|
||||
// Set focus in MDI area to this window if it exists
|
||||
if (selectedReservoirView->viewer())
|
||||
{
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
setActiveViewer(selectedReservoirView->viewer()->layoutWidget());
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
}
|
||||
isActiveViewChanged = true;
|
||||
}
|
||||
@@ -1698,9 +1702,7 @@ void RiuMainWindow::selectedObjectsChanged()
|
||||
{
|
||||
if (selectedWellLogPlot->viewer())
|
||||
{
|
||||
m_blockSlotSubWindowActivated = true;
|
||||
setActiveViewer(selectedWellLogPlot->viewer());
|
||||
m_blockSlotSubWindowActivated = false;
|
||||
|
||||
}
|
||||
isActiveViewChanged = true;
|
||||
@@ -2287,11 +2289,3 @@ bool RiuMainWindow::isAnyMdiSubWindowVisible()
|
||||
return m_mdiArea->subWindowList().size() > 0;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::blockSubWindowActivatedSlot(bool block)
|
||||
{
|
||||
m_blockSlotSubWindowActivated = block;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user