diff options
author | Armin Le Grand <Armin.Le.Grand@cib.de> | 2018-06-07 09:44:02 +0200 |
---|---|---|
committer | Armin Le Grand <Armin.Le.Grand@cib.de> | 2018-06-13 13:40:04 +0200 |
commit | 3087011e2eb810866276e270a6fc61a7e0998fec (patch) | |
tree | 961c9b25d00f0258dd0c3eb4850e50b78367f7c8 /drawinglayer | |
parent | 4a0ca73c31990568bf20a1c3f0906c3a5770a38e (diff) |
Replace SVGFilter using SVGIO
Next step is to put more logic into the decision
if Draw or Impress should be loaded - if we have a
self-exported Impress, import as Impress, else
(including all not-self-created SVG Graphics) import
to Draw.
To do this it is necessary to be able to import to
different document formats at all. To do this, add
an internal filter type to the filter mechanism
(types/registration/...) and decide in the SVG
XExtendedFilterDetection::detect from SVGFilter
which one to use.
Added tooling for SVG detection and more, see
SVGFileInfo. This allows to detect for SVG, but
also if the creator was LO and if it was Draw or
Impress. The document format/filter is choosen
accordingly.
Corrected the error with <g visibility="hidden">
Slides inisde <g class="SlideGroup"> for import
of self-exported Impress documents. No idea why
this was written that way, but needs to be fixed
to get a visible content at all.
Also adapted the final mapping from pt to 100thmm
in SvgSvgNode::decomposeSvgNode. Unfortunately
(and also for unknown reasons) the self-exported
Impress does not write svg:width/height values,
thus the adaption from assumed svg-units (px) to
100thmm has to be skipped.
Have identified the place in svgio where I can
embed Pages/Slides to a helper-Primitive to later
be able to 'break' such GraphicObjects to multiple
Pages/Slides. I have added a Primitive called
PageHierarchyPrimitive2D for this purpose.
Change-Id: I38bfef6e7b16479a025fc754e38b4e21a006ad38
Reviewed-on: https://gerrit.libreoffice.org/55434
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/Library_drawinglayer.mk | 1 | ||||
-rw-r--r-- | drawinglayer/source/primitive2d/baseprimitive2d.cxx | 1 | ||||
-rwxr-xr-x | drawinglayer/source/primitive2d/pagehierarchyprimitive2d.cxx | 40 |
3 files changed, 42 insertions, 0 deletions
diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk index 91c137d56c29..26b6a9c37ba4 100644 --- a/drawinglayer/Library_drawinglayer.mk +++ b/drawinglayer/Library_drawinglayer.mk @@ -95,6 +95,7 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/primitive2d/metafileprimitive2d \ drawinglayer/source/primitive2d/modifiedcolorprimitive2d \ drawinglayer/source/primitive2d/objectinfoprimitive2d \ + drawinglayer/source/primitive2d/pagehierarchyprimitive2d \ drawinglayer/source/primitive2d/pagepreviewprimitive2d \ drawinglayer/source/primitive2d/patternfillprimitive2d \ drawinglayer/source/primitive2d/pointarrayprimitive2d \ diff --git a/drawinglayer/source/primitive2d/baseprimitive2d.cxx b/drawinglayer/source/primitive2d/baseprimitive2d.cxx index cd45da11bae5..d9fac66c63dd 100644 --- a/drawinglayer/source/primitive2d/baseprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/baseprimitive2d.cxx @@ -367,6 +367,7 @@ namespace drawinglayer case PRIMITIVE2D_ID_PATTERNFILLPRIMITIVE2D: return OUString("PATTERNFILL"); case PRIMITIVE2D_ID_OBJECTINFOPRIMITIVE2D: return OUString("OBJECTINFO"); case PRIMITIVE2D_ID_POLYPOLYGONSELECTIONPRIMITIVE2D: return OUString("POLYPOLYGONSELECTION"); + case PRIMITIVE2D_ID_PAGEHIERARCHYPRIMITIVE2D: return OUString("PAGEHIERARCHY"); default: return OUString::number((nId >> 16) & 0xFF) + "|" + OUString::number(nId & 0xFF); } } diff --git a/drawinglayer/source/primitive2d/pagehierarchyprimitive2d.cxx b/drawinglayer/source/primitive2d/pagehierarchyprimitive2d.cxx new file mode 100755 index 000000000000..19225b01e9a6 --- /dev/null +++ b/drawinglayer/source/primitive2d/pagehierarchyprimitive2d.cxx @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include <drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx> +#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx> + +using namespace com::sun::star; + +namespace drawinglayer +{ + namespace primitive2d + { + PageHierarchyPrimitive2D::PageHierarchyPrimitive2D(const Primitive2DContainer& rChildren) + : GroupPrimitive2D(rChildren) + { + } + + // provide unique ID + ImplPrimitive2DIDBlock(PageHierarchyPrimitive2D, PRIMITIVE2D_ID_PAGEHIERARCHYPRIMITIVE2D) + + } // end of namespace primitive2d +} // end of namespace drawinglayer + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |