#1148 Use tristate to indicate visibility of simulation well geometry

This commit is contained in:
Magne Sjaastad
2017-02-01 08:16:30 +01:00
parent 8c01c23e5e
commit a4ce5f532d
4 changed files with 129 additions and 35 deletions

View File

@@ -23,11 +23,10 @@
#include "cafAppEnum.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
#include "cafPdmFieldCvfColor.h" // Include to make Pdm work for cvf::Color
#include "cafPdmObject.h"
#include "cafPdmPointer.h"
// Include to make Pdm work for cvf::Color
#include "cafPdmFieldCvfColor.h"
#include "cafTristate.h"
class RimEclipseView;
class RimEclipseWell;
@@ -89,11 +88,6 @@ public:
caf::PdmField<bool> isActive;
caf::PdmField<bool> showWellsIntersectingVisibleCells;
caf::PdmField<bool> showWellLabel;
caf::PdmField<bool> showWellHead;
caf::PdmField<bool> showWellPipe;
caf::PdmField<bool> showWellSpheres;
caf::PdmField<double> wellHeadScaleFactor;
caf::PdmField<double> pipeScaleFactor;
caf::PdmField<double> spheresScaleFactor;
@@ -126,6 +120,8 @@ public:
protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual caf::PdmFieldHandle* objectToggleField() override;
virtual void initAfterRead() override;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
@@ -133,6 +129,8 @@ protected:
private:
void calculateWellGeometryVisibility(size_t frameIndex);
static cvf::Color3f cycledPaletteColor(size_t colorIndex);
void updateStateForVisibilityCheckboxes();
void updateStateFromEnabledChildCount(size_t showLabelCount, caf::PdmField<caf::Tristate>* fieldToUpdate);
private:
RimEclipseView* m_reservoirView;
@@ -143,6 +141,11 @@ private:
caf::PdmField<bool> m_applySingleColorToWells;
caf::PdmField<bool> m_applyIndividualColorsToWells;
caf::PdmField<caf::Tristate> m_showWellLabel;
caf::PdmField<caf::Tristate> m_showWellHead;
caf::PdmField<caf::Tristate> m_showWellPipe;
caf::PdmField<caf::Tristate> m_showWellSpheres;
// Obsolete fields
caf::PdmField<WellVisibilityEnum> obsoleteField_wellPipeVisibility;
caf::PdmField<WellCellsRangeFilterEnum> obsoleteField_wellCellsToRangeFilterMode;