writerfilter: pass the whole MediaDescriptor to dmapper

This gives dmapper access to the document URL.

Change-Id: I4844c2fe97815f788de87b53170d4a1d1faebde8
diff --git a/writerfilter/inc/dmapper/DomainMapperFactory.hxx b/writerfilter/inc/dmapper/DomainMapperFactory.hxx
index 28563ac..9fcd542 100644
--- a/writerfilter/inc/dmapper/DomainMapperFactory.hxx
+++ b/writerfilter/inc/dmapper/DomainMapperFactory.hxx
@@ -15,6 +15,11 @@
#include <com/sun/star/text/XTextRange.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>

namespace utl
{
class MediaDescriptor;
}

namespace writerfilter
{
namespace dmapper
@@ -38,7 +43,7 @@ public:
                 bool bRepairStorage,
                 SourceDocumentType eDocumentType,
                 css::uno::Reference<css::text::XTextRange> const& xInsertTextRange,
                 bool bIsNewDoc = true);
                 utl::MediaDescriptor& rMediaDesc);
};
} // namespace dmapper
} // namespace writerfilter
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 2f0e43d..14c8c5f 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -63,6 +63,7 @@
#include <comphelper/types.hxx>
#include <comphelper/storagehelper.hxx>
#include <filter/msfilter/util.hxx>
#include <unotools/mediadescriptor.hxx>

#include <TextEffectsHandler.hxx>
#include <CellColorHandler.hxx>
@@ -96,11 +97,11 @@ DomainMapper::DomainMapper( const uno::Reference< uno::XComponentContext >& xCon
                            bool bRepairStorage,
                            SourceDocumentType eDocumentType,
                            uno::Reference<text::XTextRange> const& xInsertTextRange,
                            bool bIsNewDoc ) :
                            utl::MediaDescriptor& rMediaDesc) :
LoggedProperties(dmapper_logger, "DomainMapper"),
LoggedTable(dmapper_logger, "DomainMapper"),
LoggedStream(dmapper_logger, "DomainMapper"),
    m_pImpl( new DomainMapper_Impl( *this, xContext, xModel, eDocumentType, xInsertTextRange, bIsNewDoc )),
    m_pImpl( new DomainMapper_Impl( *this, xContext, xModel, eDocumentType, xInsertTextRange, !rMediaDesc.getUnpackedValueOrDefault("InsertMode", false))),
    mnBackgroundColor(0), mbIsHighlightSet(false), mbIsSplitPara(false)
{
    // #i24363# tab stops relative to indent
diff --git a/writerfilter/source/dmapper/DomainMapper.hxx b/writerfilter/source/dmapper/DomainMapper.hxx
index b1b0ba7..67c16f3 100644
--- a/writerfilter/source/dmapper/DomainMapper.hxx
+++ b/writerfilter/source/dmapper/DomainMapper.hxx
@@ -46,6 +46,11 @@ namespace com{ namespace sun {namespace star{
    }
}}}

namespace utl
{
class MediaDescriptor;
}

typedef std::vector< com::sun::star::beans::PropertyValue > PropertyValueVector_t;

namespace writerfilter {
@@ -76,7 +81,7 @@ public:
                                bool bRepairStorage,
                                SourceDocumentType eDocumentType,
                                ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > const& xInsertTextRange,
                                bool bIsNewDoc = true);
                                utl::MediaDescriptor& rMediaDesc);
    virtual ~DomainMapper();

    // Stream
diff --git a/writerfilter/source/dmapper/domainmapperfactory.cxx b/writerfilter/source/dmapper/domainmapperfactory.cxx
index bf9810f..bc59c4e 100644
--- a/writerfilter/source/dmapper/domainmapperfactory.cxx
+++ b/writerfilter/source/dmapper/domainmapperfactory.cxx
@@ -8,6 +8,7 @@
 */

#include <DomainMapper.hxx>
#include <unotools/mediadescriptor.hxx>

namespace writerfilter
{
@@ -20,9 +21,9 @@ Stream::Pointer_t DomainMapperFactory::createMapper(css::uno::Reference<css::uno
        bool bRepairStorage,
        SourceDocumentType eDocumentType,
        css::uno::Reference<css::text::XTextRange> const& xInsertTextRange,
        bool bIsNewDoc)
        utl::MediaDescriptor& rMediaDesc)
{
    return Stream::Pointer_t(new DomainMapper(xContext, xInputStream, xModel, bRepairStorage, eDocumentType, xInsertTextRange, bIsNewDoc));
    return Stream::Pointer_t(new DomainMapper(xContext, xInputStream, xModel, bRepairStorage, eDocumentType, xInsertTextRange, rMediaDesc));
}

} // namespace dmapper
diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
index 87a81da..474b79e 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -90,7 +90,7 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes

        writerfilter::dmapper::SourceDocumentType eType = writerfilter::dmapper::DOCUMENT_OOXML;
        writerfilter::Stream::Pointer_t pStream(
            writerfilter::dmapper::DomainMapperFactory::createMapper(m_xContext, xInputStream, m_xDstDoc, bRepairStorage, eType, uno::Reference<text::XTextRange>()));
            writerfilter::dmapper::DomainMapperFactory::createMapper(m_xContext, xInputStream, m_xDstDoc, bRepairStorage, eType, uno::Reference<text::XTextRange>(), aMediaDesc));
        //create the tokenizer and domain mapper
        writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream, bRepairStorage);
        uno::Reference<task::XStatusIndicator> xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(), uno::Reference<task::XStatusIndicator>());
diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx
index 1eba5b6..56ab873 100644
--- a/writerfilter/source/filter/RtfFilter.cxx
+++ b/writerfilter/source/filter/RtfFilter.cxx
@@ -113,7 +113,7 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& aDescrip
                           uno::Reference<task::XStatusIndicator>());

        writerfilter::Stream::Pointer_t pStream(
            writerfilter::dmapper::DomainMapperFactory::createMapper(m_xContext, xInputStream, m_xDstDoc, bRepairStorage, writerfilter::dmapper::DOCUMENT_RTF, xInsertTextRange, bIsNewDoc));
            writerfilter::dmapper::DomainMapperFactory::createMapper(m_xContext, xInputStream, m_xDstDoc, bRepairStorage, writerfilter::dmapper::DOCUMENT_RTF, xInsertTextRange, aMediaDesc));
        writerfilter::rtftok::RTFDocument::Pointer_t const pDocument(
            writerfilter::rtftok::RTFDocumentFactory::createDocument(m_xContext, xInputStream, m_xDstDoc, xFrame, xStatusIndicator));
        pDocument->resolve(*pStream);