#3338 Keep order of summary plot curves if you uncheck and check back curves.

This commit is contained in:
Gaute Lindkvist 2018-09-07 14:26:14 +02:00
parent 612409ac59
commit bd9d1be3c2
10 changed files with 92 additions and 1 deletions

View File

@ -260,6 +260,26 @@ void RimEnsembleCurveSet::detachQwtCurves()
m_qwtPlotCurveForLegendText->detach();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSet::reattachQwtCurves()
{
for (RimSummaryCurve* curve : m_curves)
{
curve->reattachQwtCurve();
}
m_qwtPlotCurveForLegendText->detach();
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot);
if (plot)
{
m_qwtPlotCurveForLegendText->attach(plot->qwtPlot());
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -74,6 +74,7 @@ public:
void loadDataAndUpdate(bool updateParentPlot);
void setParentQwtPlotNoReplot(QwtPlot* plot);
void detachQwtCurves();
void reattachQwtCurves();
void addCurve(RimSummaryCurve* curve);
void deleteCurve(RimSummaryCurve* curve);

View File

@ -110,6 +110,17 @@ void RimEnsembleCurveSetCollection::detachQwtCurves()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSetCollection::reattachQwtCurves()
{
for (const auto& curveSet : m_curveSets)
{
curveSet->reattachQwtCurves();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -44,6 +44,7 @@ public:
void loadDataAndUpdate(bool updateParentPlot);
void setParentQwtPlotAndReplot(QwtPlot* plot);
void detachQwtCurves();
void reattachQwtCurves();
RimEnsembleCurveSet* findRimCurveSetFromQwtCurve(const QwtPlotCurve* qwtCurve) const;

View File

@ -550,6 +550,16 @@ void RimSummaryCurve::onLoadDataAndUpdate(bool updateParentPlot)
if (updateParentPlot) updateQwtPlotAxis();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::updateLegendsInPlot()
{
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfTypeAsserted(plot);
plot->updateAllLegendItems();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -85,6 +85,9 @@ protected:
virtual void updateZoomInParentPlot() override;
virtual void onLoadDataAndUpdate(bool updateParentPlot) override;
virtual void updateLegendsInPlot() override;
private:
RifSummaryReaderInterface* valuesSummaryReaderX() const;
RifSummaryReaderInterface* valuesSummaryReaderY() const;

View File

@ -133,6 +133,17 @@ void RimSummaryCurveCollection::detachQwtCurves()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveCollection::reattachQwtCurves()
{
for (RimSummaryCurve* curve : m_curves)
{
curve->reattachQwtCurve();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -48,6 +48,7 @@ public:
void loadDataAndUpdate(bool updateParentPlot);
void setParentQwtPlotAndReplot(QwtPlot* plot);
void detachQwtCurves();
void reattachQwtCurves();
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;

View File

@ -479,6 +479,15 @@ void RimSummaryPlot::updateAll()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updateAllLegendItems()
{
reattachAllCurves();
qwtPlot()->updateLegend();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1573,6 +1582,29 @@ void RimSummaryPlot::detachAllCurves()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::reattachAllCurves()
{
if (m_summaryCurveCollection)
{
m_summaryCurveCollection->reattachQwtCurves();
}
m_ensembleCurveSetCollection->reattachQwtCurves();
for (RimGridTimeHistoryCurve* curve : m_gridTimeHistoryCurves)
{
curve->reattachQwtCurve();
}
for (RimAsciiDataCurve* curve : m_asciiDataCurves)
{
curve->reattachQwtCurve();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -87,6 +87,7 @@ public:
size_t curveCount() const;
void detachAllCurves();
void reattachAllCurves();
void updateCaseNameHasChanged();
void updateAxes();
@ -123,13 +124,13 @@ public:
void copyAxisPropertiesFromOther(const RimSummaryPlot& sourceSummaryPlot);
void updateAll();
void updateAllLegendItems();
void setPlotInfoLabel(const QString& label);
void showPlotInfoLabel(bool show);
void updatePlotInfoLabel();
bool containsResamplableCurves() const;
// RimViewWindow overrides
public:
virtual QWidget* createViewWidget(QWidget* mainWindowParent) override;