summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/GraphicImport.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-12-21 11:12:40 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-12-21 19:13:47 +0100
commit44ea0b3a2550a79148fb86f3e7175fffe77674b4 (patch)
tree5c0207c67758e888f6a4ce8a49c62f1285600da8 /writerfilter/source/dmapper/GraphicImport.cxx
parent8870e068cc7368ffa14a6938836b370d2a188b64 (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.cxx11
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( ) )
{