diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2014-09-21 17:52:58 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-09-23 14:32:57 +0000 |
commit | 2a632bb30f78f02042ce333d426468087639305b (patch) | |
tree | b377d45e056bf53fa277dca62fdffcfba77b274f /writerfilter | |
parent | f7abe28ec99733f80a6c6f249ef5dbddeb31ad7f (diff) |
handle docx's w:anchor layoutInCell attribute (bnc#891663)
Change-Id: I8268567b84aa0f6e42624bfd0f79c8c49c153edd
Reviewed-on: https://gerrit.libreoffice.org/11568
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/GraphicImport.cxx | 7 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.cxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.hxx | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index 6cd88a5b19e7..e2d3fa33a6ad 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -210,6 +210,7 @@ public: sal_Int16 nVertOrient; sal_Int16 nVertRelation; sal_Int32 nWrap; + bool bLayoutInCell; bool bOpaque; bool bContour; bool bContourOutside; @@ -283,6 +284,7 @@ public: ,nVertOrient( text::VertOrientation::NONE ) ,nVertRelation( text::RelOrientation::FRAME ) ,nWrap(0) + ,bLayoutInCell(false) ,bOpaque( true ) ,bContour(false) ,bContourOutside(true) @@ -581,6 +583,8 @@ void GraphicImport::lcl_attribute(Id nName, Value& rValue) break; case NS_ooxml::LN_CT_Anchor_locked: // 90990; - ignored case NS_ooxml::LN_CT_Anchor_layoutInCell: // 90991; - ignored + m_pImpl->bLayoutInCell = nIntValue != 0; + break; case NS_ooxml::LN_CT_Anchor_hidden: // 90992; - ignored break; case NS_ooxml::LN_CT_Anchor_allowOverlap: // 90993; @@ -1230,6 +1234,9 @@ uno::Reference< text::XTextContent > GraphicImport::createGraphicObject( const b } xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_SURROUND ), uno::makeAny(m_pImpl->nWrap)); + if( m_pImpl->bLayoutInCell && m_pImpl->nWrap != text::WrapTextMode_THROUGHT ) + xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_FOLLOW_TEXT_FLOW ), + uno::makeAny(true)); xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_SURROUND_CONTOUR ), uno::makeAny(m_pImpl->bContour)); diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx index 3f5fa0571cdd..fc81daec20a2 100644 --- a/writerfilter/source/dmapper/PropertyIds.cxx +++ b/writerfilter/source/dmapper/PropertyIds.cxx @@ -394,6 +394,7 @@ OUString PropertyNameSupplier::GetName( PropertyIds eId ) const case PROP_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING : sName = "ApplyParagraphMarkFormatToNumbering"; break; case PROP_CELL_DIRECTION: sName = "CellDirection"; break; case PROP_CELL_HIDE_MARK: sName = "CellHideMark"; break; + case PROP_FOLLOW_TEXT_FLOW: sName = "IsFollowingTextFlow"; break; } ::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt = m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName )); diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx index 3510e6274771..7394a5081415 100644 --- a/writerfilter/source/dmapper/PropertyIds.hxx +++ b/writerfilter/source/dmapper/PropertyIds.hxx @@ -366,6 +366,7 @@ enum PropertyIds ,PROP_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING ,PROP_CELL_DIRECTION ,PROP_CELL_HIDE_MARK + ,PROP_FOLLOW_TEXT_FLOW }; struct PropertyNameSupplier_Impl; class PropertyNameSupplier |