summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Luth <justin_luth@sil.org>2016-02-13 16:28:48 +0300
committerMichael Stahl <mstahl@redhat.com>2016-02-15 13:35:09 +0000
commitaa03fd09c0e18ace241c9fe151f7f52c6773f403 (patch)
tree345f1bb546fcd412024eb7cbd6363258196f98dd
parent393c1a62f2516c1f8265c05f71e5959f8cd89194 (diff)
tdf#56321 - .doc import image flipped status
Although LO was exporting whether an image was flipped horizontally or vertically, it wasn't reading it in during an import. Change-Id: Ia85e3459d00f40d852bbcd3fcfe15e7b53d518ba Reviewed-on: https://gerrit.libreoffice.org/22344 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--sw/qa/extras/ww8export/data/tdf56321_flipImage_both.docbin0 -> 22528 bytes
-rw-r--r--sw/qa/extras/ww8export/ww8export.cxx20
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx18
3 files changed, 38 insertions, 0 deletions
diff --git a/sw/qa/extras/ww8export/data/tdf56321_flipImage_both.doc b/sw/qa/extras/ww8export/data/tdf56321_flipImage_both.doc
new file mode 100644
index 000000000000..a5293f29f526
--- /dev/null
+++ b/sw/qa/extras/ww8export/data/tdf56321_flipImage_both.doc
Binary files differ
diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx
index ec0387388e0d..38c0ebffcd69 100644
--- a/sw/qa/extras/ww8export/ww8export.cxx
+++ b/sw/qa/extras/ww8export/ww8export.cxx
@@ -23,7 +23,9 @@
#include <com/sun/star/view/DocumentZoomType.hpp>
#include <com/sun/star/rdf/URI.hpp>
#include <com/sun/star/rdf/Statement.hpp>
+#include <grfatr.hxx>
#include <pagedesc.hxx>
+#include <ndgrf.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/request.hxx>
@@ -567,6 +569,24 @@ DECLARE_WW8EXPORT_TEST(testTextVerticalAdjustment, "tdf36117_verticalAdjustment.
CPPUNIT_ASSERT_EQUAL( drawing::TextVerticalAdjust_BLOCK, nVA );
}
+DECLARE_WW8EXPORT_TEST(testRES_MIRROR_GRAPH_BOTH, "tdf56321_flipImage_both.doc")
+{
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get());
+ CPPUNIT_ASSERT(pTextDoc);
+ SwDoc* pDoc = pTextDoc->GetDocShell()->GetDoc();
+ CPPUNIT_ASSERT(pDoc);
+
+ for (int n = 0; ; n++)
+ {
+ SwNode* pNode = pDoc->GetNodes()[ n ];
+ if (SwGrfNode *pGrfNode = pNode->GetGrfNode())
+ {
+ CPPUNIT_ASSERT(pGrfNode->GetSwAttrSet().GetMirrorGrf().GetValue() == 3);
+ break;
+ }
+ }
+}
+
DECLARE_WW8EXPORT_TEST(testCommentExport, "comment-export.odt")
{
struct TextPortionInfo {
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 22f7510738a7..7c480d4ea5c3 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -2094,6 +2094,24 @@ SwWW8ImplReader::SetAttributesAtGrfNode(SvxMSDffImportRec const*const pRecord,
pGrfNd->SetAttr( aCrop );
}
+ bool bFlipH = pRecord->nFlags & SHAPEFLAG_FLIPH;
+ bool bFlipV = pRecord->nFlags & SHAPEFLAG_FLIPV;
+ if ( bFlipH || bFlipV )
+ {
+ SwMirrorGrf aMirror = pGrfNd->GetSwAttrSet().GetMirrorGrf();
+ if( bFlipH )
+ {
+ if( bFlipV )
+ aMirror.SetValue(RES_MIRROR_GRAPH_BOTH);
+ else
+ aMirror.SetValue(RES_MIRROR_GRAPH_VERT);
+ }
+ else
+ aMirror.SetValue(RES_MIRROR_GRAPH_HOR);
+
+ pGrfNd->SetAttr( aMirror );
+ }
+
if (pRecord->pObj)
{
const SfxItemSet& rOldSet = pRecord->pObj->GetMergedItemSet();