#2904 Curve creator. .Fix initial curve visibility

This commit is contained in:
Bjørn Erik Jensen
2018-05-11 15:42:56 +02:00
parent b24b93eba3
commit 38540a0a39
4 changed files with 51 additions and 16 deletions

View File

@@ -147,15 +147,17 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, c
if (m_targetPlot) if (m_targetPlot)
{ {
populateCurveCreator(*m_targetPlot); populateCurveCreator(*m_targetPlot);
syncPreviewCurvesFromUiSelection();
setInitialCurveVisibility(targetPlot);
m_previewPlot->loadDataAndUpdate();
} }
else else
{ {
setDefaultCurveSelection(defaultCases); setDefaultCurveSelection(defaultCases);
m_previewPlot->enableAutoPlotTitle(true); m_previewPlot->enableAutoPlotTitle(true);
syncPreviewCurvesFromUiSelection();
} }
syncPreviewCurvesFromUiSelection();
caf::PdmUiItem::updateConnectedEditors(); 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 <std::pair<RimSummaryCase*, RifEclipseSummaryAddress>> 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->copyAxisPropertiesFromOther(sourceSummaryPlot);
m_previewPlot->enableAutoPlotTitle(sourceSummaryPlot.autoPlotTitle()); m_previewPlot->enableAutoPlotTitle(sourceSummaryPlot.autoPlotTitle());
m_previewPlot->updatePlotTitle(); m_previewPlot->updatePlotTitle();
@@ -860,3 +848,40 @@ bool RicSummaryCurveCreator::proxyPlotAutoTitle() const
{ {
return m_previewPlot->autoPlotTitle(); return m_previewPlot->autoPlotTitle();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreator::setInitialCurveVisibility(const RimSummaryPlot* targetPlot)
{
// Set visibility for imported curves which were not checked in source plot
std::set <std::pair<RimSummaryCase*, RifEclipseSummaryAddress>> 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 <std::pair<RimSummaryCaseCollection*, RifEclipseSummaryAddress>> 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);
}
}
}

View File

@@ -106,6 +106,7 @@ private:
void proxyEnablePlotAutoTitle(const bool& enable); void proxyEnablePlotAutoTitle(const bool& enable);
bool proxyPlotAutoTitle() const; bool proxyPlotAutoTitle() const;
void setInitialCurveVisibility(const RimSummaryPlot* targetPlot);
private: private:
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot; caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;

View File

@@ -866,6 +866,14 @@ RimEnsembleCurveSet* RimEnsembleCurveSet::clone() const
return copy; return copy;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSet::showCurves(bool show)
{
m_showCurves = show;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -91,6 +91,7 @@ public:
void updateAllCurves(); void updateAllCurves();
RimEnsembleCurveSet* clone() const; RimEnsembleCurveSet* clone() const;
void showCurves(bool show);
private: private:
caf::PdmFieldHandle* userDescriptionField() override; caf::PdmFieldHandle* userDescriptionField() override;