mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#483) Improved how filters and filter collections are grayed out
This commit is contained in:
@@ -103,8 +103,6 @@ void RimCellFilter::updateIconState()
|
|||||||
|
|
||||||
QIcon newIcon(icPixmap);
|
QIcon newIcon(icPixmap);
|
||||||
this->setUiIcon(newIcon);
|
this->setUiIcon(newIcon);
|
||||||
|
|
||||||
this->uiCapability()->updateConnectedEditors();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -109,6 +109,14 @@ void RimCellRangeFilter::computeAndSetValidValues()
|
|||||||
this->updateIconState();
|
this->updateIconState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimCellRangeFilter::updateActiveState()
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(isRangeFilterControlled());
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -226,21 +234,13 @@ void RimCellRangeFilter::defineEditorAttribute(const caf::PdmFieldHandle* field,
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimCellRangeFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimCellRangeFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
RimView* rimView = NULL;
|
bool readOnlyState = isRangeFilterControlled();
|
||||||
firstAnchestorOrThisOfType(rimView);
|
|
||||||
CVF_ASSERT(rimView);
|
|
||||||
|
|
||||||
bool isRangeFilterControlled = false;
|
|
||||||
if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled())
|
|
||||||
{
|
|
||||||
isRangeFilterControlled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<caf::PdmFieldHandle*> objFields;
|
std::vector<caf::PdmFieldHandle*> objFields;
|
||||||
this->fields(objFields);
|
this->fields(objFields);
|
||||||
for (size_t i = 0; i < objFields.size(); i ++)
|
for (size_t i = 0; i < objFields.size(); i ++)
|
||||||
{
|
{
|
||||||
objFields[i]->uiCapability()->setUiReadOnly(isRangeFilterControlled);
|
objFields[i]->uiCapability()->setUiReadOnly(readOnlyState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,17 +251,8 @@ void RimCellRangeFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrde
|
|||||||
{
|
{
|
||||||
RimCellFilter::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
RimCellFilter::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
||||||
|
|
||||||
RimView* rimView = NULL;
|
updateActiveState();
|
||||||
firstAnchestorOrThisOfType(rimView);
|
updateIconState();
|
||||||
CVF_ASSERT(rimView);
|
|
||||||
|
|
||||||
bool isRangeFilterControlled = false;
|
|
||||||
if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled())
|
|
||||||
{
|
|
||||||
isRangeFilterControlled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
isActive.uiCapability()->setUiReadOnly(isRangeFilterControlled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -295,6 +286,24 @@ QList<caf::PdmOptionItemInfo> RimCellRangeFilter::calculateValueOptions(const ca
|
|||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimCellRangeFilter::isRangeFilterControlled()
|
||||||
|
{
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
firstAnchestorOrThisOfType(rimView);
|
||||||
|
CVF_ASSERT(rimView);
|
||||||
|
|
||||||
|
bool isRangeFilterControlled = false;
|
||||||
|
if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled())
|
||||||
|
{
|
||||||
|
isRangeFilterControlled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isRangeFilterControlled;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ public:
|
|||||||
|
|
||||||
void computeAndSetValidValues();
|
void computeAndSetValidValues();
|
||||||
|
|
||||||
|
void updateActiveState();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
@@ -68,6 +69,9 @@ protected:
|
|||||||
|
|
||||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly );
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly );
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool isRangeFilterControlled();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const cvf::StructGridInterface* selectedGrid();
|
const cvf::StructGridInterface* selectedGrid();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ RigActiveCellInfo* RimCellRangeFilterCollection::activeCellInfo() const
|
|||||||
void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
updateIconState();
|
updateIconState();
|
||||||
|
uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
updateDisplayModeNotifyManagedViews(NULL);
|
updateDisplayModeNotifyManagedViews(NULL);
|
||||||
}
|
}
|
||||||
@@ -331,12 +332,11 @@ void RimCellRangeFilterCollection::updateIconState()
|
|||||||
|
|
||||||
updateUiIconFromState(activeIcon);
|
updateUiIconFromState(activeIcon);
|
||||||
|
|
||||||
uiCapability()->updateConnectedEditors();
|
|
||||||
|
|
||||||
for (size_t i = 0; i < rangeFilters.size(); i++)
|
for (size_t i = 0; i < rangeFilters.size(); i++)
|
||||||
{
|
{
|
||||||
RimCellFilter* cellFilter = rangeFilters[i];
|
RimCellRangeFilter* rangeFilter = rangeFilters[i];
|
||||||
cellFilter->updateIconState();
|
rangeFilter->updateActiveState();
|
||||||
|
rangeFilter->updateIconState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,5 +356,7 @@ void RimCellRangeFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering&
|
|||||||
{
|
{
|
||||||
isActive.uiCapability()->setUiReadOnly(false);
|
isActive.uiCapability()->setUiReadOnly(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateIconState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimReservoirCellResultsStorage.h"
|
#include "RimReservoirCellResultsStorage.h"
|
||||||
|
#include "RimViewController.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
@@ -104,6 +105,7 @@ void RimEclipsePropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang
|
|||||||
{
|
{
|
||||||
updateFilterName();
|
updateFilterName();
|
||||||
this->updateIconState();
|
this->updateIconState();
|
||||||
|
this->uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
parentContainer()->updateDisplayModelNotifyManagedViews();
|
parentContainer()->updateDisplayModelNotifyManagedViews();
|
||||||
}
|
}
|
||||||
@@ -152,6 +154,66 @@ void RimEclipsePropertyFilter::defineUiOrdering(QString uiConfigName, caf::PdmUi
|
|||||||
uiOrdering.add(&lowerBound);
|
uiOrdering.add(&lowerBound);
|
||||||
uiOrdering.add(&upperBound);
|
uiOrdering.add(&upperBound);
|
||||||
uiOrdering.add(&filterMode);
|
uiOrdering.add(&filterMode);
|
||||||
|
|
||||||
|
updateReadOnlyStateOfAllFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimEclipsePropertyFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName)
|
||||||
|
{
|
||||||
|
PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
||||||
|
|
||||||
|
updateActiveState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimEclipsePropertyFilter::updateReadOnlyStateOfAllFields()
|
||||||
|
{
|
||||||
|
bool readOnlyState = isPropertyFilterControlled();
|
||||||
|
|
||||||
|
std::vector<caf::PdmFieldHandle*> objFields;
|
||||||
|
this->fields(objFields);
|
||||||
|
|
||||||
|
// Include fields declared in RimResultDefinition
|
||||||
|
objFields.push_back(&(resultDefinition->m_resultTypeUiField));
|
||||||
|
objFields.push_back(&(resultDefinition->m_porosityModelUiField));
|
||||||
|
objFields.push_back(&(resultDefinition->m_resultVariableUiField));
|
||||||
|
|
||||||
|
for (size_t i = 0; i < objFields.size(); i++)
|
||||||
|
{
|
||||||
|
objFields[i]->uiCapability()->setUiReadOnly(readOnlyState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimEclipsePropertyFilter::isPropertyFilterControlled()
|
||||||
|
{
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
firstAnchestorOrThisOfType(rimView);
|
||||||
|
CVF_ASSERT(rimView);
|
||||||
|
|
||||||
|
bool isPropertyFilterControlled = false;
|
||||||
|
RimViewController* vc = rimView->viewController();
|
||||||
|
if (vc && vc->isPropertyFilterOveridden())
|
||||||
|
{
|
||||||
|
isPropertyFilterControlled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isPropertyFilterControlled;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimEclipsePropertyFilter::updateActiveState()
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(isPropertyFilterControlled());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -57,10 +57,18 @@ public:
|
|||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
virtual void initAfterRead();
|
virtual void initAfterRead();
|
||||||
|
|
||||||
|
void updateActiveState();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) ;
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
||||||
|
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||||
|
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void updateReadOnlyStateOfAllFields();
|
||||||
|
bool isPropertyFilterControlled();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double m_minimumResultValue;
|
double m_minimumResultValue;
|
||||||
double m_maximumResultValue;
|
double m_maximumResultValue;
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ RimEclipseView* RimEclipsePropertyFilterCollection::reservoirView()
|
|||||||
void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
updateIconState();
|
updateIconState();
|
||||||
|
uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
updateDisplayModelNotifyManagedViews();
|
updateDisplayModelNotifyManagedViews();
|
||||||
}
|
}
|
||||||
@@ -170,5 +171,33 @@ void RimEclipsePropertyFilterCollection::updateIconState()
|
|||||||
|
|
||||||
updateUiIconFromState(activeIcon);
|
updateUiIconFromState(activeIcon);
|
||||||
|
|
||||||
uiCapability()->updateConnectedEditors();
|
for (size_t i = 0; i < propertyFilters.size(); i++)
|
||||||
|
{
|
||||||
|
RimEclipsePropertyFilter* cellFilter = propertyFilters[i];
|
||||||
|
cellFilter->updateActiveState();
|
||||||
|
cellFilter->updateIconState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimEclipsePropertyFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName)
|
||||||
|
{
|
||||||
|
PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
||||||
|
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(rimView);
|
||||||
|
RimViewController* viewController = rimView->viewController();
|
||||||
|
if (viewController && (viewController->isPropertyFilterOveridden()
|
||||||
|
|| viewController->isVisibleCellsOveridden()))
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(true, uiConfigName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(false, uiConfigName);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateIconState();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,12 +48,10 @@ public:
|
|||||||
void updateDisplayModelNotifyManagedViews();
|
void updateDisplayModelNotifyManagedViews();
|
||||||
void updateIconState();
|
void updateIconState();
|
||||||
|
|
||||||
|
|
||||||
// Overridden methods
|
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
|
||||||
virtual caf::PdmFieldHandle* objectToggleField();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Overridden methods
|
// Overridden methods
|
||||||
virtual void initAfterRead();
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
|
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||||
|
virtual void initAfterRead();
|
||||||
|
virtual caf::PdmFieldHandle* objectToggleField();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1667,7 +1667,9 @@ void RimEclipseView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalV
|
|||||||
void RimEclipseView::updateIconStateForFilterCollections()
|
void RimEclipseView::updateIconStateForFilterCollections()
|
||||||
{
|
{
|
||||||
m_rangeFilterCollection()->updateIconState();
|
m_rangeFilterCollection()->updateIconState();
|
||||||
|
m_rangeFilterCollection()->uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
// NB - notice that it is the filter collection managed by this view that the icon update applies to
|
// NB - notice that it is the filter collection managed by this view that the icon update applies to
|
||||||
m_propertyFilterCollection()->updateIconState();
|
m_propertyFilterCollection()->updateIconState();
|
||||||
|
m_propertyFilterCollection()->uiCapability()->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,18 +18,21 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "RimGeoMechPropertyFilter.h"
|
#include "RimGeoMechPropertyFilter.h"
|
||||||
#include "RimGeoMechPropertyFilterCollection.h"
|
|
||||||
#include "RimGeoMechResultDefinition.h"
|
|
||||||
|
|
||||||
#include "cvfMath.h"
|
|
||||||
|
|
||||||
#include "cafPdmUiDoubleSliderEditor.h"
|
|
||||||
#include "cvfAssert.h"
|
|
||||||
#include "RigFemPartResultsCollection.h"
|
#include "RigFemPartResultsCollection.h"
|
||||||
#include "RigGeoMechCaseData.h"
|
#include "RigGeoMechCaseData.h"
|
||||||
|
|
||||||
|
#include "RimGeoMechPropertyFilterCollection.h"
|
||||||
|
#include "RimGeoMechResultDefinition.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
|
#include "RimViewController.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
|
#include "cafPdmUiDoubleSliderEditor.h"
|
||||||
|
|
||||||
|
#include "cvfAssert.h"
|
||||||
|
#include "cvfMath.h"
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimGeoMechPropertyFilter, "GeoMechPropertyFilter");
|
CAF_PDM_SOURCE_INIT(RimGeoMechPropertyFilter, "GeoMechPropertyFilter");
|
||||||
|
|
||||||
@@ -59,7 +62,6 @@ RimGeoMechPropertyFilter::RimGeoMechPropertyFilter()
|
|||||||
|
|
||||||
m_minimumResultValue = cvf::UNDEFINED_DOUBLE;
|
m_minimumResultValue = cvf::UNDEFINED_DOUBLE;
|
||||||
m_maximumResultValue = cvf::UNDEFINED_DOUBLE;
|
m_maximumResultValue = cvf::UNDEFINED_DOUBLE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -81,6 +83,7 @@ void RimGeoMechPropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang
|
|||||||
{
|
{
|
||||||
this->updateIconState();
|
this->updateIconState();
|
||||||
this->updateFilterName();
|
this->updateFilterName();
|
||||||
|
this->uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
parentContainer()->updateDisplayModelNotifyManagedViews();
|
parentContainer()->updateDisplayModelNotifyManagedViews();
|
||||||
}
|
}
|
||||||
@@ -133,6 +136,65 @@ void RimGeoMechPropertyFilter::defineUiOrdering(QString uiConfigName, caf::PdmUi
|
|||||||
uiOrdering.add(&lowerBound);
|
uiOrdering.add(&lowerBound);
|
||||||
uiOrdering.add(&upperBound);
|
uiOrdering.add(&upperBound);
|
||||||
uiOrdering.add(&filterMode);
|
uiOrdering.add(&filterMode);
|
||||||
|
|
||||||
|
updateReadOnlyStateOfAllFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimGeoMechPropertyFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName)
|
||||||
|
{
|
||||||
|
PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
||||||
|
|
||||||
|
updateActiveState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimGeoMechPropertyFilter::updateReadOnlyStateOfAllFields()
|
||||||
|
{
|
||||||
|
bool readOnlyState = isPropertyFilterControlled();
|
||||||
|
|
||||||
|
std::vector<caf::PdmFieldHandle*> objFields;
|
||||||
|
this->fields(objFields);
|
||||||
|
|
||||||
|
// Include fields declared in RimResultDefinition
|
||||||
|
objFields.push_back(&(resultDefinition->m_resultPositionTypeUiField));
|
||||||
|
objFields.push_back(&(resultDefinition->m_resultVariableUiField));
|
||||||
|
|
||||||
|
for (size_t i = 0; i < objFields.size(); i++)
|
||||||
|
{
|
||||||
|
objFields[i]->uiCapability()->setUiReadOnly(readOnlyState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimGeoMechPropertyFilter::isPropertyFilterControlled()
|
||||||
|
{
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
firstAnchestorOrThisOfType(rimView);
|
||||||
|
CVF_ASSERT(rimView);
|
||||||
|
|
||||||
|
bool isPropertyFilterControlled = false;
|
||||||
|
RimViewController* vc = rimView->viewController();
|
||||||
|
if (vc && vc->isPropertyFilterOveridden())
|
||||||
|
{
|
||||||
|
isPropertyFilterControlled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isPropertyFilterControlled;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimGeoMechPropertyFilter::updateActiveState()
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(isPropertyFilterControlled());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -50,11 +50,18 @@ public:
|
|||||||
void updateFilterName();
|
void updateFilterName();
|
||||||
void computeResultValueRange();
|
void computeResultValueRange();
|
||||||
|
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
void updateActiveState();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) ;
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) ;
|
||||||
|
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void updateReadOnlyStateOfAllFields();
|
||||||
|
bool isPropertyFilterControlled();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RimGeoMechPropertyFilterCollection* m_parentContainer;
|
RimGeoMechPropertyFilterCollection* m_parentContainer;
|
||||||
double m_minimumResultValue;
|
double m_minimumResultValue;
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ RimGeoMechView* RimGeoMechPropertyFilterCollection::reservoirView()
|
|||||||
void RimGeoMechPropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimGeoMechPropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
updateIconState();
|
updateIconState();
|
||||||
|
uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
updateDisplayModelNotifyManagedViews();
|
updateDisplayModelNotifyManagedViews();
|
||||||
}
|
}
|
||||||
@@ -172,5 +173,33 @@ void RimGeoMechPropertyFilterCollection::updateIconState()
|
|||||||
|
|
||||||
updateUiIconFromState(activeIcon);
|
updateUiIconFromState(activeIcon);
|
||||||
|
|
||||||
uiCapability()->updateConnectedEditors();
|
for (size_t i = 0; i < propertyFilters.size(); i++)
|
||||||
|
{
|
||||||
|
RimGeoMechPropertyFilter* propFilter = propertyFilters[i];
|
||||||
|
propFilter->updateActiveState();
|
||||||
|
propFilter->updateIconState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimGeoMechPropertyFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName)
|
||||||
|
{
|
||||||
|
PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName);
|
||||||
|
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(rimView);
|
||||||
|
RimViewController* viewController = rimView->viewController();
|
||||||
|
if (viewController && (viewController->isPropertyFilterOveridden()
|
||||||
|
|| viewController->isVisibleCellsOveridden()))
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(true, uiConfigName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
isActive.uiCapability()->setUiReadOnly(false, uiConfigName);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateIconState();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
// Overridden methods
|
// Overridden methods
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
|
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||||
virtual caf::PdmFieldHandle* objectToggleField();
|
virtual caf::PdmFieldHandle* objectToggleField();
|
||||||
virtual void initAfterRead();
|
virtual void initAfterRead();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -575,9 +575,11 @@ void RimGeoMechView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalV
|
|||||||
void RimGeoMechView::updateIconStateForFilterCollections()
|
void RimGeoMechView::updateIconStateForFilterCollections()
|
||||||
{
|
{
|
||||||
m_rangeFilterCollection()->updateIconState();
|
m_rangeFilterCollection()->updateIconState();
|
||||||
|
m_rangeFilterCollection()->uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
// NB - notice that it is the filter collection managed by this view that the icon update applies to
|
// NB - notice that it is the filter collection managed by this view that the icon update applies to
|
||||||
m_propertyFilterCollection()->updateIconState();
|
m_propertyFilterCollection()->updateIconState();
|
||||||
|
m_propertyFilterCollection()->uiCapability()->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user