diff --git a/python/PyQt6/core/auto_additions/qgsplot.py b/python/PyQt6/core/auto_additions/qgsplot.py index b230d3f6bac..71d5a1b9b60 100644 --- a/python/PyQt6/core/auto_additions/qgsplot.py +++ b/python/PyQt6/core/auto_additions/qgsplot.py @@ -9,7 +9,7 @@ try: except (NameError, AttributeError): pass try: - QgsPlot.__virtual_methods__ = ['writeXml', 'readXml'] + QgsPlot.__virtual_methods__ = ['type', 'writeXml', 'readXml'] QgsPlot.__group__ = ['plot'] except (NameError, AttributeError): pass diff --git a/python/PyQt6/core/auto_generated/plot/qgschart.sip.in b/python/PyQt6/core/auto_generated/plot/qgschart.sip.in index d8357668d0d..64c52d772f2 100644 --- a/python/PyQt6/core/auto_generated/plot/qgschart.sip.in +++ b/python/PyQt6/core/auto_generated/plot/qgschart.sip.in @@ -29,9 +29,16 @@ A simple bar chart class. QgsBarChart(); ~QgsBarChart(); + virtual QString type() const; + virtual void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ); + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; + + virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context ); + + }; @@ -55,9 +62,16 @@ A simple line chart class. QgsLineChart(); ~QgsLineChart(); + virtual QString type() const; + virtual void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ); + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; + + virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context ); + + }; /************************************************************************ diff --git a/python/PyQt6/core/auto_generated/plot/qgsplot.sip.in b/python/PyQt6/core/auto_generated/plot/qgsplot.sip.in index 4621d6f5a88..b9ccce81eed 100644 --- a/python/PyQt6/core/auto_generated/plot/qgsplot.sip.in +++ b/python/PyQt6/core/auto_generated/plot/qgsplot.sip.in @@ -31,6 +31,8 @@ Base class for plot/chart/graphs. virtual ~QgsPlot(); + virtual QString type() const; + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; %Docstring Writes the plot's properties into an XML ``element``. diff --git a/python/core/auto_additions/qgsplot.py b/python/core/auto_additions/qgsplot.py index b230d3f6bac..71d5a1b9b60 100644 --- a/python/core/auto_additions/qgsplot.py +++ b/python/core/auto_additions/qgsplot.py @@ -9,7 +9,7 @@ try: except (NameError, AttributeError): pass try: - QgsPlot.__virtual_methods__ = ['writeXml', 'readXml'] + QgsPlot.__virtual_methods__ = ['type', 'writeXml', 'readXml'] QgsPlot.__group__ = ['plot'] except (NameError, AttributeError): pass diff --git a/python/core/auto_generated/plot/qgschart.sip.in b/python/core/auto_generated/plot/qgschart.sip.in index d8357668d0d..64c52d772f2 100644 --- a/python/core/auto_generated/plot/qgschart.sip.in +++ b/python/core/auto_generated/plot/qgschart.sip.in @@ -29,9 +29,16 @@ A simple bar chart class. QgsBarChart(); ~QgsBarChart(); + virtual QString type() const; + virtual void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ); + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; + + virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context ); + + }; @@ -55,9 +62,16 @@ A simple line chart class. QgsLineChart(); ~QgsLineChart(); + virtual QString type() const; + virtual void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ); + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; + + virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context ); + + }; /************************************************************************ diff --git a/python/core/auto_generated/plot/qgsplot.sip.in b/python/core/auto_generated/plot/qgsplot.sip.in index 4621d6f5a88..b9ccce81eed 100644 --- a/python/core/auto_generated/plot/qgsplot.sip.in +++ b/python/core/auto_generated/plot/qgsplot.sip.in @@ -31,6 +31,8 @@ Base class for plot/chart/graphs. virtual ~QgsPlot(); + virtual QString type() const; + virtual bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const; %Docstring Writes the plot's properties into an XML ``element``. diff --git a/src/core/plot/qgschart.cpp b/src/core/plot/qgschart.cpp index 3343cc496b0..fb92153e529 100644 --- a/src/core/plot/qgschart.cpp +++ b/src/core/plot/qgschart.cpp @@ -92,6 +92,18 @@ void QgsBarChart::renderContent( QgsRenderContext &context, const QRectF &plotAr context.painter()->restore(); } +bool QgsBarChart::writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const +{ + Qgs2DXyPlot::writeXml( element, document, context ); + return true; +} + +bool QgsBarChart::readXml( const QDomElement &element, const QgsReadWriteContext &context ) +{ + Qgs2DXyPlot::readXml( element, context ); + return true; +} + void QgsLineChart::renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData ) { const QList seriesList = plotData.series(); @@ -161,3 +173,15 @@ void QgsLineChart::renderContent( QgsRenderContext &context, const QRectF &plotA context.painter()->restore(); } + +bool QgsLineChart::writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const +{ + Qgs2DXyPlot::writeXml( element, document, context ); + return true; +} + +bool QgsLineChart::readXml( const QDomElement &element, const QgsReadWriteContext &context ) +{ + Qgs2DXyPlot::readXml( element, context ); + return true; +} diff --git a/src/core/plot/qgschart.h b/src/core/plot/qgschart.h index 45480577f1e..22f5f24ba56 100644 --- a/src/core/plot/qgschart.h +++ b/src/core/plot/qgschart.h @@ -37,10 +37,14 @@ class CORE_EXPORT QgsBarChart : public Qgs2DXyPlot QgsBarChart() = default; ~QgsBarChart() = default; + QString type() const override { return QStringLiteral( "bar" ); } + void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ) override; - private: + bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override; + bool readXml( const QDomElement &element, const QgsReadWriteContext &context ) override; + private: }; @@ -60,8 +64,13 @@ class CORE_EXPORT QgsLineChart : public Qgs2DXyPlot QgsLineChart() = default; ~QgsLineChart() = default; + QString type() const override { return QStringLiteral( "line" ); } + void renderContent( QgsRenderContext &context, const QRectF &plotArea, const QgsPlotData &plotData = QgsPlotData() ) override; + bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override; + bool readXml( const QDomElement &element, const QgsReadWriteContext &context ) override; + private: diff --git a/src/core/plot/qgsplot.cpp b/src/core/plot/qgsplot.cpp index ee37e202a1b..389e2e7f147 100644 --- a/src/core/plot/qgsplot.cpp +++ b/src/core/plot/qgsplot.cpp @@ -29,8 +29,9 @@ QgsPlot::~QgsPlot() = default; -bool QgsPlot::writeXml( QDomElement &, QDomDocument &, const QgsReadWriteContext & ) const +bool QgsPlot::writeXml( QDomElement &element, QDomDocument &, const QgsReadWriteContext & ) const { + element.setAttribute( QStringLiteral( "plotType" ), type() ); return true; } diff --git a/src/core/plot/qgsplot.h b/src/core/plot/qgsplot.h index e3586607fcf..3d6d898e4a8 100644 --- a/src/core/plot/qgsplot.h +++ b/src/core/plot/qgsplot.h @@ -48,6 +48,8 @@ class CORE_EXPORT QgsPlot virtual ~QgsPlot(); + virtual QString type() const { return QString(); } + /** * Writes the plot's properties into an XML \a element. */