From d757c0c92a8bd4a4e4fd39f677421b7bf543cb4d Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 14 Mar 2018 11:36:15 +0100 Subject: [PATCH] #2545 Well CF Visualization: Use "Well Connection Factors" in UI --- .../ProjectDataModel/RimEclipseView.cpp | 2 +- .../RimVirtualPerforationResults.cpp | 65 ++++++++++++------- .../RimVirtualPerforationResults.h | 2 + 3 files changed, 43 insertions(+), 26 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 2f18f351fb..332576e67a 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -126,7 +126,7 @@ RimEclipseView::RimEclipseView() m_fractureColors = new RimStimPlanColors(); m_fractureColors.uiCapability()->setUiHidden(true); - CAF_PDM_InitFieldNoDefault(&m_virtualPerforationResult, "VirtualPerforationResult", "Virtual Perforation Result", "", "", ""); + CAF_PDM_InitFieldNoDefault(&m_virtualPerforationResult, "VirtualPerforationResult", "", "", "", ""); m_virtualPerforationResult = new RimVirtualPerforationResults(); m_virtualPerforationResult.uiCapability()->setUiHidden(true); diff --git a/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.cpp b/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.cpp index d074896434..264e76b6cb 100644 --- a/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.cpp +++ b/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.cpp @@ -1,37 +1,38 @@ ///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2018 Statoil ASA -// +// // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. -// +// // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. -// -// See the GNU General Public License at +// +// See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RimVirtualPerforationResults.h" -#include "RimLegendConfig.h" #include "RimEclipseView.h" - - +#include "RimLegendConfig.h" CAF_PDM_SOURCE_INIT(RimVirtualPerforationResults, "RimVirtualPerforationResults"); - //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RimVirtualPerforationResults::RimVirtualPerforationResults() { - CAF_PDM_InitObject("Virtual Perforation Results", ":/CellResult.png", "", ""); + // clang-format off + + QString connectionFactorUiName = "Well Connection Factors"; + + CAF_PDM_InitObject(connectionFactorUiName, ":/CellResult.png", "", ""); CAF_PDM_InitField(&m_isActive, "ShowConnectionFactors", true, "", "", "", ""); CAF_PDM_InitField(&m_geometryScaleFactor, "GeometryScaleFactor", 0.2, "Geometry Scale Factor", "", "", ""); @@ -40,19 +41,18 @@ RimVirtualPerforationResults::RimVirtualPerforationResults() m_legendConfig.uiCapability()->setUiHidden(true); m_legendConfig = new RimLegendConfig(); - m_legendConfig->setTitle("Virtual Connection Factor"); + m_legendConfig->setTitle(connectionFactorUiName); + + // clang-format on } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -RimVirtualPerforationResults::~RimVirtualPerforationResults() -{ - -} +RimVirtualPerforationResults::~RimVirtualPerforationResults() {} //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- bool RimVirtualPerforationResults::isActive() const { @@ -60,7 +60,7 @@ bool RimVirtualPerforationResults::isActive() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- double RimVirtualPerforationResults::geometryScaleFactor() const { @@ -68,7 +68,7 @@ double RimVirtualPerforationResults::geometryScaleFactor() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RimLegendConfig* RimVirtualPerforationResults::legendConfig() const { @@ -76,10 +76,17 @@ RimLegendConfig* RimVirtualPerforationResults::legendConfig() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RimVirtualPerforationResults::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) +void RimVirtualPerforationResults::fieldChangedByUi(const caf::PdmFieldHandle* changedField, + const QVariant& oldValue, + const QVariant& newValue) { + if (changedField == &m_isActive) + { + updateUiIconFromToggleField(); + } + RimEclipseView* eclView = nullptr; this->firstAncestorOrThisOfTypeAsserted(eclView); @@ -87,7 +94,7 @@ void RimVirtualPerforationResults::fieldChangedByUi(const caf::PdmFieldHandle* c } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- caf::PdmFieldHandle* RimVirtualPerforationResults::objectToggleField() { @@ -95,9 +102,10 @@ caf::PdmFieldHandle* RimVirtualPerforationResults::objectToggleField() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -QList RimVirtualPerforationResults::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) +QList RimVirtualPerforationResults::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, + bool* useOptionsOnly) { QList options; *useOptionsOnly = true; @@ -106,7 +114,7 @@ QList RimVirtualPerforationResults::calculateValueOption } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RimVirtualPerforationResults::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) { @@ -115,3 +123,10 @@ void RimVirtualPerforationResults::defineUiOrdering(QString uiConfigName, caf::P uiOrdering.skipRemainingFields(true); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimVirtualPerforationResults::initAfterRead() +{ + updateUiIconFromToggleField(); +} diff --git a/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.h b/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.h index 10b1b756d9..6e79b6f597 100644 --- a/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.h +++ b/ApplicationCode/ProjectDataModel/RimVirtualPerforationResults.h @@ -43,11 +43,13 @@ public: double geometryScaleFactor() const; RimLegendConfig* legendConfig() const; + private: virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; virtual caf::PdmFieldHandle* objectToggleField() override; virtual QList calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; + virtual void initAfterRead() override; private: caf::PdmField m_isActive;