mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
of windows. This might introduce problems.
This commit is contained in:
@@ -17,7 +17,9 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RimViewWindow.h"
|
||||
|
||||
#include "RimMdiWindowController.h"
|
||||
#include "cvfAssert.h"
|
||||
#include <QWidget>
|
||||
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimViewWindow, "ViewWindow"); // Do not use. Abstract class
|
||||
|
||||
@@ -26,9 +28,14 @@ CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimViewWindow, "ViewWindow"); // Do not use. Ab
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewWindow::RimViewWindow(void)
|
||||
{
|
||||
CAF_PDM_InitFieldNoDefault(&m_windowController, "WindowController", "", "", "", "");
|
||||
m_windowController.uiCapability()->setUiHidden(true);
|
||||
|
||||
|
||||
// Obsolete field
|
||||
CAF_PDM_InitFieldNoDefault(&m_windowGeometry, "WindowGeometry", "", "", "", "");
|
||||
m_windowGeometry.uiCapability()->setUiHidden(true);
|
||||
|
||||
m_windowGeometry.xmlCapability()->setIOWritable(false);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -36,7 +43,31 @@ RimViewWindow::RimViewWindow(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewWindow::~RimViewWindow(void)
|
||||
{
|
||||
if ( m_windowController() ) delete m_windowController() ;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::removeWidgetFromMDI()
|
||||
{
|
||||
if ( m_windowController() ) m_windowController->removeWindowFromMDI();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::handleViewerDeletion()
|
||||
{
|
||||
if ( m_windowController() ) m_windowController->handleViewerDeletion();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::updateViewerWidgetBasic()
|
||||
{
|
||||
if ( m_windowController() ) m_windowController->updateViewerWidget();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -44,17 +75,10 @@ RimViewWindow::~RimViewWindow(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::setMdiWindowGeometry(const RimMdiWindowGeometry& windowGeometry)
|
||||
{
|
||||
std::vector<int> geom;
|
||||
geom.clear();
|
||||
if (windowGeometry.isValid())
|
||||
{
|
||||
geom.push_back(windowGeometry.x);
|
||||
geom.push_back(windowGeometry.y);
|
||||
geom.push_back(windowGeometry.width);
|
||||
geom.push_back(windowGeometry.height);
|
||||
geom.push_back(windowGeometry.isMaximized);
|
||||
}
|
||||
m_windowGeometry.setValue(geom);
|
||||
CVF_ASSERT(m_windowController());
|
||||
|
||||
if (m_windowController()) m_windowController()->setMdiWindowGeometry(windowGeometry);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -62,17 +86,84 @@ void RimViewWindow::setMdiWindowGeometry(const RimMdiWindowGeometry& windowGeome
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimMdiWindowGeometry RimViewWindow::mdiWindowGeometry()
|
||||
{
|
||||
CVF_ASSERT(m_windowController());
|
||||
|
||||
RimMdiWindowGeometry wg;
|
||||
if (m_windowGeometry.value().size() == 5)
|
||||
{
|
||||
wg.x = m_windowGeometry.value()[0];
|
||||
wg.y = m_windowGeometry.value()[1];
|
||||
wg.width = m_windowGeometry.value()[2];
|
||||
wg.height = m_windowGeometry.value()[3];
|
||||
wg.isMaximized = m_windowGeometry.value()[4];
|
||||
}
|
||||
if (m_windowController()) return m_windowController()->mdiWindowGeometry();
|
||||
else return RimMdiWindowGeometry();
|
||||
|
||||
return wg;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if ( m_windowController() )
|
||||
{
|
||||
if ( changedField == getShowWindowField() )
|
||||
{
|
||||
m_windowController()->showWindowFieldChangedByUi();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::updateViewerWidgetWindowTitle()
|
||||
{
|
||||
if ( viewWidget() )
|
||||
{
|
||||
caf::PdmUiFieldHandle* uiFieldHandle = this->userDescriptionField()->uiCapability();
|
||||
if ( uiFieldHandle )
|
||||
{
|
||||
QVariant v = uiFieldHandle->uiValue();
|
||||
viewWidget()->setWindowTitle(v.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::setAsMDI(int mainWindowID)
|
||||
{
|
||||
if ( !m_windowController() )
|
||||
{
|
||||
m_windowController = new RimMdiWindowController;
|
||||
RimMdiWindowGeometry mwg;
|
||||
mwg.mainWindowID = mainWindowID;
|
||||
setMdiWindowGeometry(mwg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
#include "RimView.h"
|
||||
|
||||
void RimViewWindow::initAfterRead()
|
||||
{
|
||||
if (m_windowGeometry.value().size() == 5)
|
||||
{
|
||||
RimMdiWindowGeometry wg;
|
||||
int mainWindowID = -1;
|
||||
|
||||
if (dynamic_cast<RimView*> (this))
|
||||
mainWindowID = 0;
|
||||
else
|
||||
mainWindowID = 1;
|
||||
|
||||
wg.mainWindowID = mainWindowID;
|
||||
wg.x = m_windowGeometry.value()[0];
|
||||
wg.y = m_windowGeometry.value()[1];
|
||||
wg.width = m_windowGeometry.value()[2];
|
||||
wg.height = m_windowGeometry.value()[3];
|
||||
wg.isMaximized = m_windowGeometry.value()[4];
|
||||
|
||||
setAsMDI(mainWindowID);
|
||||
setMdiWindowGeometry(wg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user