#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", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_regionAppearanceType, "RegionAppearanceType", "Region", "", "", "");
m_previewPlot.reset(new RimSummaryPlot()); 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", "", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_applyButtonField, "ApplySelection", "", "", "", "");
m_applyButtonField = false; m_applyButtonField = false;
@ -141,6 +144,7 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
else else
{ {
setDefaultCurveSelection(); setDefaultCurveSelection();
m_previewPlot->enableAutoPlotTitle(true);
} }
syncPreviewCurvesFromUiSelection(); syncPreviewCurvesFromUiSelection();
@ -210,6 +214,11 @@ void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changed
m_previewPlot->loadDataAndUpdate(); m_previewPlot->loadDataAndUpdate();
m_appearanceApplyButton = false; 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* appearanceGroup = uiOrdering.addNewGroupWithKeyword("Curve Appearance Assignment", RiuSummaryCurveDefinitionKeywords::appearance());
caf::PdmUiGroup* appearanceSubGroup = appearanceGroup->addNewGroup("Appearance Type Assignment"); caf::PdmUiGroup* appearanceSubGroup = appearanceGroup->addNewGroup("Appearance Type Assignment");
appearanceGroup->setCollapsedByDefault(true); appearanceGroup->setCollapsedByDefault(true);
appearanceSubGroup->add(&m_useAutoAppearanceAssignment); appearanceSubGroup->add(&m_useAutoAppearanceAssignment);
appearanceSubGroup->add(&m_caseAppearanceType); appearanceSubGroup->add(&m_caseAppearanceType);
appearanceSubGroup->add(&m_variableAppearanceType); appearanceSubGroup->add(&m_variableAppearanceType);
@ -267,6 +277,9 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
// Name config // Name config
caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroupWithKeyword("Curve Name Configuration", RiuSummaryCurveDefinitionKeywords::nameConfig()); caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroupWithKeyword("Curve Name Configuration", RiuSummaryCurveDefinitionKeywords::nameConfig());
autoNameGroup->setCollapsedByDefault(true); autoNameGroup->setCollapsedByDefault(true);
autoNameGroup->add(&m_useAutoPlotTitleProxy);
m_curveNameConfig->uiOrdering(uiConfigName, *autoNameGroup); m_curveNameConfig->uiOrdering(uiConfigName, *autoNameGroup);
// Fields to be displayed directly in UI // Fields to be displayed directly in UI
@ -494,6 +507,9 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu
curve->setCurveVisiblity(false); curve->setCurveVisiblity(false);
} }
m_previewPlot->enableAutoPlotTitle(sourceSummaryPlot.autoPlotTitle());
m_previewPlot->updatePlotTitle();
m_summaryCurveSelectionEditor->summaryAddressSelection()->setSelectedCurveDefinitions(curveDefs); m_summaryCurveSelectionEditor->summaryAddressSelection()->setSelectedCurveDefinitions(curveDefs);
updateAppearanceEditor(); updateAppearanceEditor();
@ -518,6 +534,8 @@ void RicSummaryCurveCreator::updateTargetPlot()
copyCurveAndAddToPlot(editedCurve, m_targetPlot); copyCurveAndAddToPlot(editedCurve, m_targetPlot);
} }
m_targetPlot->enableAutoPlotTitle(m_useAutoPlotTitleProxy());
m_targetPlot->loadDataAndUpdate(); m_targetPlot->loadDataAndUpdate();
m_targetPlot->updateConnectedEditors(); m_targetPlot->updateConnectedEditors();
} }
@ -728,3 +746,22 @@ void RicSummaryCurveCreator::selectionEditorFieldChanged()
{ {
syncPreviewCurvesFromUiSelection(); 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 "cafPdmField.h"
#include "cafPdmObject.h" #include "cafPdmObject.h"
#include "cafPdmPointer.h" #include "cafPdmPointer.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrArrayField.h" #include "cafPdmPtrArrayField.h"
#include "cafPdmPtrField.h" #include "cafPdmPtrField.h"
@ -97,11 +98,16 @@ private:
static RimSummaryCase* calculatedSummaryCase(); static RimSummaryCase* calculatedSummaryCase();
void selectionEditorFieldChanged(); void selectionEditorFieldChanged();
void proxyEnablePlotAutoTitle(const bool& enable);
bool proxyPlotAutoTitle() const;
private: private:
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot; caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;
std::unique_ptr<RimSummaryPlot> m_previewPlot; std::unique_ptr<RimSummaryPlot> m_previewPlot;
caf::PdmProxyValueField<bool> m_useAutoPlotTitleProxy;
caf::PdmField<bool> m_useAutoAppearanceAssignment; caf::PdmField<bool> m_useAutoAppearanceAssignment;
caf::PdmField<bool> m_appearanceApplyButton; caf::PdmField<bool> m_appearanceApplyButton;
caf::PdmField< AppearanceTypeAppEnum > m_caseAppearanceType; caf::PdmField< AppearanceTypeAppEnum > m_caseAppearanceType;

View File

@ -72,8 +72,8 @@ RimSummaryPlot::RimSummaryPlot()
CAF_PDM_InitField(&m_legendFontSize, "LegendFontSize", 11, "Legend Font Size", "", "", ""); CAF_PDM_InitField(&m_legendFontSize, "LegendFontSize", 11, "Legend Font Size", "", "", "");
m_showLegend.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN); m_showLegend.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_isUsingAutoName, "IsUsingAutoName", false, "Auto Name", "", "", ""); CAF_PDM_InitField(&m_useAutoPlotTitle, "IsUsingAutoName", false, "Auto Name", "", "", "");
m_isUsingAutoName.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN); m_useAutoPlotTitle.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&m_curveFilters_OBSOLETE, "SummaryCurveFilters", "", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_curveFilters_OBSOLETE, "SummaryCurveFilters", "", "", "", "");
m_curveFilters_OBSOLETE.uiCapability()->setUiTreeHidden(true); m_curveFilters_OBSOLETE.uiCapability()->setUiTreeHidden(true);
@ -496,11 +496,11 @@ RiuSummaryQwtPlot* RimSummaryPlot::qwtPlot() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updatePlotTitle() void RimSummaryPlot::updatePlotTitle()
{ {
if (m_isUsingAutoName) if (m_useAutoPlotTitle)
{ {
m_userDefinedPlotTitle = generatePlotTitle(m_nameHelper.get()); m_userDefinedPlotTitle = generatePlotTitle(m_nameHelper.get());
updateAutoNameOfCurves(); updateCurveNames();
this->updateConnectedEditors(); this->updateConnectedEditors();
} }
@ -513,7 +513,7 @@ void RimSummaryPlot::updatePlotTitle()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
const RimSummaryPlotNameHelper* RimSummaryPlot::activePlotTitleHelper() const const RimSummaryPlotNameHelper* RimSummaryPlot::activePlotTitleHelper() const
{ {
if (m_isUsingAutoName()) if (m_useAutoPlotTitle())
{ {
return m_nameHelper.get(); return m_nameHelper.get();
} }
@ -1041,12 +1041,12 @@ void RimSummaryPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
changedField == &m_showPlotTitle || changedField == &m_showPlotTitle ||
changedField == &m_showLegend || changedField == &m_showLegend ||
changedField == &m_legendFontSize || changedField == &m_legendFontSize ||
changedField == &m_isUsingAutoName) changedField == &m_useAutoPlotTitle)
{ {
updatePlotTitle(); 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 // 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) void RimSummaryPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{ {
uiOrdering.add(&m_isUsingAutoName); uiOrdering.add(&m_useAutoPlotTitle);
uiOrdering.add(&m_userDefinedPlotTitle); uiOrdering.add(&m_userDefinedPlotTitle);
uiOrdering.add(&m_showPlotTitle); uiOrdering.add(&m_showPlotTitle);
uiOrdering.add(&m_showLegend); uiOrdering.add(&m_showLegend);
@ -1252,7 +1260,7 @@ void RimSummaryPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
uiOrdering.add(&m_legendFontSize); uiOrdering.add(&m_legendFontSize);
} }
m_userDefinedPlotTitle.uiCapability()->setUiReadOnly(m_isUsingAutoName); m_userDefinedPlotTitle.uiCapability()->setUiReadOnly(m_useAutoPlotTitle);
uiOrdering.skipRemainingFields(true); uiOrdering.skipRemainingFields(true);
} }
@ -1393,7 +1401,7 @@ QString RimSummaryPlot::generatePlotTitle(RimSummaryPlotNameHelper* nameHelper)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updateAutoNameOfCurves() void RimSummaryPlot::updateCurveNames()
{ {
if (m_summaryCurveCollection->isCurvesVisible()) if (m_summaryCurveCollection->isCurvesVisible())
{ {
@ -1479,7 +1487,7 @@ void RimSummaryPlot::defineEditorAttribute(const caf::PdmFieldHandle* field, QSt
{ {
if (field == &m_showLegend || if (field == &m_showLegend ||
field == &m_showPlotTitle || field == &m_showPlotTitle ||
field == &m_isUsingAutoName) field == &m_useAutoPlotTitle)
{ {
caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute); caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute);
if (myAttr) if (myAttr)

View File

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

View File

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

View File

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