diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-12-21 11:12:40 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-12-21 19:13:47 +0100 |
commit | 44ea0b3a2550a79148fb86f3e7175fffe77674b4 (patch) | |
tree | 5c0207c67758e888f6a4ce8a49c62f1285600da8 /writerfilter/source/dmapper/GraphicImport.cxx | |
parent | 8870e068cc7368ffa14a6938836b370d2a188b64 (diff) |
writerfilter: refactor to get rid of savedPositionOffset{V,H} statics
Which are extremely scary, allowing a shape position from one doc to
appear in an other if two writerfilter import is in progress at the same
time.
This partially reverts 8fa1a0874765ea7db57e496f1d92731b9ab09280 (read
wp:positionOffset, wp:alignV and wp:alignH properly (bnc#513579),
2011-05-04).
Change-Id: I0fcddf88fa56f5f9288e47bcd100c38ee9cf2f13
Diffstat (limited to 'writerfilter/source/dmapper/GraphicImport.cxx')
-rw-r--r-- | writerfilter/source/dmapper/GraphicImport.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index de999affa584..fae9b3d1eb1a 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -261,6 +261,7 @@ public: OUString sName; OUString sAlternativeText; OUString title; + std::pair<OUString, OUString>& m_rPositionOffsets; std::queue<OUString>& m_rPositivePercentages; OUString sAnchorId; comphelper::SequenceAsHashMap m_aInteropGrabBag; @@ -269,7 +270,7 @@ public: boost::optional<sal_Int32> m_oEffectExtentRight; boost::optional<sal_Int32> m_oEffectExtentBottom; - GraphicImport_Impl(GraphicImportType eImportType, DomainMapper& rDMapper, std::queue<OUString>& rPositivePercentages) : + GraphicImport_Impl(GraphicImportType eImportType, DomainMapper& rDMapper, std::pair<OUString, OUString>& rPositionOffsets, std::queue<OUString>& rPositivePercentages) : nXSize(0) ,bXSizeValid(false) ,nYSize(0) @@ -320,6 +321,7 @@ public: ,bSizeProtected(false) ,bPositionProtected(false) ,nShapeOptionType(0) + ,m_rPositionOffsets(rPositionOffsets) ,m_rPositivePercentages(rPositivePercentages) {} @@ -444,11 +446,12 @@ GraphicImport::GraphicImport(uno::Reference<uno::XComponentContext> const& xComp uno::Reference<lang::XMultiServiceFactory> const& xTextFactory, DomainMapper& rDMapper, GraphicImportType eImportType, + std::pair<OUString, OUString>& rPositionOffsets, std::queue<OUString>& rPositivePercentages) : LoggedProperties(dmapper_logger, "GraphicImport") , LoggedTable(dmapper_logger, "GraphicImport") , LoggedStream(dmapper_logger, "GraphicImport") -, m_pImpl(new GraphicImport_Impl(eImportType, rDMapper, rPositivePercentages)) +, m_pImpl(new GraphicImport_Impl(eImportType, rDMapper, rPositionOffsets, rPositivePercentages)) , m_xComponentContext(xComponentContext) , m_xTextFactory(xTextFactory) { @@ -1045,7 +1048,7 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) case NS_ooxml::LN_CT_Anchor_positionH: // 90976; { // Use a special handler for the positionning - PositionHandlerPtr pHandler( new PositionHandler( false )); + PositionHandlerPtr pHandler( new PositionHandler( false, m_pImpl->m_rPositionOffsets )); writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); if( pProperties.get( ) ) { @@ -1071,7 +1074,7 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) case NS_ooxml::LN_CT_Anchor_positionV: // 90977; { // Use a special handler for the positionning - PositionHandlerPtr pHandler( new PositionHandler( true )); + PositionHandlerPtr pHandler( new PositionHandler( true, m_pImpl->m_rPositionOffsets )); writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); if( pProperties.get( ) ) { |