#864 Added auto name config to curve filter

This commit is contained in:
Magne Sjaastad
2016-11-04 15:23:44 +01:00
parent 65f118ba24
commit edb6cef18c
6 changed files with 81 additions and 7 deletions

View File

@@ -442,6 +442,14 @@ void RimSummaryCurve::updateQwtPlotAxis()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings)
{
m_curveNameConfig->applySettings(autoNameSettings);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -92,6 +92,8 @@ public:
RimDefines::PlotAxis associatedPlotAxis() const;
void updateQwtPlotAxis();
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
protected:
// RimPlotCurve overrides

View File

@@ -22,6 +22,7 @@
#include "RimSummaryCurve.h"
#include "RimSummaryCase.h"
#include "RimSummaryCurveFilter.h"
@@ -187,6 +188,22 @@ QString RimSummaryCurveAutoName::curveName(const RifEclipseSummaryAddress& summa
return QString::fromStdString(text);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveAutoName::applySettings(const RimSummaryCurveAutoName& other)
{
m_caseName = other.m_caseName;
m_vectorName = other.m_vectorName;
m_unit = other.m_unit;
m_regionNumber = other.m_regionNumber;
m_wellGroupName = other.m_wellGroupName;
m_wellName = other.m_wellName;
m_wellSegmentNumber = other.m_wellSegmentNumber;
m_lgrName = other.m_lgrName;
m_completion = other.m_completion;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -216,13 +233,22 @@ void RimSummaryCurveAutoName::appendLgrName(std::string& text, const RifEclipseS
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveAutoName::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
RimSummaryCurve* summaryCurve = nullptr;
this->firstAncestorOrThisOfType(summaryCurve);
// NOTE: The curve filter is parent object of a summary curve, and the update is supposed to update
// the first parent, not the grandparent. This is the reason for not using firstAncestorOrThisOfType()
RimSummaryCurve* summaryCurve = dynamic_cast<RimSummaryCurve*>(this->parentField()->ownerObject());
if (summaryCurve)
{
summaryCurve->updateCurveName();
summaryCurve->updateConnectedEditors();
}
RimSummaryCurveFilter* summaryCurveFilter = dynamic_cast<RimSummaryCurveFilter*>(this->parentField()->ownerObject());
if (summaryCurveFilter)
{
summaryCurveFilter->updateCurveNames();
summaryCurveFilter->updateConnectedEditors();
}
}
//--------------------------------------------------------------------------------------------------

View File

@@ -33,10 +33,15 @@ public:
QString curveName(const RifEclipseSummaryAddress& summaryAddress) const;
void applySettings(const RimSummaryCurveAutoName& other);
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
protected:
friend RimSummaryCurve;
friend RimSummaryCurveFilter;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;

View File

@@ -30,6 +30,7 @@
#include "RimSummaryCase.h"
#include "RimSummaryCurve.h"
#include "RimSummaryCurveAppearanceCalculator.h"
#include "RimSummaryCurveAutoName.h"
#include "RimSummaryFilter.h"
#include "RimSummaryPlot.h"
#include "RimSummaryPlotCollection.h"
@@ -76,7 +77,9 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
CAF_PDM_InitFieldNoDefault(&m_summaryFilter, "VarListFilter", "Filter", "", "", "");
m_summaryFilter.uiCapability()->setUiTreeChildrenHidden(true);
m_summaryFilter.uiCapability()->setUiHidden(true);
m_summaryFilter = new RimSummaryFilter();
m_summaryFilterObject = std::unique_ptr<RimSummaryFilter>(new RimSummaryFilter);
m_summaryFilter = m_summaryFilterObject.get();
CAF_PDM_InitFieldNoDefault(&m_uiFilterResultMultiSelection, "FilterResultSelection", "Filter Result", "", "Ctrl-A : Select All", "");
m_uiFilterResultMultiSelection.xmlCapability()->setIOWritable(false);
@@ -110,6 +113,13 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
CAF_PDM_InitFieldNoDefault(&m_regionAppearanceType, "RegionAppearanceType", "Region", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_plotAxis, "PlotAxis", "Axis", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_curveNameConfig, "SummaryCurveNameConfig", "SummaryCurveNameConfig", "", "", "");
m_curveNameConfig.uiCapability()->setUiHidden(true);
m_curveNameConfig.uiCapability()->setUiTreeChildrenHidden(true);
m_curveNameConfigObject = std::unique_ptr<RimSummaryCurveAutoName>(new RimSummaryCurveAutoName);
m_curveNameConfig = m_curveNameConfigObject.get();
}
//--------------------------------------------------------------------------------------------------
@@ -117,7 +127,6 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
//--------------------------------------------------------------------------------------------------
RimSummaryCurveFilter::~RimSummaryCurveFilter()
{
delete m_summaryFilter();
m_curves.deleteAllChildObjects();
}
@@ -213,6 +222,9 @@ void RimSummaryCurveFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
m_regionAppearanceType.uiCapability()->setUiReadOnly(m_useAutoAppearanceAssignment);
}
caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroup("Curve Name Configuration");
m_curveNameConfig->defineUiOrdering(uiConfigName, *autoNameGroup);
uiOrdering.add(&m_plotAxis);
uiOrdering.add(&m_autoApplyFilterChanges);
uiOrdering.add(&m_applyButtonField);
@@ -515,6 +527,7 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std:
curve->setSummaryCase(currentCase);
curve->setSummaryAddress(caseAddrPair.second);
curve->setPlotAxis(m_plotAxis());
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
m_curves.push_back(curve);
@@ -564,6 +577,18 @@ void RimSummaryCurveFilter::updateCompleteVariableStringFilterChanged()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveFilter::updateCurveNames()
{
for (RimSummaryCurve* curve : m_curves)
{
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
curve->updateCurveName();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -28,11 +28,11 @@
#include "cafAppEnum.h"
#include "cafPdmPtrArrayField.h"
#include "RifEclipseSummaryAddress.h"
#include "RimDefines.h"
#include "RimSummaryCurveAppearanceCalculator.h"
#include "qwt_plot.h"
#include <memory>
class QwtPlot;
class QwtPlotCurve;
@@ -41,8 +41,8 @@ class RimSummaryCase;
class RimSummaryCurve;
class RimSummaryFilter;
class RiuLineSegmentQwtPlotCurve;
class RimSummaryCurveAutoName;
#include <QPointer>
Q_DECLARE_METATYPE(RifEclipseSummaryAddress);
@@ -75,6 +75,8 @@ public:
void setPlotAxis(RimDefines::PlotAxis plotAxis);
void updateCompleteVariableStringFilterChanged();
void updateCurveNames();
private:
void syncCurvesFromUiSelection();
@@ -113,6 +115,8 @@ private:
caf::PdmField<std::vector<RifEclipseSummaryAddress> >
m_uiFilterResultMultiSelection;
caf::PdmChildField<RimSummaryCurveAutoName*> m_curveNameConfig;
caf::PdmField<bool> m_autoApplyFilterChanges;
caf::PdmField<bool> m_applyButtonField;
@@ -125,5 +129,9 @@ private:
caf::PdmField< AppearanceTypeAppEnum > m_regionAppearanceType;
std::vector< caf::PdmPointer<RimSummaryCase> > m_selectionCache;
// Internal objects managed by unique_ptr
std::unique_ptr<RimSummaryFilter> m_summaryFilterObject;
std::unique_ptr<RimSummaryCurveAutoName> m_curveNameConfigObject;
};