#1322 Several refactorings of RimSummaryPlot, added TimeHistoryCurve support

Removed unique_pointer, as childFields now owns (and deletes) the contained object
Simplified extraction of visible curves
Simplified calculation of zoom range
This commit is contained in:
Magne Sjaastad
2017-03-19 08:45:29 +01:00
parent 388fa2b70e
commit ad90d3f38f
5 changed files with 251 additions and 184 deletions

View File

@@ -30,13 +30,12 @@
#include <QPointer>
#include <memory>
class RiuSummaryQwtPlot;
class RimSummaryCurve;
class RimSummaryCurveFilter;
class RimSummaryYAxisProperties;
class RimSummaryTimeAxisProperties;
class RimGridTimeHistoryCurve;
class PdmUiTreeOrdering;
class QwtPlotCurve;
@@ -60,7 +59,9 @@ public:
void addCurve(RimSummaryCurve* curve);
void addCurveFilter(RimSummaryCurveFilter* curveFilter);
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* curve) const;
void addGridTimeHistoryCurve(RimGridTimeHistoryCurve* curve);
caf::PdmObject* findRimCurveFromQwtCurve(const QwtPlotCurve* curve) const;
size_t curveCount() const;
void loadDataAndUpdate();
@@ -75,7 +76,7 @@ public:
const QwtInterval& timeAxis);
void updateZoomInQwt();
void updateZoomFromQwt();
void updateZoomWindowFromQwt();
void disableAutoZoom();
bool isLogarithmicScaleEnabled(RimDefines::PlotAxis plotAxis) const;
@@ -98,11 +99,14 @@ protected:
virtual QImage snapshotWindowContent() override;
private:
void updateAxis(RimDefines::PlotAxis plotAxis);
std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const;
std::vector<RimSummaryCurve*> visibleSummaryCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
std::vector<RimGridTimeHistoryCurve*> visibleTimeHistoryCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
bool hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
RimSummaryYAxisProperties* yAxisPropertiesForAxis(RimDefines::PlotAxis plotAxis) const;
void updateAxis(RimDefines::PlotAxis plotAxis);
void updateZoomForAxis(RimDefines::PlotAxis plotAxis);
void updateTimeAxis();
void setZoomIntervalsInQwtPlot();
@@ -113,21 +117,17 @@ private:
virtual void deleteViewWidget() override;
private:
caf::PdmField<bool> m_showPlotTitle;
caf::PdmField<QString> m_userName;
caf::PdmField<bool> m_showPlotTitle;
caf::PdmField<QString> m_userName;
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
caf::PdmChildArrayField<RimSummaryCurveFilter*> m_curveFilters;
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;
caf::PdmChildArrayField<RimSummaryCurve*> m_summaryCurves;
caf::PdmChildArrayField<RimSummaryCurveFilter*> m_curveFilters;
caf::PdmField<bool> m_isAutoZoom;
caf::PdmChildField<RimSummaryYAxisProperties*> m_leftYAxisProperties;
caf::PdmChildField<RimSummaryYAxisProperties*> m_rightYAxisProperties;
caf::PdmChildField<RimSummaryTimeAxisProperties*> m_timeAxisProperties;
caf::PdmField<bool> m_isAutoZoom;
caf::PdmChildField<RimSummaryYAxisProperties*> m_leftYAxisProperties;
caf::PdmChildField<RimSummaryYAxisProperties*> m_rightYAxisProperties;
caf::PdmChildField<RimSummaryTimeAxisProperties*> m_timeAxisProperties;
QPointer<RiuSummaryQwtPlot> m_qwtPlot;
// Internal objects managed by unique_ptr
std::unique_ptr<RimSummaryYAxisProperties> m_leftYAxisPropertiesObject;
std::unique_ptr<RimSummaryYAxisProperties> m_rightYAxisPropertiesObject;
std::unique_ptr<RimSummaryTimeAxisProperties> m_timeAxisPropertiesObject;
QPointer<RiuSummaryQwtPlot> m_qwtPlot;
};