#1094 Gray out wells not visible because they do not intersect visible cells

This commit is contained in:
Magne Sjaastad 2017-01-27 15:50:17 +01:00
parent bd14f97a2b
commit 7b6574327e
3 changed files with 33 additions and 0 deletions

View File

@ -791,6 +791,13 @@ void RimEclipseView::updateDisplayModelVisibility()
m_viewer->update(); m_viewer->update();
faultCollection->updateConnectedEditors(); faultCollection->updateConnectedEditors();
// This is required to update the read-only state of simulation wells
// when a range filter is manipulated and visible simulation wells might change
//
// The visibility is controlled by RimEclipseWell::defineUiTreeOrdering
// updateConnectedEditors will call recursively on child objects
wellCollection->updateConnectedEditors();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -231,6 +231,31 @@ void RimEclipseWell::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseWell::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
{
const RimEclipseView* reservoirView = nullptr;
this->firstAncestorOrThisOfType(reservoirView);
if (!reservoirView) return;
const RimEclipseWellCollection* wellColl = nullptr;
this->firstAncestorOrThisOfType(wellColl);
if (!wellColl) return;
if (wellColl->showWellsIntersectingVisibleCells() && !this->intersectsVisibleCells(static_cast<size_t>(reservoirView->currentTimeStep())))
{
// Mark well as read only if well is not intersecting visible cells
this->uiCapability()->setUiReadOnly(true);
}
else
{
this->uiCapability()->setUiReadOnly(false);
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -83,6 +83,7 @@ public:
protected: protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
private: private:
bool intersectsVisibleCells(size_t frameIndex) const; bool intersectsVisibleCells(size_t frameIndex) const;