From acbe59d9c1718399b5e36c8eb920c7ba1dcc7e94 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 19 Apr 2013 07:43:37 +0200 Subject: [PATCH] Use showWindow as objectToggleField for reservoir views p4#: 21336 --- .../ProjectDataModel/RimReservoirView.cpp | 28 ++++++++++++++++--- .../ProjectDataModel/RimReservoirView.h | 5 ++-- .../ProjectDataModel/RimUiTreeView.cpp | 23 --------------- .../ProjectDataModel/RimUiTreeView.h | 1 - 4 files changed, 27 insertions(+), 30 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp index c570f21e56..1999524bb6 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp @@ -356,11 +356,23 @@ void RimReservoirView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, } else if (changedField == &showWindow ) { - bool generateDisplayModel = (viewer() == NULL); - updateViewerWidget(); - if (generateDisplayModel) + if (showWindow) { - createDisplayModelAndRedraw(); + bool generateDisplayModel = (viewer() == NULL); + updateViewerWidget(); + if (generateDisplayModel) + { + createDisplayModelAndRedraw(); + } + } + else + { + if (m_viewer) + { + RiuMainWindow::instance()->removeViewer(m_viewer); + delete m_viewer; + m_viewer = NULL; + } } } else if (changedField == &backgroundColor ) @@ -1377,3 +1389,11 @@ void RimReservoirView::setShowFaultsOnly(bool showFaults) updateDisplayModelVisibility(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +caf::PdmFieldHandle* RimReservoirView::objectToggleField() +{ + return &showWindow; +} + diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.h b/ApplicationCode/ProjectDataModel/RimReservoirView.h index 63cf596c1c..2889fdaf2e 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.h +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.h @@ -131,7 +131,7 @@ public: void endAnimation(); // 3D Viewer - RiuViewer* viewer(); + RiuViewer* viewer(); void updateViewerWidget(); void updateViewerWidgetWindowTitle(); void setDefaultView(); @@ -174,7 +174,8 @@ private: // Overridden PDM methods: public: - virtual caf::PdmFieldHandle* userDescriptionField() { return &name;} + virtual caf::PdmFieldHandle* userDescriptionField() { return &name; } + virtual caf::PdmFieldHandle* objectToggleField(); virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); protected: virtual void initAfterRead(); diff --git a/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp b/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp index cf25ac5717..2fe86494bd 100644 --- a/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp +++ b/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp @@ -84,7 +84,6 @@ void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event) if (dynamic_cast(uiItem->dataObject().p())) { QMenu menu; - menu.addAction(QString("Show 3D Window"), this, SLOT(slotShowWindow())); menu.addAction(QString("New View"), this, SLOT(slotAddView())); menu.addAction(QString("Delete"), this, SLOT(slotDeleteView())); menu.exec(event->globalPos()); @@ -250,28 +249,6 @@ void RimUiTreeView::slotDeleteItem() return; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RimUiTreeView::slotShowWindow() -{ - QModelIndex index = currentIndex(); - RimUiTreeModelPdm* myModel = dynamic_cast(model()); - caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex()); - RimReservoirView * riv = NULL; - if (riv = dynamic_cast(uiItem->dataObject().p())) - { - riv->showWindow = true; - bool generateDisplayModel = (riv->viewer() == NULL); - riv->updateViewerWidget(); - if (generateDisplayModel) - { - riv->createDisplayModelAndRedraw(); - } - - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimUiTreeView.h b/ApplicationCode/ProjectDataModel/RimUiTreeView.h index ff5b61d09f..03a088098d 100644 --- a/ApplicationCode/ProjectDataModel/RimUiTreeView.h +++ b/ApplicationCode/ProjectDataModel/RimUiTreeView.h @@ -49,7 +49,6 @@ protected: private slots: void slotAddChildItem(); void slotDeleteItem(); - void slotShowWindow(); void slotAddRangeFilter(); void slotAddSliceFilterI();