diff options
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport3.cxx | 8 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par2.cxx | 4 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 13 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.cxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyIds.hxx | 1 |
5 files changed, 27 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx index 72c7e8e696de..4646876f5fb6 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx @@ -936,6 +936,14 @@ DECLARE_OOXMLEXPORT_TEST(testDontSplitTable, "tdf101589_dontSplitTable.odt") { //single row tables need to prevent split by setting row to no split CPPUNIT_ASSERT_EQUAL( OUString("Row 1"), parseDump("/root/page[2]/body/tab[1]/row[1]/cell[1]/txt[1]") ); + + uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY); + uno::Reference<text::XTextTable> xTable (xTables->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(xTable, "Split")); + + uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(xTableRows->getByIndex(0), "IsSplitAllowed")); } DECLARE_OOXMLEXPORT_TEST(testExtraSectionBreak, "1_page.docx") diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index 87e4d8aa2e4b..cc60100bcb7e 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -3186,6 +3186,10 @@ void WW8TabDesc::AdjustNewBand() bool bSetCantSplit = pActBand->bCantSplit; pTabLine->GetFrameFormat()->SetFormatAttr(SwFormatRowSplit(!bSetCantSplit)); + // if table is only a single row, and row is set as don't split, set the same value for the whole table. + if( bSetCantSplit && pTabLines->size() == 1 ) + pTable->GetFrameFormat()->SetFormatAttr(SwFormatLayoutSplit( !bSetCantSplit )); + short i; // SW-Index short j; // WW-Index short nW; // Width diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 176998295193..99087d50e645 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -576,6 +576,19 @@ TableStyleSheetEntry * DomainMapperTableHandler::endTableGetTableStyle(TableInfo //fill default value - if not available m_aTableProperties->Insert( PROP_HEADER_ROW_COUNT, uno::makeAny( (sal_Int32)0), false); + // if table is only a single row, and row is set as don't split, set the same value for the whole table. + if( m_aRowProperties.size() == 1 && m_aRowProperties[0].get() ) + { + boost::optional<PropertyMap::Property> oSplitAllowed = m_aRowProperties[0]->getProperty(PROP_IS_SPLIT_ALLOWED); + if( oSplitAllowed ) + { + bool bRowCanSplit = true; + oSplitAllowed->second >>= bRowCanSplit; + if( !bRowCanSplit ) + m_aTableProperties->Insert( PROP_SPLIT, uno::makeAny(bRowCanSplit) ); + } + } + rInfo.aTableProperties = m_aTableProperties->GetPropertyValues(); #ifdef DEBUG_WRITERFILTER diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx index 426987fb635c..eec6ba265cce 100644 --- a/writerfilter/source/dmapper/PropertyIds.cxx +++ b/writerfilter/source/dmapper/PropertyIds.cxx @@ -238,6 +238,7 @@ OUString getPropertyName( PropertyIds eId ) case PROP_CREATE_FROM_OUTLINE : sName = "CreateFromOutline"; break; case PROP_CREATE_FROM_MARKS : sName = "CreateFromMarks"; break; case PROP_STANDARD : sName = "Standard"; break; + case PROP_SPLIT : sName = "Split"; break; case PROP_IS_SPLIT_ALLOWED : sName = "IsSplitAllowed"; break; case META_PROP_VERTICAL_BORDER : sName = "VerticalBorder"; break; case META_PROP_HORIZONTAL_BORDER : sName = "HorizontalBorder"; break; diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx index cf3abe89ce97..52a24f1e960a 100644 --- a/writerfilter/source/dmapper/PropertyIds.hxx +++ b/writerfilter/source/dmapper/PropertyIds.hxx @@ -260,6 +260,7 @@ enum PropertyIds ,PROP_SIZE_PROTECTED ,PROP_SIZE_TYPE ,PROP_SOURCE_NAME + ,PROP_SPLIT ,PROP_STANDARD ,PROP_START_AT ,PROP_START_WITH |