summaryrefslogtreecommitdiff
path: root/include/xmloff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-04-26 17:52:27 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-04-26 18:35:56 +0200
commit1b471124df251011b0053900cb82ceb0f3d8be86 (patch)
treed2a6a2abc6c6d57b26b43d74a88ef1dd15293ec3 /include/xmloff
parentad6515f48ced36ab9d10840aa60670fc41d25c6b (diff)
tdf#107392 ODF import: fix z-order sorting of SVG images
The problem was that in case the document has shapes where the order does not match the z-index order, so sorting is needed, then sorting failed to take the multi-image feature into account. E.g. SVG images have a PNG fallback, but at the end of the shape import the PNG fallback is removed, which means the "actual" (not the "wished") z-index of the shapes after the SVG image has to be adjusted. Without this happening SvxDrawPage::getByIndex() (or in case of Writer, SwTextBoxHelper::getByIndex()) will throw when the importer calls getByIndex(3) but we only have 3 shapes. This results in not honoring the z-index request of the remaining shapes. Regression from commit 44cfc7cb6533d827fd2d6e586d92c61d7d7f7a70 (re-base on ALv2 code. Includes (at least) relevant parts of:, 2012-10-09), from the Svg: Reintegrated Svg replacement from /branches/alg/svgreplavement http://svn.apache.org/viewvc?view=revision&revision=1220836 part. Change-Id: Ibe880e5c6c74b728b4a760498720ee31f052b726 Reviewed-on: https://gerrit.libreoffice.org/36998 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'include/xmloff')
-rw-r--r--include/xmloff/shapeimport.hxx3
-rw-r--r--include/xmloff/xmlmultiimagehelper.hxx2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx
index 4936b36a7068..efc00a289355 100644
--- a/include/xmloff/shapeimport.hxx
+++ b/include/xmloff/shapeimport.hxx
@@ -319,6 +319,9 @@ public:
void shapeWithZIndexAdded( css::uno::Reference< css::drawing::XShape >& rShape,
sal_Int32 nZIndex );
+ /// Updates the z-order of other shapes to be consistent again, needed due
+ /// to the removal of rShape.
+ void shapeRemoved(const css::uno::Reference<css::drawing::XShape>& rShape);
void addShapeConnection( css::uno::Reference< css::drawing::XShape >& rConnectorShape,
bool bStart,
diff --git a/include/xmloff/xmlmultiimagehelper.hxx b/include/xmloff/xmlmultiimagehelper.hxx
index 391f8a67a6a4..4a14d1ac4a77 100644
--- a/include/xmloff/xmlmultiimagehelper.hxx
+++ b/include/xmloff/xmlmultiimagehelper.hxx
@@ -33,7 +33,7 @@ private:
protected:
/// helper to get the created xShape instance, override this
virtual OUString getGraphicURLFromImportContext(const SvXMLImportContext& rContext) const = 0;
- virtual void removeGraphicFromImportContext(const SvXMLImportContext& rContext) const = 0;
+ virtual void removeGraphicFromImportContext(const SvXMLImportContext& rContext) = 0;
public:
MultiImageImportHelper();