diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp index a7b4800688..6dd1bd75f9 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.cpp @@ -147,15 +147,17 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, c if (m_targetPlot) { populateCurveCreator(*m_targetPlot); + syncPreviewCurvesFromUiSelection(); + setInitialCurveVisibility(targetPlot); + m_previewPlot->loadDataAndUpdate(); } else { setDefaultCurveSelection(defaultCases); m_previewPlot->enableAutoPlotTitle(true); + syncPreviewCurvesFromUiSelection(); } - syncPreviewCurvesFromUiSelection(); - caf::PdmUiItem::updateConnectedEditors(); } @@ -545,20 +547,6 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu } } - // Set visibility for imported curves which were not checked in source plot - std::set > sourceCurveDefs; - for (const auto& curve : sourceSummaryPlot.summaryAndEnsembleCurves()) - { - if(curve->isCurveVisible()) sourceCurveDefs.insert(std::make_pair(curve->summaryCaseY(), curve->summaryAddressY())); - } - - for (const auto& curve : m_previewPlot->summaryAndEnsembleCurves()) - { - auto curveDef = std::make_pair(curve->summaryCaseY(), curve->summaryAddressY()); - if (sourceCurveDefs.count(curveDef) == 0) - curve->setCurveVisiblity(false); - } - m_previewPlot->copyAxisPropertiesFromOther(sourceSummaryPlot); m_previewPlot->enableAutoPlotTitle(sourceSummaryPlot.autoPlotTitle()); m_previewPlot->updatePlotTitle(); @@ -860,3 +848,40 @@ bool RicSummaryCurveCreator::proxyPlotAutoTitle() const { return m_previewPlot->autoPlotTitle(); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicSummaryCurveCreator::setInitialCurveVisibility(const RimSummaryPlot* targetPlot) +{ + // Set visibility for imported curves which were not checked in source plot + std::set > sourceCurveDefs; + for (const auto& curve : targetPlot->summaryCurves()) + { + sourceCurveDefs.insert(std::make_pair(curve->summaryCaseY(), curve->summaryAddressY())); + } + + for (const auto& curve : m_previewPlot->summaryCurves()) + { + auto curveDef = std::make_pair(curve->summaryCaseY(), curve->summaryAddressY()); + if (sourceCurveDefs.count(curveDef) == 0) + { + curve->setCurveVisiblity(false); + } + } + + std::set > sourceCurveSetDefs; + for (const auto& curveSet : targetPlot->ensembleCurveSetCollection()->curveSets()) + { + sourceCurveSetDefs.insert(std::make_pair(curveSet->summaryCaseCollection(), curveSet->summaryAddress())); + } + + for (const auto& curveSet : m_previewPlot->ensembleCurveSetCollection()->curveSets()) + { + auto curveDef = std::make_pair(curveSet->summaryCaseCollection(), curveSet->summaryAddress()); + if (sourceCurveSetDefs.count(curveDef) == 0) + { + curveSet->showCurves(false); + } + } +} diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.h b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.h index 864bb64f63..b27afbaa4c 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.h +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreator.h @@ -106,6 +106,7 @@ private: void proxyEnablePlotAutoTitle(const bool& enable); bool proxyPlotAutoTitle() const; + void setInitialCurveVisibility(const RimSummaryPlot* targetPlot); private: caf::PdmPtrField m_targetPlot; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp b/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp index 4289d715d7..c5bc8d61e9 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.cpp @@ -866,6 +866,14 @@ RimEnsembleCurveSet* RimEnsembleCurveSet::clone() const return copy; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEnsembleCurveSet::showCurves(bool show) +{ + m_showCurves = show; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.h b/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.h index ad011ead94..17f25e64b3 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimEnsembleCurveSet.h @@ -91,6 +91,7 @@ public: void updateAllCurves(); RimEnsembleCurveSet* clone() const; + void showCurves(bool show); private: caf::PdmFieldHandle* userDescriptionField() override;