#871 Curve Filter toggle added

This commit is contained in:
Jacob Støren 2016-10-05 12:01:43 +02:00
parent cbdc313cf3
commit b3657bcf43
4 changed files with 41 additions and 2 deletions

View File

@ -17,6 +17,7 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RimPlotCurve.h"
#include "RimSummaryCurveFilter.h"
#include "RiuLineSegmentQwtPlotCurve.h"
#include "cafPdmUiComboBoxEditor.h"
@ -156,7 +157,14 @@ caf::PdmFieldHandle* RimPlotCurve::objectToggleField()
//--------------------------------------------------------------------------------------------------
void RimPlotCurve::updateCurveVisibility()
{
if (m_showCurve() && m_parentQwtPlot)
bool isVisibleInPossibleParent = true;
{
RimSummaryCurveFilter* cFilter = nullptr;
this->firstAncestorOrThisOfType(cFilter);
if(cFilter) isVisibleInPossibleParent = cFilter->isCurvesVisible();
}
if (m_showCurve() && m_parentQwtPlot && isVisibleInPossibleParent)
{
m_qwtPlotCurve->attach(m_parentQwtPlot);
}

View File

@ -77,6 +77,8 @@ public:
void updateCurveName();
QString curveName() const { return m_curveName; }
void updateCurveVisibility();
protected:
virtual QString createCurveAutoName() = 0;
@ -84,7 +86,6 @@ protected:
virtual void onLoadDataAndUpdate() = 0;
void updateCurvePresentation();
void updateCurveVisibility();
void updateCurveAppearance();
void updateOptionSensitivity();

View File

@ -103,6 +103,8 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
m_applyButtonField.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
m_applyButtonField.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
m_showCurves.uiCapability()->setUiHidden(true);
CAF_PDM_InitField(&m_useAutoAppearanceAssignment, "UseAutoAppearanceAssignment", true, "Auto", "", "", "" );
@ -236,6 +238,14 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
firstAncestorOrThisOfType(plot);
plot->updateYAxisUnit();
}
else if (changedField == &m_showCurves)
{
for(RimSummaryCurve* curve : m_curves)
{
curve->updateCurveVisibility();
}
if (m_parentQwtPlot) m_parentQwtPlot->replot();
}
}
//--------------------------------------------------------------------------------------------------
@ -479,6 +489,23 @@ void RimSummaryCurveFilter::updateCaseNameHasChanged()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryCurveFilter::isCurvesVisible()
{
return m_showCurves();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimSummaryCurveFilter::objectToggleField()
{
return &m_showCurves;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -53,6 +53,7 @@ public:
virtual ~RimSummaryCurveFilter();
void createCurves(RimSummaryCase* summaryCase, const QString& stringFilter);
bool isCurvesVisible();
void loadDataAndUpdate();
void setParentQwtPlot(QwtPlot* plot);
@ -75,6 +76,7 @@ private:
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >* curveDefinitions) const;
// Overridden PDM methods
virtual caf::PdmFieldHandle* objectToggleField() override;
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
@ -83,6 +85,7 @@ private:
QPointer<QwtPlot> m_parentQwtPlot;
// Fields
caf::PdmField<bool> m_showCurves;
caf::PdmPtrArrayField<RimSummaryCase*> m_selectedSummaryCases;
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;