summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport3.cxx8
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx4
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx13
-rw-r--r--writerfilter/source/dmapper/PropertyIds.cxx1
-rw-r--r--writerfilter/source/dmapper/PropertyIds.hxx1
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