diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-09-28 09:03:13 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-10-08 11:28:18 +0000 |
commit | f98d09c8325c642f0463f2e65ff57be0498e9c23 (patch) | |
tree | f2b560a132249a6bd8eed17e3709036cb172e284 /writerfilter | |
parent | f7e8fe2a4b0c2554200b1191cf4497c0ece8dbeb (diff) |
tdf#90153 DOCX import: fix default sw TextFrame roundtrip
The AnchorType of the shape was at-paragraph, which does not allow
line-level VertOrientRelation (which is correct, it would be undefined,
what line of the paragraph should be the used).
Fix this by changing the AnchorType to at-character in the line-level
case, which brings the filter in sync with the DOC one.
With this, import of a DOCX file that was created by inserting a
TextFrame into an empty document is roundtripped without shifting the
shape up considerably.
(cherry-picked from commit 358666e4204364ce915ee95372dc6f2fca545253)
Conflicts:
sw/qa/extras/ooxmlimport/ooxmlimport.cxx
Change-Id: I6d85c38be859d6e730584f2349c857b87496a1d4
Reviewed-on: https://gerrit.libreoffice.org/19099
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/GraphicImport.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index 154b9e2bb137..1b0644d1eabc 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -823,8 +823,12 @@ void GraphicImport::lcl_attribute(Id nName, Value& rValue) // If we are here, this is a drawingML shape. For those, only dmapper (and not oox) knows the anchoring infos (just like for Writer pictures). // But they aren't Writer pictures, either (which are already handled above). uno::Reference< beans::XPropertySet > xShapeProps(m_xShape, uno::UNO_QUERY_THROW); - // This needs to be AT_PARAGRAPH and not AT_CHARACTER, otherwise shape will move when the user inserts a new paragraph. - xShapeProps->setPropertyValue("AnchorType", uno::makeAny(text::TextContentAnchorType_AT_PARAGRAPH)); + + // This needs to be AT_PARAGRAPH by default and not AT_CHARACTER, otherwise shape will move when the user inserts a new paragraph. + text::TextContentAnchorType eAnchorType = text::TextContentAnchorType_AT_PARAGRAPH; + if (m_pImpl->nVertRelation == text::RelOrientation::TEXT_LINE) + eAnchorType = text::TextContentAnchorType_AT_CHARACTER; + xShapeProps->setPropertyValue("AnchorType", uno::makeAny(eAnchorType)); //only the position orientation is handled in applyPosition() m_pImpl->applyPosition(xShapeProps); |