mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
(#477) Fixed missing updates after toggle or delete of ViewLinker
Fixed missing delete of ViewLinker child objects
This commit is contained in:
parent
f81cf98580
commit
1e232c23c5
@ -65,6 +65,7 @@ RimViewLink::RimViewLink(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewLink::~RimViewLink(void)
|
||||
{
|
||||
this->removeOverrides();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -461,3 +462,19 @@ void RimViewLink::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiO
|
||||
visibleCells->add(&syncPropertyFilters);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::removeOverrides()
|
||||
{
|
||||
|
||||
if (m_managedView)
|
||||
{
|
||||
RimEclipseView* manEclView = managedEclipseView();
|
||||
RimGeoMechView* manGeoView = managedGeoView();
|
||||
m_managedView->setOverrideRangeFilterCollection(NULL);
|
||||
if (manEclView) manEclView->setOverridePropertyFilterCollection(NULL);
|
||||
if (manGeoView) manGeoView->setOverridePropertyFilterCollection(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
|
||||
void configureOverrides();
|
||||
void updateOptionSensitivity();
|
||||
void removeOverrides();
|
||||
|
||||
protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
|
@ -72,6 +72,7 @@ RimViewLinker::RimViewLinker(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewLinker::~RimViewLinker(void)
|
||||
{
|
||||
viewLinks.deleteAllChildObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -419,6 +420,18 @@ bool RimViewLinker::isActive()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLinker::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (&m_isActive == changedField)
|
||||
{
|
||||
if (m_isActive)
|
||||
{
|
||||
this->applyAllOperations();
|
||||
}
|
||||
else
|
||||
{
|
||||
this->removeOverrides();
|
||||
}
|
||||
}
|
||||
|
||||
updateUiIcon();
|
||||
}
|
||||
|
||||
@ -514,3 +527,17 @@ void RimViewLinker::scheduleCreateDisplayModelAndRedrawForDependentViews()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLinker::removeOverrides()
|
||||
{
|
||||
for (size_t i = 0; i < viewLinks.size(); i++)
|
||||
{
|
||||
if (viewLinks[i]->managedView())
|
||||
{
|
||||
viewLinks[i]->removeOverrides();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
void scheduleCreateDisplayModelAndRedrawForDependentViews();
|
||||
|
||||
void configureOverrides();
|
||||
void removeOverrides();
|
||||
|
||||
void allViews(std::vector<RimView*>& views);
|
||||
|
||||
|
@ -71,6 +71,24 @@ void RimViewLinkerCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTre
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLinkerCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (&isActive == changedField)
|
||||
{
|
||||
if (isActive)
|
||||
{
|
||||
for (size_t cIdx = 0; cIdx < viewLinkers.size(); ++cIdx)
|
||||
{
|
||||
viewLinkers[cIdx]->applyAllOperations();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t cIdx = 0; cIdx < viewLinkers.size(); ++cIdx)
|
||||
{
|
||||
viewLinkers[cIdx]->removeOverrides();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->updateUiIconFromToggleField();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user