diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 4a0f3d0358..0c3c1815f3 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -392,9 +392,9 @@ void RimEclipseView::createDisplayModel() m_visibleGridParts = geometryTypesToAdd; } - if (!this->propertyFilterCollection()->hasActiveFilters() || faultCollection()->showFaultsOutsideFilters()) + if (faultCollection()->showFaultsOutsideFilters() || !this->propertyFilterCollection()->hasActiveFilters() ) { - updateFaultForcedVisibility(); + forceFaultVisibilityOn(); std::vector faultGeometryTypesToAppend = visibleFaultGeometryTypes(); @@ -699,7 +699,7 @@ void RimEclipseView::loadDataAndUpdate() syncronizeWellsWithResults(); - createDisplayModelAndRedraw(); + this->scheduleCreateDisplayModelAndRedraw(); if (cameraPosition().isIdentity()) { @@ -1292,8 +1292,14 @@ void RimEclipseView::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimEclipseView::updateFaultForcedVisibility() +void RimEclipseView::forceFaultVisibilityOn() { + if (this->controllingViewLink() && this->controllingViewLink()->syncVisibleCells()) + { + m_reservoirGridPartManager->setFaultForceVisibilityForGeometryType(OVERRIDDEN_CELL_VISIBILITY, true); + return; + } + // Force visibility of faults based on application state // As fault geometry is visible in grid visualization mode, fault geometry must be forced visible // even if the fault item is disabled in project tree view @@ -1316,7 +1322,17 @@ std::vector RimEclipseView::visibleFaultGeometryTypes() const std::vector faultParts; if (this->controllingViewLink() && this->controllingViewLink()->syncVisibleCells()) { - faultParts.push_back(OVERRIDDEN_CELL_VISIBILITY); + faultParts.push_back(OVERRIDDEN_CELL_VISIBILITY); + if (this->faultCollection()->showFaultsOutsideFilters()) + { + faultParts.push_back(ACTIVE); + faultParts.push_back(ALL_WELL_CELLS); + + if (this->showInactiveCells()) + { + faultParts.push_back(INACTIVE); + } + } } else if (this->propertyFilterCollection()->hasActiveFilters() && !faultCollection()->showFaultsOutsideFilters()) { diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.h b/ApplicationCode/ProjectDataModel/RimEclipseView.h index 198b2c5f46..0eeca82b2e 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.h @@ -150,7 +150,7 @@ private: virtual void updateViewerWidgetWindowTitle(); std::vector visibleFaultGeometryTypes() const; - void updateFaultForcedVisibility(); + void forceFaultVisibilityOn(); void updateFaultColors(); void syncronizeWellsWithResults();