NFC prepwork for tdf#159158: flatten writerfilter applyZOrder

limit code shuffle in the fix itself

Change-Id: Ic506ac700403fa434dd6410e9ea566c6d0e19676
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164154
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 239ecde..3548ece 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -4908,11 +4908,11 @@ SettingsTablePtr const & DomainMapper::GetSettingsTable()
    return m_pImpl->GetSettingsTable();
}

GraphicZOrderHelper* DomainMapper::graphicZOrderHelper()
GraphicZOrderHelper& DomainMapper::graphicZOrderHelper()
{
    if (m_zOrderHelper == nullptr)
        m_zOrderHelper.reset( new GraphicZOrderHelper );
    return m_zOrderHelper.get();
    return *m_zOrderHelper;
}

uno::Reference<drawing::XShape> DomainMapper::PopPendingShape()
diff --git a/writerfilter/source/dmapper/DomainMapper.hxx b/writerfilter/source/dmapper/DomainMapper.hxx
index db29f10..9d9771e 100644
--- a/writerfilter/source/dmapper/DomainMapper.hxx
+++ b/writerfilter/source/dmapper/DomainMapper.hxx
@@ -107,7 +107,7 @@ public:
    OUString getOrCreateCharStyle( PropertyValueVector_t& rCharProperties, bool bAlwaysCreate );
    StyleSheetTablePtr const & GetStyleSheetTable( );
    SettingsTablePtr const & GetSettingsTable();
    GraphicZOrderHelper* graphicZOrderHelper();
    GraphicZOrderHelper& graphicZOrderHelper();

    /// Return the first from the pending (not inserted to the document) shapes, if there are any.
    css::uno::Reference<css::drawing::XShape> PopPendingShape();
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 0b1ff5e..45ff009 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4762,12 +4762,12 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape 
                {
                    if (rProp.Name == "VML-Z-ORDER")
                    {
                        GraphicZOrderHelper* pZOrderHelper = m_rDMapper.graphicZOrderHelper();
                        GraphicZOrderHelper& rZOrderHelper = m_rDMapper.graphicZOrderHelper();
                        sal_Int32 zOrder(0);
                        rProp.Value >>= zOrder;
                        xShapePropertySet->setPropertyValue("ZOrder",
                            uno::Any(pZOrderHelper->findZOrder(zOrder, /*LastDuplicateWins*/true)));
                        pZOrderHelper->addItem(xShapePropertySet, zOrder);
                            uno::Any(rZOrderHelper.findZOrder(zOrder, /*LastDuplicateWins*/true)));
                        rZOrderHelper.addItem(xShapePropertySet, zOrder);
                        xShapePropertySet->setPropertyValue(getPropertyName( PROP_OPAQUE ), uno::Any( zOrder >= 0 ) );
                        checkZOrderStatus = true;
                    }
@@ -4807,12 +4807,12 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape 
                {
                    if (rProp.Name == "VML-Z-ORDER")
                    {
                        GraphicZOrderHelper* pZOrderHelper = m_rDMapper.graphicZOrderHelper();
                        GraphicZOrderHelper& rZOrderHelper = m_rDMapper.graphicZOrderHelper();
                        sal_Int32 zOrder(0);
                        rProp.Value >>= zOrder;
                        xShapePropertySet->setPropertyValue("ZOrder",
                            uno::Any(pZOrderHelper->findZOrder(zOrder, /*LastDuplicateWins*/true)));
                        pZOrderHelper->addItem(xShapePropertySet, zOrder);
                            uno::Any(rZOrderHelper.findZOrder(zOrder, /*LastDuplicateWins*/true)));
                        rZOrderHelper.addItem(xShapePropertySet, zOrder);
                        xShapePropertySet->setPropertyValue(getPropertyName( PROP_OPAQUE ), uno::Any( zOrder >= 0 ) );
                        checkZOrderStatus = true;
                    }
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx
index c11717b..bee2074 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -391,14 +391,14 @@ public:
    void applyZOrder(uno::Reference<beans::XPropertySet> const & xGraphicObjectProperties) const
    {
        std::optional<sal_Int32> oZOrder = m_oZOrder;
        bool bBehindText = m_bBehindDoc && !m_bOpaque;
        if (m_rGraphicImportType == GraphicImportType::IMPORT_AS_DETECTED_INLINE
            && !m_rDomainMapper.IsInShape())
        {
            oZOrder = SAL_MIN_INT32;
            bBehindText = false;
        }
        if (oZOrder)
        else if (!oZOrder)
            return;
        else
        {
            // tdf#120760 Send objects with behinddoc=true to the back.

@@ -417,18 +417,19 @@ public:
            // (especially needed for IsInHeaderFooter, as EVERYTHING is forced to the background).
            //
            // relativeHeight already removed 0x1E00 0000, so can subtract another 0x6200 0000
            const bool bBehindText = m_bBehindDoc && !m_bOpaque;
            if (bBehindText)
                oZOrder = *oZOrder - 0x62000000;

            // TODO: it is possible that RTF has been wrong all along as well. Always true here?
            const bool bLastDuplicateWins(!m_rDomainMapper.IsRTFImport()
                || m_rGraphicImportType == GraphicImportType::IMPORT_AS_DETECTED_INLINE);

            GraphicZOrderHelper* pZOrderHelper = m_rDomainMapper.graphicZOrderHelper();
            xGraphicObjectProperties->setPropertyValue(getPropertyName(PROP_Z_ORDER),
                uno::Any(pZOrderHelper->findZOrder(*oZOrder, bLastDuplicateWins)));
            pZOrderHelper->addItem(xGraphicObjectProperties, *oZOrder);
        }

        // TODO: it is possible that RTF has been wrong all along as well. Always true here?
        const bool bLastDuplicateWins(!m_rDomainMapper.IsRTFImport()
            || m_rGraphicImportType == GraphicImportType::IMPORT_AS_DETECTED_INLINE);

        GraphicZOrderHelper& rZOrderHelper = m_rDomainMapper.graphicZOrderHelper();
        xGraphicObjectProperties->setPropertyValue(getPropertyName(PROP_Z_ORDER),
            uno::Any(rZOrderHelper.findZOrder(*oZOrder, bLastDuplicateWins)));
        rZOrderHelper.addItem(xGraphicObjectProperties, *oZOrder);
    }

    void applyName(uno::Reference<beans::XPropertySet> const & xGraphicObjectProperties) const