#2262 Summary Curve Creator : Add support for auto plot title

This commit is contained in:
Magne Sjaastad 2017-12-14 09:59:11 +01:00
parent fbee6e23a9
commit 53d1c7ef66
6 changed files with 76 additions and 24 deletions

View File

@ -73,7 +73,10 @@ RicSummaryCurveCreator::RicSummaryCurveCreator()
CAF_PDM_InitFieldNoDefault(&m_regionAppearanceType, "RegionAppearanceType", "Region", "", "", "");
m_previewPlot.reset(new RimSummaryPlot());
m_previewPlot->setShowDescription(false);
CAF_PDM_InitFieldNoDefault(&m_useAutoPlotTitleProxy, "UseAutoPlotTitle", "Auto Plot Title", "", "", "");
m_useAutoPlotTitleProxy.registerGetMethod(this, &RicSummaryCurveCreator::proxyPlotAutoTitle);
m_useAutoPlotTitleProxy.registerSetMethod(this, &RicSummaryCurveCreator::proxyEnablePlotAutoTitle);
CAF_PDM_InitFieldNoDefault(&m_applyButtonField, "ApplySelection", "", "", "", "");
m_applyButtonField = false;
@ -141,6 +144,7 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
else
{
setDefaultCurveSelection();
m_previewPlot->enableAutoPlotTitle(true);
}
syncPreviewCurvesFromUiSelection();
@ -210,6 +214,11 @@ void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changed
m_previewPlot->loadDataAndUpdate();
m_appearanceApplyButton = false;
}
else if (changedField == &m_useAutoPlotTitleProxy)
{
m_previewPlot->updatePlotTitle();
m_previewPlot->summaryCurveCollection()->updateConnectedEditors();
}
}
//--------------------------------------------------------------------------------------------------
@ -247,6 +256,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroupWithKeyword("Curve Appearance Assignment", RiuSummaryCurveDefinitionKeywords::appearance());
caf::PdmUiGroup* appearanceSubGroup = appearanceGroup->addNewGroup("Appearance Type Assignment");
appearanceGroup->setCollapsedByDefault(true);
appearanceSubGroup->add(&m_useAutoAppearanceAssignment);
appearanceSubGroup->add(&m_caseAppearanceType);
appearanceSubGroup->add(&m_variableAppearanceType);
@ -267,6 +277,9 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
// Name config
caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroupWithKeyword("Curve Name Configuration", RiuSummaryCurveDefinitionKeywords::nameConfig());
autoNameGroup->setCollapsedByDefault(true);
autoNameGroup->add(&m_useAutoPlotTitleProxy);
m_curveNameConfig->uiOrdering(uiConfigName, *autoNameGroup);
// Fields to be displayed directly in UI
@ -494,6 +507,9 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu
curve->setCurveVisiblity(false);
}
m_previewPlot->enableAutoPlotTitle(sourceSummaryPlot.autoPlotTitle());
m_previewPlot->updatePlotTitle();
m_summaryCurveSelectionEditor->summaryAddressSelection()->setSelectedCurveDefinitions(curveDefs);
updateAppearanceEditor();
@ -518,6 +534,8 @@ void RicSummaryCurveCreator::updateTargetPlot()
copyCurveAndAddToPlot(editedCurve, m_targetPlot);
}
m_targetPlot->enableAutoPlotTitle(m_useAutoPlotTitleProxy());
m_targetPlot->loadDataAndUpdate();
m_targetPlot->updateConnectedEditors();
}
@ -728,3 +746,22 @@ void RicSummaryCurveCreator::selectionEditorFieldChanged()
{
syncPreviewCurvesFromUiSelection();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreator::proxyEnablePlotAutoTitle(const bool& enable)
{
m_previewPlot->enableAutoPlotTitle(enable);
m_previewPlot->enableShowPlotTitle(enable);
m_previewPlot->updateCurveNames();
m_previewPlot->loadDataAndUpdate();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicSummaryCurveCreator::proxyPlotAutoTitle() const
{
return m_previewPlot->autoPlotTitle();
}

View File

@ -28,6 +28,7 @@
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPointer.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrArrayField.h"
#include "cafPdmPtrField.h"
@ -97,11 +98,16 @@ private:
static RimSummaryCase* calculatedSummaryCase();
void selectionEditorFieldChanged();
void proxyEnablePlotAutoTitle(const bool& enable);
bool proxyPlotAutoTitle() const;
private:
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;
std::unique_ptr<RimSummaryPlot> m_previewPlot;
caf::PdmProxyValueField<bool> m_useAutoPlotTitleProxy;
caf::PdmField<bool> m_useAutoAppearanceAssignment;
caf::PdmField<bool> m_appearanceApplyButton;
caf::PdmField< AppearanceTypeAppEnum > m_caseAppearanceType;

View File

@ -72,8 +72,8 @@ RimSummaryPlot::RimSummaryPlot()
CAF_PDM_InitField(&m_legendFontSize, "LegendFontSize", 11, "Legend Font Size", "", "", "");
m_showLegend.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_isUsingAutoName, "IsUsingAutoName", false, "Auto Name", "", "", "");
m_isUsingAutoName.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_useAutoPlotTitle, "IsUsingAutoName", false, "Auto Name", "", "", "");
m_useAutoPlotTitle.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&m_curveFilters_OBSOLETE, "SummaryCurveFilters", "", "", "", "");
m_curveFilters_OBSOLETE.uiCapability()->setUiTreeHidden(true);
@ -496,11 +496,11 @@ RiuSummaryQwtPlot* RimSummaryPlot::qwtPlot() const
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updatePlotTitle()
{
if (m_isUsingAutoName)
if (m_useAutoPlotTitle)
{
m_userDefinedPlotTitle = generatePlotTitle(m_nameHelper.get());
updateAutoNameOfCurves();
updateCurveNames();
this->updateConnectedEditors();
}
@ -513,7 +513,7 @@ void RimSummaryPlot::updatePlotTitle()
//--------------------------------------------------------------------------------------------------
const RimSummaryPlotNameHelper* RimSummaryPlot::activePlotTitleHelper() const
{
if (m_isUsingAutoName())
if (m_useAutoPlotTitle())
{
return m_nameHelper.get();
}
@ -1041,12 +1041,12 @@ void RimSummaryPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
changedField == &m_showPlotTitle ||
changedField == &m_showLegend ||
changedField == &m_legendFontSize ||
changedField == &m_isUsingAutoName)
changedField == &m_useAutoPlotTitle)
{
updatePlotTitle();
}
if (changedField == &m_isUsingAutoName && !m_isUsingAutoName)
if (changedField == &m_useAutoPlotTitle && !m_useAutoPlotTitle)
{
// When auto name of plot is turned off, update the auto name for all curves
@ -1216,17 +1216,25 @@ QString RimSummaryPlot::description() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::setShowDescription(bool showDescription)
void RimSummaryPlot::enableShowPlotTitle(bool enable)
{
m_showPlotTitle = showDescription;
m_showPlotTitle = enable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::enableAutoName(bool enable)
void RimSummaryPlot::enableAutoPlotTitle(bool enable)
{
m_isUsingAutoName = enable;
m_useAutoPlotTitle = enable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryPlot::autoPlotTitle() const
{
return m_useAutoPlotTitle;
}
//--------------------------------------------------------------------------------------------------
@ -1242,7 +1250,7 @@ void RimSummaryPlot::setAsCrossPlot()
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
uiOrdering.add(&m_isUsingAutoName);
uiOrdering.add(&m_useAutoPlotTitle);
uiOrdering.add(&m_userDefinedPlotTitle);
uiOrdering.add(&m_showPlotTitle);
uiOrdering.add(&m_showLegend);
@ -1252,7 +1260,7 @@ void RimSummaryPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
uiOrdering.add(&m_legendFontSize);
}
m_userDefinedPlotTitle.uiCapability()->setUiReadOnly(m_isUsingAutoName);
m_userDefinedPlotTitle.uiCapability()->setUiReadOnly(m_useAutoPlotTitle);
uiOrdering.skipRemainingFields(true);
}
@ -1393,7 +1401,7 @@ QString RimSummaryPlot::generatePlotTitle(RimSummaryPlotNameHelper* nameHelper)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updateAutoNameOfCurves()
void RimSummaryPlot::updateCurveNames()
{
if (m_summaryCurveCollection->isCurvesVisible())
{
@ -1479,7 +1487,7 @@ void RimSummaryPlot::defineEditorAttribute(const caf::PdmFieldHandle* field, QSt
{
if (field == &m_showLegend ||
field == &m_showPlotTitle ||
field == &m_isUsingAutoName)
field == &m_useAutoPlotTitle)
{
caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute);
if (myAttr)

View File

@ -61,8 +61,10 @@ public:
void setDescription(const QString& description);
QString description() const;
void setShowDescription(bool showDescription);
void enableAutoName(bool enable);
void enableShowPlotTitle(bool enable);
void enableAutoPlotTitle(bool enable);
bool autoPlotTitle() const;
void addCurveAndUpdate(RimSummaryCurve* curve);
void addCurveNoUpdate(RimSummaryCurve* curve);
@ -70,7 +72,6 @@ public:
void deleteCurve(RimSummaryCurve* curve);
void setCurveCollection(RimSummaryCurveCollection* curveCollection);
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
//void deleteAllTopLevelCurves();
void addGridTimeHistoryCurve(RimGridTimeHistoryCurve* curve);
@ -111,6 +112,7 @@ public:
void updatePlotTitle();
const RimSummaryPlotNameHelper* activePlotTitleHelper() const;
void updateCurveNames();
QString generatedPlotTitleFromVisibleCurves() const;
// RimViewWindow overrides
@ -122,7 +124,6 @@ public:
private:
void updateMdiWindowTitle() override;
QString generatePlotTitle(RimSummaryPlotNameHelper* nameHelper) const;
void updateAutoNameOfCurves();
protected:
// Overridden PDM methods
@ -157,7 +158,7 @@ private:
caf::PdmField<bool> m_showLegend;
caf::PdmField<int> m_legendFontSize;
caf::PdmField<bool> m_isUsingAutoName;
caf::PdmField<bool> m_useAutoPlotTitle;
caf::PdmField<QString> m_userDefinedPlotTitle;
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;

View File

@ -45,10 +45,10 @@ RimSummaryPlotCollection::~RimSummaryPlotCollection()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryPlot* RimSummaryPlotCollection::createSummaryPlotAutoName()
RimSummaryPlot* RimSummaryPlotCollection::createSummaryPlotWithAutoTitle()
{
RimSummaryPlot* plot = new RimSummaryPlot();
plot->enableAutoName(true);
plot->enableAutoPlotTitle(true);
summaryPlots.push_back(plot);
return plot;

View File

@ -36,7 +36,7 @@ public:
caf::PdmChildArrayField<RimSummaryPlot*> summaryPlots;
RimSummaryPlot* createSummaryPlotAutoName();
RimSummaryPlot* createSummaryPlotWithAutoTitle();
RimSummaryPlot* createNamedSummaryPlot(const QString& name);
void updateSummaryNameHasChanged();