Related: tdf#124600 DOCX import: ignore left wrap on left-aligned shapes

The DOC import does the same in
SwWW8ImplReader::AdjustLRWrapForWordMargins(). This fixes one
sub-problem of the bugdoc, so now the shape anchored in the header has a
correct position.

This made it necessary to re-visit the tdf#115719 testcases, which are
minimal reproducers. The original document had from-left alignment
(instead of align-to-left), but this did not matter before. Bring the
test documents closer to the original large document, so the tests still
pass and don't depend on LO mis-handling the above mentioned
left-aligned situation. (The interesting property of tdf115719.docx,
where Word 2010 and Word 2013 handles the document differently is
preserved after this change.)

Change-Id: I973c13df47b0867e2c4756f0c448495257b7c9d5
Reviewed-on: https://gerrit.libreoffice.org/79049
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
diff --git a/sw/qa/extras/ooxmlexport/data/tdf115719.docx b/sw/qa/extras/ooxmlexport/data/tdf115719.docx
index f98f8b4..4eda09a 100644
--- a/sw/qa/extras/ooxmlexport/data/tdf115719.docx
+++ b/sw/qa/extras/ooxmlexport/data/tdf115719.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/data/tdf115719b.docx b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
index 8c552ba..4cb1322 100644
--- a/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
+++ b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/data/tdf124600.docx b/sw/qa/extras/ooxmlimport/data/tdf124600.docx
new file mode 100644
index 0000000..d5dfa31
--- /dev/null
+++ b/sw/qa/extras/ooxmlimport/data/tdf124600.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
index e2d930b..c0e0066 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
@@ -132,6 +132,17 @@ DECLARE_OOXMLIMPORT_TEST(testGroupShapeFontName, "groupshape-fontname.docx")
        getProperty<OUString>(getRun(getParagraphOfText(1, xText), 1), "CharFontNameAsian"));
}

DECLARE_OOXMLIMPORT_TEST(testTdf124600, "tdf124600.docx")
{
    uno::Reference<drawing::XShape> xShape = getShape(1);
    // Without the accompanying fix in place, this test would have failed with:
    // - Expected: 0
    // - Actual  : 318
    // i.e. the shape had an unexpected left margin, but not in Word.
    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0),
                         getProperty<sal_Int32>(xShape, "HoriOrientPosition"));
}

DECLARE_OOXMLIMPORT_TEST(testTdf120548, "tdf120548.docx")
{
    // Without the accompanying fix in place, this test would have failed with 'Expected: 00ff0000;
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx
index bf80052..c148d79 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -975,7 +975,6 @@ void GraphicImport::ProcessShapeOptions(Value const & rValue)
    switch( m_pImpl->nShapeOptionType )
    {
        case NS_ooxml::LN_CT_Anchor_distL:
            //todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustLRWrapForWordMargins()
            m_pImpl->nLeftMargin = nIntValue / 360;
        break;
        case NS_ooxml::LN_CT_Anchor_distT:
@@ -1070,6 +1069,16 @@ void GraphicImport::lcl_sprm(Sprm& rSprm)
                    m_pImpl->nHoriRelation = pHandler->relation();
                    m_pImpl->nHoriOrient = pHandler->orientation();
                    m_pImpl->nLeftPosition = pHandler->position();

                    // Left adjustments: if horizontally aligned to left of margin, then remove the
                    // left wrapping.
                    if (m_pImpl->nHoriOrient == text::HoriOrientation::LEFT)
                    {
                        if (m_pImpl->nHoriRelation == text::RelOrientation::PAGE_PRINT_AREA)
                        {
                            m_pImpl->nLeftMargin = 0;
                        }
                    }
                }
            }
        }