From dc319646b2fbe9b14f74fe806087db7a39bc7785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Jensen?= Date: Mon, 14 May 2018 09:51:06 +0200 Subject: [PATCH] #2658 Ensemble curves. Fix curve set coloring. Minor fixes.Some ClangFormat auto-changes --- .../RicSummaryCurveCreator.cpp | 228 ++++++++++-------- .../Summary/RimSummaryPlot.cpp | 8 +- 2 files changed, 131 insertions(+), 105 deletions(-) diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp index 375b4f3348..5d8e8df56e 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp @@ -1,17 +1,17 @@ ///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2016 Statoil ASA -// +// // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. -// +// // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. -// -// See the GNU General Public License at +// +// See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// @@ -19,6 +19,7 @@ #include "RicSummaryCurveCreator.h" #include "RiaApplication.h" +#include "RiaColorTables.h" #include "RiaSummaryCurveDefinition.h" #include "RicSelectSummaryPlotUI.h" @@ -26,11 +27,15 @@ #include "RifReaderEclipseSummary.h" +#include "RimEnsembleCurveSet.h" +#include "RimEnsembleCurveSetCollection.h" +#include "RimEnsembleCurveSetColorManager.h" #include "RimMainPlotCollection.h" #include "RimObservedData.h" #include "RimObservedDataCollection.h" #include "RimOilField.h" #include "RimProject.h" +#include "RimSummaryCalculationCollection.h" #include "RimSummaryCase.h" #include "RimSummaryCaseCollection.h" #include "RimSummaryCaseMainCollection.h" @@ -39,9 +44,6 @@ #include "RimSummaryCurveCollection.h" #include "RimSummaryPlot.h" #include "RimSummaryPlotCollection.h" -#include "RimSummaryCalculationCollection.h" -#include "RimEnsembleCurveSetCollection.h" -#include "RimEnsembleCurveSet.h" #include "RiuPlotMainWindowTools.h" #include "RiuSummaryCurveDefSelection.h" @@ -56,16 +58,15 @@ #include #include - CAF_PDM_SOURCE_INIT(RicSummaryCurveCreator, "RicSummaryCurveCreator"); //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- const QString RicSummaryCurveCreator::CONFIGURATION_NAME = "CurveCreatorCfg"; //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RicSummaryCurveCreator::RicSummaryCurveCreator() { @@ -111,20 +112,18 @@ RicSummaryCurveCreator::RicSummaryCurveCreator() m_summaryCurveSelectionEditor.reset(new RiuSummaryCurveDefSelectionEditor()); - m_summaryCurveSelectionEditor->summaryAddressSelection()->setFieldChangedHandler([this]() { this->selectionEditorFieldChanged(); }); + m_summaryCurveSelectionEditor->summaryAddressSelection()->setFieldChangedHandler( + [this]() { this->selectionEditorFieldChanged(); }); m_summaryCurveSelectionEditor->summaryAddressSelection()->setMultiSelectionMode(true); - } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -RicSummaryCurveCreator::~RicSummaryCurveCreator() -{ -} +RicSummaryCurveCreator::~RicSummaryCurveCreator() {} //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RimSummaryPlot* RicSummaryCurveCreator::previewPlot() const { @@ -132,7 +131,7 @@ RimSummaryPlot* RicSummaryCurveCreator::previewPlot() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, const std::vector& defaultCases) { @@ -140,8 +139,8 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, c { resetAllFields(); } - - m_targetPlot = targetPlot; + + m_targetPlot = targetPlot; m_useAutoAppearanceAssignment = true; if (m_targetPlot) @@ -162,7 +161,7 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, c } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- QWidget* RicSummaryCurveCreator::addressSelectionWidget(QWidget* parent) { @@ -170,7 +169,7 @@ QWidget* RicSummaryCurveCreator::addressSelectionWidget(QWidget* parent) } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- bool RicSummaryCurveCreator::isCloseButtonPressed() const { @@ -178,7 +177,7 @@ bool RicSummaryCurveCreator::isCloseButtonPressed() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::clearCloseButton() { @@ -186,9 +185,11 @@ void RicSummaryCurveCreator::clearCloseButton() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) +void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changedField, + const QVariant& oldValue, + const QVariant& newValue) { if (changedField == &m_applyButtonField || changedField == &m_okButtonField) { @@ -209,7 +210,7 @@ void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changed } m_applyButtonField = false; - m_okButtonField = false; + m_okButtonField = false; caf::PdmField* field = dynamic_cast*>(m_targetPlot->uiCapability()->objectToggleField()); field->setValueWithFieldChanged(true); @@ -233,16 +234,17 @@ void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changed } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -QList RicSummaryCurveCreator::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) +QList RicSummaryCurveCreator::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, + bool* useOptionsOnly) { QList options; if (fieldNeedingOptions == &m_targetPlot) { RimProject* proj = RiaApplication::instance()->project(); - + RimSummaryPlotCollection* summaryPlotColl = proj->mainPlotCollection()->summaryPlotCollection(); // Create New Plot item @@ -259,12 +261,13 @@ QList RicSummaryCurveCreator::calculateValueOptions(cons } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) { // Appearance settings - 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"); appearanceSubGroup->setCollapsedByDefault(true); @@ -288,7 +291,8 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr } // Name config - caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroupWithKeyword("Plot and Curve Name Configuration", RiuSummaryCurveDefinitionKeywords::nameConfig()); + caf::PdmUiGroup* autoNameGroup = + uiOrdering.addNewGroupWithKeyword("Plot and Curve Name Configuration", RiuSummaryCurveDefinitionKeywords::nameConfig()); autoNameGroup->setCollapsedByDefault(true); autoNameGroup->add(&m_useAutoPlotTitleProxy); @@ -313,41 +317,46 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection() { - std::vector allCurveDefinitionsVector = m_summaryCurveSelectionEditor->summaryAddressSelection()->selectedCurveDefinitions(); - std::set allCurveDefinitions = std::set(allCurveDefinitionsVector.begin(), allCurveDefinitionsVector.end()); + std::vector allCurveDefinitionsVector = + m_summaryCurveSelectionEditor->summaryAddressSelection()->selectedCurveDefinitions(); + std::set allCurveDefinitions = + std::set(allCurveDefinitionsVector.begin(), allCurveDefinitionsVector.end()); std::vector currentCurvesInPreviewPlot = m_previewPlot->summaryAndEnsembleCurves(); if (allCurveDefinitions.size() != currentCurvesInPreviewPlot.size()) { std::set currentCurveDefs; std::set newCurveDefs; - std::set curvesToDelete; + std::set curvesToDelete; for (const auto& curve : currentCurvesInPreviewPlot) { currentCurveDefs.insert(RiaSummaryCurveDefinition(curve->summaryCaseY(), curve->summaryAddressY())); } - + if (allCurveDefinitions.size() < currentCurvesInPreviewPlot.size()) { // Determine which curves to delete from plot std::set deleteCurveDefs; - std::set_difference(currentCurveDefs.begin(), currentCurveDefs.end(), - allCurveDefinitions.begin(), allCurveDefinitions.end(), + std::set_difference(currentCurveDefs.begin(), + currentCurveDefs.end(), + allCurveDefinitions.begin(), + allCurveDefinitions.end(), std::inserter(deleteCurveDefs, deleteCurveDefs.end())); for (const auto& curve : currentCurvesInPreviewPlot) { RiaSummaryCurveDefinition curveDef = RiaSummaryCurveDefinition(curve->summaryCaseY(), curve->summaryAddressY()); - if (deleteCurveDefs.count(curveDef) > 0) - curvesToDelete.insert(curve); + if (deleteCurveDefs.count(curveDef) > 0) curvesToDelete.insert(curve); } } else { // Determine which curves are new since last time - std::set_difference(allCurveDefinitions.begin(), allCurveDefinitions.end(), - currentCurveDefs.begin(), currentCurveDefs.end(), + std::set_difference(allCurveDefinitions.begin(), + allCurveDefinitions.end(), + currentCurveDefs.begin(), + currentCurveDefs.end(), std::inserter(newCurveDefs, newCurveDefs.end())); } @@ -356,15 +365,22 @@ void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std::set& allCurveDefsToDisplay, +void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std::set& allCurveDefsToDisplay, const std::set& curveDefsToAdd, - const std::set& curvesToDelete) + const std::set& curvesToDelete) { - RimSummaryCase* prevCase = nullptr; - RimSummaryCurveAppearanceCalculator curveLookCalc(allCurveDefsToDisplay, getAllSummaryCaseNames(), getAllSummaryWellNames()); + RimSummaryCase* prevCase = nullptr; + std::set summaryCurveDefsToDisplay; + // Ignore curve sets when assigning colors to singe summary curves + for (const auto& def : allCurveDefsToDisplay) + { + if (!def.isEnsembleCurve()) summaryCurveDefsToDisplay.insert(def); + } + + RimSummaryCurveAppearanceCalculator curveLookCalc(summaryCurveDefsToDisplay, getAllSummaryCaseNames(), getAllSummaryWellNames()); initCurveAppearanceCalculator(curveLookCalc); // Delete curves @@ -376,8 +392,8 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std:: // Add new curves for (const auto& curveDef : curveDefsToAdd) { - RimSummaryCase* currentCase = curveDef.summaryCase(); - RimSummaryCurve* curve = new RimSummaryCurve(); + RimSummaryCase* currentCase = curveDef.summaryCase(); + RimSummaryCurve* curve = new RimSummaryCurve(); curve->setSummaryCaseY(currentCase); curve->setSummaryAddressY(curveDef.summaryAddress()); curve->applyCurveAutoNameSettings(*m_curveNameConfig()); @@ -400,6 +416,10 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std:: curveSet->setSummaryCaseCollection(curveDef.ensemble()); curveSet->setSummaryAddress(curveDef.summaryAddress()); m_previewPlot->ensembleCurveSetCollection()->addCurveSet(curveSet); + + // Set single curve set color + size_t colorIndex = m_previewPlot->ensembleCurveSetCollection()->curveSetCount(); + curveSet->setColor(RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f(colorIndex)); } curveSet->addCurve(curve); } @@ -417,13 +437,13 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std:: } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- std::set RicSummaryCurveCreator::getAllSummaryCaseNames() { std::set summaryCaseHashes; - RimProject* proj = RiaApplication::instance()->project(); - + RimProject* proj = RiaApplication::instance()->project(); + std::vector cases = proj->allSummaryCases(); for (RimSummaryCase* rimCase : cases) { @@ -434,12 +454,12 @@ std::set RicSummaryCurveCreator::getAllSummaryCaseNames() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- std::set RicSummaryCurveCreator::getAllSummaryWellNames() { std::set summaryWellNames; - RimProject* proj = RiaApplication::instance()->project(); + RimProject* proj = RiaApplication::instance()->project(); std::vector cases = proj->allSummaryCases(); for (RimSummaryCase* rimCase : cases) @@ -467,13 +487,15 @@ std::set RicSummaryCurveCreator::getAllSummaryWellNames() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) +void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* field, + QString uiConfigName, + caf::PdmUiEditorAttribute* attribute) { if (&m_applyButtonField == field) { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast (attribute); + caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast(attribute); if (attrib) { attrib->m_buttonText = "Apply"; @@ -481,7 +503,7 @@ void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* fi } else if (&m_closeButtonField == field) { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast (attribute); + caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast(attribute); if (attrib) { attrib->m_buttonText = "Cancel"; @@ -489,7 +511,7 @@ void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* fi } else if (&m_okButtonField == field) { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast (attribute); + caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast(attribute); if (attrib) { attrib->m_buttonText = "OK"; @@ -497,7 +519,7 @@ void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* fi } else if (&m_appearanceApplyButton == field) { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast (attribute); + caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast(attribute); if (attrib) { attrib->m_buttonText = "Apply"; @@ -505,7 +527,7 @@ void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* fi } else if (&m_targetPlot == field) { - caf::PdmUiComboBoxEditorAttribute* attrib = dynamic_cast (attribute); + caf::PdmUiComboBoxEditorAttribute* attrib = dynamic_cast(attribute); if (attrib) { attrib->adjustWidthToContents = true; @@ -562,7 +584,7 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::updateTargetPlot() { - if (m_targetPlot == nullptr) m_targetPlot = new RimSummaryPlot(); + if (m_targetPlot == nullptr) m_targetPlot = new RimSummaryPlot(); m_targetPlot->deleteAllSummaryCurves(); m_targetPlot->ensembleCurveSetCollection()->deleteAllCurveSets(); @@ -590,7 +612,7 @@ void RicSummaryCurveCreator::updateTargetPlot() { copyEnsembleCurveAndAddToCurveSet(editedCurve, editedCurveSet); } - + newCurveSet->setParentQwtPlotNoReplot(m_targetPlot->qwtPlot()); } @@ -603,14 +625,15 @@ void RicSummaryCurveCreator::updateTargetPlot() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RicSummaryCurveCreator::copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, bool forceVisible) +void RicSummaryCurveCreator::copyCurveAndAddToPlot(const RimSummaryCurve* curve, RimSummaryPlot* plot, bool forceVisible) { - RimSummaryCurve* curveCopy = dynamic_cast(curve->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance())); + RimSummaryCurve* curveCopy = + dynamic_cast(curve->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance())); CVF_ASSERT(curveCopy); - if (forceVisible) + if (forceVisible) { curveCopy->setCurveVisiblity(true); } @@ -624,11 +647,14 @@ void RicSummaryCurveCreator::copyCurveAndAddToPlot(const RimSummaryCurve *curve, } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -void RicSummaryCurveCreator::copyEnsembleCurveAndAddToCurveSet(const RimSummaryCurve *curve, RimEnsembleCurveSet* curveSet, bool forceVisible) +void RicSummaryCurveCreator::copyEnsembleCurveAndAddToCurveSet(const RimSummaryCurve* curve, + RimEnsembleCurveSet* curveSet, + bool forceVisible) { - RimSummaryCurve* curveCopy = dynamic_cast(curve->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance())); + RimSummaryCurve* curveCopy = + dynamic_cast(curve->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance())); CVF_ASSERT(curveCopy); if (forceVisible) @@ -645,7 +671,7 @@ void RicSummaryCurveCreator::copyEnsembleCurveAndAddToCurveSet(const RimSummaryC } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::setDefaultCurveSelection(const std::vector& defaultCases) { @@ -653,7 +679,7 @@ void RicSummaryCurveCreator::setDefaultCurveSelection(const std::vector allCurveDefs = allPreviewCurveDefs(); - + RimSummaryCurveAppearanceCalculator curveLookCalc(allCurveDefs, getAllSummaryCaseNames(), getAllSummaryWellNames()); initCurveAppearanceCalculator(curveLookCalc); @@ -717,7 +739,7 @@ void RicSummaryCurveCreator::applyAppearanceToAllPreviewCurves() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::updateAppearanceEditor() { @@ -728,7 +750,7 @@ void RicSummaryCurveCreator::updateAppearanceEditor() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- std::set RicSummaryCurveCreator::allPreviewCurveDefs() const { @@ -742,7 +764,7 @@ std::set RicSummaryCurveCreator::allPreviewCurveDefs( } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::createNewPlot() { @@ -764,14 +786,14 @@ void RicSummaryCurveCreator::createNewPlot() candidatePlotName = m_previewPlot->generatedPlotTitleFromVisibleCurves(); } - { - bool ok = false; + bool ok = false; candidatePlotName = QInputDialog::getText(nullptr, - "New Summary Plot Name", "New Summary Plot Name", + "New Summary Plot Name", + "New Summary Plot Name", QLineEdit::Normal, - candidatePlotName, - &ok, + candidatePlotName, + &ok, RiuTools::defaultDialogFlags()); if (!ok) { @@ -795,7 +817,7 @@ void RicSummaryCurveCreator::createNewPlot() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::updateCurveNames() { @@ -805,19 +827,19 @@ void RicSummaryCurveCreator::updateCurveNames() curve->updateCurveNameNoLegendUpdate(); } - if (m_previewPlot && m_previewPlot->qwtPlot()) m_previewPlot->qwtPlot()->updateLegend(); + if (m_previewPlot && m_previewPlot->qwtPlot()) m_previewPlot->qwtPlot()->updateLegend(); } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- -bool RicSummaryCurveCreator::isObservedData(RimSummaryCase *sumCase) const +bool RicSummaryCurveCreator::isObservedData(RimSummaryCase* sumCase) const { return dynamic_cast(sumCase) != nullptr; } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RimSummaryCase* RicSummaryCurveCreator::calculatedSummaryCase() { @@ -827,7 +849,7 @@ RimSummaryCase* RicSummaryCurveCreator::calculatedSummaryCase() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::selectionEditorFieldChanged() { @@ -835,7 +857,7 @@ void RicSummaryCurveCreator::selectionEditorFieldChanged() } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::proxyEnablePlotAutoTitle(const bool& enable) { @@ -846,7 +868,7 @@ void RicSummaryCurveCreator::proxyEnablePlotAutoTitle(const bool& enable) } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- bool RicSummaryCurveCreator::proxyPlotAutoTitle() const { @@ -854,12 +876,12 @@ bool RicSummaryCurveCreator::proxyPlotAutoTitle() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::setInitialCurveVisibility(const RimSummaryPlot* targetPlot) { // Set visibility for imported curves which were not checked in source plot - std::set > sourceCurveDefs; + std::set> sourceCurveDefs; for (const auto& curve : targetPlot->summaryCurves()) { sourceCurveDefs.insert(std::make_pair(curve->summaryCaseY(), curve->summaryAddressY())); @@ -874,7 +896,7 @@ void RicSummaryCurveCreator::setInitialCurveVisibility(const RimSummaryPlot* tar } } - std::set > sourceCurveSetDefs; + std::set> sourceCurveSetDefs; for (const auto& curveSet : targetPlot->ensembleCurveSetCollection()->curveSets()) { sourceCurveSetDefs.insert(std::make_pair(curveSet->summaryCaseCollection(), curveSet->summaryAddress())); diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp index 76199aacdc..95287dfc87 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp @@ -1004,6 +1004,10 @@ void RimSummaryPlot::deleteCurve(RimSummaryCurve* curve) curveSet->deleteCurve(curve); if (curveSet->curves().empty()) { + if (curveSet->colorMode() == RimEnsembleCurveSet::BY_ENSEMBLE_PARAM) + { + qwtPlot()->removeEnsembleCurveSetLegend(curveSet); + } m_ensembleCurveSetCollection->deleteCurveSet(curveSet); } return; @@ -1189,7 +1193,7 @@ void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering if (uiConfigName == RicSummaryCurveCreator::CONFIGURATION_NAME) { uiTreeOrdering.add(&m_summaryCurveCollection); - if (!m_isCrossPlot && !m_ensembleCurveSetCollection->curveSets().empty()) + if (!m_isCrossPlot) { uiTreeOrdering.add(&m_ensembleCurveSetCollection); } @@ -1210,7 +1214,7 @@ void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering axisFolder->add(&m_rightYAxisProperties); uiTreeOrdering.add(&m_summaryCurveCollection); - if (!m_isCrossPlot && !m_ensembleCurveSetCollection->curveSets().empty()) + if (!m_isCrossPlot) { uiTreeOrdering.add(&m_ensembleCurveSetCollection); }