diff options
author | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-02-20 11:04:16 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-02-20 11:17:00 +0100 |
commit | d0cde9640b52ccfbb28ed1f65bba0927afd7b69b (patch) | |
tree | 18c6342798d98ff8559a3cf26dac4994a2f82998 /writerfilter/source/dmapper/DomainMapperTableHandler.cxx | |
parent | a633a96c3a50d803e5fa43b603edc0b8e2e34b6e (diff) |
n#779642: Fixed floating tables import in writerfilter
Diffstat (limited to 'writerfilter/source/dmapper/DomainMapperTableHandler.cxx')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 46 |
1 files changed, 6 insertions, 40 deletions
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 46c418df269e..6f1a400acf08 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -717,7 +717,8 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel) uno::Reference<text::XTextRange> xStart; uno::Reference<text::XTextRange> xEnd; // If we want to make this table a floating one. - bool bFloating = !m_rDMapper_Impl.getTableManager().getTableVertAnchor().isEmpty(); + uno::Sequence<beans::PropertyValue> aFrameProperties = m_rDMapper_Impl.getTableManager().getTablePosition(); + bool bFloating = aFrameProperties.hasElements(); // Additional checks: if we can do this. if (bFloating && (*m_pTableSeq)[0].getLength() > 0 && (*m_pTableSeq)[0][0].getLength() > 0) { @@ -764,46 +765,11 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel) if (xTable.is() && xStart.is() && xEnd.is()) { uno::Reference<beans::XPropertySet> xTableProperties(xTable, uno::UNO_QUERY); - uno::Sequence< beans::PropertyValue > aFrameProperties(16); - beans::PropertyValue* pFrameProperties = aFrameProperties.getArray(); - pFrameProperties[0].Name = "Width"; - pFrameProperties[0].Value = xTableProperties->getPropertyValue("Width"); - - pFrameProperties[1].Name = "LeftBorderDistance"; - pFrameProperties[1].Value <<= sal_Int32(0); - pFrameProperties[2].Name = "RightBorderDistance"; - pFrameProperties[2].Value <<= sal_Int32(0); - pFrameProperties[3].Name = "TopBorderDistance"; - pFrameProperties[3].Value <<= sal_Int32(0); - pFrameProperties[4].Name = "BottomBorderDistance"; - pFrameProperties[4].Value <<= sal_Int32(0); - - pFrameProperties[5].Name = "LeftMargin"; - pFrameProperties[5].Value <<= sal_Int32(0); - pFrameProperties[6].Name = "RightMargin"; - pFrameProperties[6].Value <<= sal_Int32(0); - pFrameProperties[7].Name = "TopMargin"; - pFrameProperties[7].Value <<= sal_Int32(0); - pFrameProperties[8].Name = "BottomMargin"; - pFrameProperties[8].Value <<= sal_Int32(0); - - table::BorderLine2 aEmptyBorder; - pFrameProperties[9].Name = "TopBorder"; - pFrameProperties[9].Value <<= aEmptyBorder; - pFrameProperties[10].Name = "BottomBorder"; - pFrameProperties[10].Value <<= aEmptyBorder; - pFrameProperties[11].Name = "LeftBorder"; - pFrameProperties[11].Value <<= aEmptyBorder; - pFrameProperties[12].Name = "RightBorder"; - pFrameProperties[12].Value <<= aEmptyBorder; - - pFrameProperties[13].Name = "HoriOrient"; - pFrameProperties[13].Value <<= text::HoriOrientation::NONE; - pFrameProperties[14].Name = "HoriOrientRelation"; - pFrameProperties[14].Value <<= text::RelOrientation::FRAME; + aFrameProperties.realloc(aFrameProperties.getLength() + 1); + aFrameProperties[aFrameProperties.getLength() - 1].Name = "Width"; + aFrameProperties[aFrameProperties.getLength() - 1].Value = xTableProperties->getPropertyValue("Width"); + // A non-zero left margin would move the table out of the frame, move the frame itself instead. - pFrameProperties[15].Name = "HoriOrientPosition"; - pFrameProperties[15].Value <<= xTableProperties->getPropertyValue("LeftMargin"); xTableProperties->setPropertyValue("LeftMargin", uno::makeAny(sal_Int32(0))); uno::Reference< text::XTextContent > xFrame = m_xText->convertToTextFrame(xStart, xEnd, aFrameProperties); |