summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-07-01 12:03:20 +0200
committerMiklos Vajna <vmiklos@collabora.com>2020-07-01 14:56:23 +0200
commit3b7c81b9536d8155f4134010aee61d27764f1a5f (patch)
treed4ba01c8ef4be5d6ceede264917994e91e20a0d4 /chart2
parent5ab5f2d8656a1a0f3c9631e767687f9bb51a6913 (diff)
sw doc model xml dump: show SdrModel of embedded charts
Change-Id: Iae9daefb9b2173736c039d6177d7356c27eb7a33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97605 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'chart2')
-rw-r--r--chart2/Library_chartcore.mk1
-rw-r--r--chart2/inc/ChartModel.hxx6
-rw-r--r--chart2/inc/ChartView.hxx5
-rw-r--r--chart2/source/inc/chartview/DrawModelWrapper.hxx2
-rw-r--r--chart2/source/model/main/ChartModel.cxx14
-rw-r--r--chart2/source/view/main/ChartView.cxx14
-rw-r--r--chart2/source/view/main/DrawModelWrapper.cxx11
7 files changed, 52 insertions, 1 deletions
diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk
index f42dfecd42fe..063e77d42305 100644
--- a/chart2/Library_chartcore.mk
+++ b/chart2/Library_chartcore.mk
@@ -27,6 +27,7 @@ $(eval $(call gb_Library_set_precompiled_header,chartcore,chart2/inc/pch/precomp
$(eval $(call gb_Library_use_externals,chartcore,\
boost_headers \
+ libxml2 \
))
ifeq ($(DISABLE_GUI),)
diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx
index 8c9c4ad69344..8f1defa197be 100644
--- a/chart2/inc/ChartModel.hxx
+++ b/chart2/inc/ChartModel.hxx
@@ -52,6 +52,7 @@
#include <cppuhelper/implbase.hxx>
#include <comphelper/interfacecontainer2.hxx>
#include <vcl/GraphicObject.hxx>
+#include <sfx2/xmldump.hxx>
#include <memory>
@@ -105,7 +106,7 @@ typedef cppu::WeakImplHelper<
class UndoManager;
class ChartView;
-class OOO_DLLPUBLIC_CHARTTOOLS ChartModel final : public impl::ChartModel_Base
+class OOO_DLLPUBLIC_CHARTTOOLS ChartModel final : public impl::ChartModel_Base, public sfx2::XmlDump
{
private:
@@ -465,6 +466,9 @@ public:
void removeDataProviders();
+ /// See sfx2::XmlDump::dumpAsXml().
+ void dumpAsXml(xmlTextWriterPtr pWriter) const override;
+
private:
sal_Int32 mnStart;
sal_Int32 mnEnd;
diff --git a/chart2/inc/ChartView.hxx b/chart2/inc/ChartView.hxx
index de9459ed6573..437d49527974 100644
--- a/chart2/inc/ChartView.hxx
+++ b/chart2/inc/ChartView.hxx
@@ -39,6 +39,7 @@
#include <memory>
#include <vcl/timer.hxx>
+#include <sfx2/xmldump.hxx>
namespace com::sun::star::drawing { class XDrawPage; }
namespace com::sun::star::drawing { class XShapes; }
@@ -92,6 +93,7 @@ class ChartView final : public ::cppu::WeakImplHelper<
>
, public ExplicitValueProvider
, private SfxListener
+ , public sfx2::XmlDump
{
private:
void init();
@@ -179,6 +181,9 @@ public:
void setViewDirty();
+ /// See sfx2::XmlDump::dumpAsXml().
+ void dumpAsXml(xmlTextWriterPtr pWriter) const override;
+
private: //methods
void createShapes();
void createShapes2D( const css::awt::Size& rPageSize );
diff --git a/chart2/source/inc/chartview/DrawModelWrapper.hxx b/chart2/source/inc/chartview/DrawModelWrapper.hxx
index 3bc0b4fef2cf..bd9189dbff88 100644
--- a/chart2/source/inc/chartview/DrawModelWrapper.hxx
+++ b/chart2/source/inc/chartview/DrawModelWrapper.hxx
@@ -86,6 +86,8 @@ public:
static SdrObject* getNamedSdrObject( const OUString& rName, SdrObjList const * pObjList );
static bool removeShape( const css::uno::Reference< css::drawing::XShape >& xShape );
+
+ void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
} //namespace chart
#endif
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index 96c49fb56655..4f1d055f6a13 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -56,6 +56,7 @@
#include <sal/log.hxx>
#include <svl/zforlist.hxx>
#include <tools/diagnose_ex.h>
+#include <libxml/xmlwriter.h>
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::Reference;
@@ -738,6 +739,19 @@ void ChartModel::removeDataProviders()
m_xDataProvider.clear();
}
+void ChartModel::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ xmlTextWriterStartElement(pWriter, BAD_CAST("ChartModel"));
+ xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
+
+ if (mxChartView.is())
+ {
+ mxChartView->dumpAsXml(pWriter);
+ }
+
+ xmlTextWriterEndElement(pWriter);
+}
+
sal_Bool SAL_CALL ChartModel::hasInternalDataProvider()
{
return m_xDataProvider.is() && m_xInternalDataProvider.is();
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 4b6b1fa9b48f..faa7fbe3511a 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -103,6 +103,7 @@
#include <tools/stream.hxx>
#include <memory>
+#include <libxml/xmlwriter.h>
namespace com::sun::star::chart2 { class XChartDocument; }
namespace chart {
@@ -2890,6 +2891,19 @@ OUString ChartView::dump()
#endif
}
+void ChartView::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ xmlTextWriterStartElement(pWriter, BAD_CAST("ChartView"));
+ xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
+
+ if (m_pDrawModelWrapper)
+ {
+ m_pDrawModelWrapper->dumpAsXml(pWriter);
+ }
+
+ xmlTextWriterEndElement(pWriter);
+}
+
void ChartView::setViewDirty()
{
osl::MutexGuard aGuard(maTimeMutex);
diff --git a/chart2/source/view/main/DrawModelWrapper.cxx b/chart2/source/view/main/DrawModelWrapper.cxx
index 6403e0eea192..1d9bc2914ce2 100644
--- a/chart2/source/view/main/DrawModelWrapper.cxx
+++ b/chart2/source/view/main/DrawModelWrapper.cxx
@@ -33,6 +33,7 @@
#include <editeng/unolingu.hxx>
#include <vcl/svapp.hxx>
#include <vcl/virdev.hxx>
+#include <libxml/xmlwriter.h>
#include <com/sun/star/container/XChild.hpp>
@@ -324,6 +325,16 @@ bool DrawModelWrapper::removeShape( const uno::Reference< drawing::XShape >& xSh
return false;
}
+void DrawModelWrapper::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ xmlTextWriterStartElement(pWriter, BAD_CAST("DrawModelWrapper"));
+ xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
+
+ SdrModel::dumpAsXml(pWriter);
+
+ xmlTextWriterEndElement(pWriter);
+}
+
} //namespace chart
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */