tdf#138011: Revert "tdf#137949 Fix table row heigths."
This reverts commit 7dc234fa57ca409d0db131c93abea738014b5e1f.
Reason for revert: introduced tdf#138011
Change-Id: I44229135878524557dee29a6976f9bb1cf42766b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105351
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/sd/qa/unit/data/pptx/tablescale.pptx b/sd/qa/unit/data/pptx/tablescale.pptx
deleted file mode 100644
index c4d946e..0000000
--- a/sd/qa/unit/data/pptx/tablescale.pptx
+++ /dev/null
Binary files differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 6e6b08d..11cbbb4 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -1482,27 +1482,9 @@ void SdImportTest::testRowHeight()
uno::Reference< css::table::XTableRows > xRows( xTable->getRows(), uno::UNO_SET_THROW);
uno::Reference< beans::XPropertySet > xRefRow( xRows->getByIndex(0), uno::UNO_QUERY_THROW );
xRefRow->getPropertyValue( "Height" ) >>= nHeight;
CPPUNIT_ASSERT_EQUAL( sal_Int32(508), nHeight);
CPPUNIT_ASSERT_EQUAL( sal_Int32(507), nHeight);
xDocShRef->DoClose();
sd::DrawDocShellRef xDocShRef2 = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tablescale.pptx"), PPTX );
const SdrPage *pPage2 = GetPage( 1, xDocShRef2 );
sdr::table::SdrTableObj *pTableObj2 = dynamic_cast<sdr::table::SdrTableObj*>(pPage2->GetObj(0));
CPPUNIT_ASSERT( pTableObj2 );
uno::Reference< css::table::XTable > xTable2(pTableObj2->getTable(), uno::UNO_SET_THROW);
uno::Reference< css::table::XTableRows > xRows2( xTable2->getRows(), uno::UNO_SET_THROW);
for(sal_Int32 nRow = 0; nRow < 7; ++nRow)
{
uno::Reference< beans::XPropertySet > xRefRow2( xRows2->getByIndex(nRow), uno::UNO_QUERY_THROW );
xRefRow2->getPropertyValue( "Height" ) >>= nHeight;
CPPUNIT_ASSERT_EQUAL( sal_Int32(800), nHeight);
}
xDocShRef2->DoClose();
}
void SdImportTest::testTdf93830()
diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx
index 09611ab..1c369e6 100644
--- a/svx/source/table/tablelayouter.cxx
+++ b/svx/source/table/tablelayouter.cxx
@@ -725,7 +725,6 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
{
const sal_Int32 nColCount = getColumnCount();
const sal_Int32 nRowCount = getRowCount();
if( nRowCount == 0 )
return;
@@ -742,9 +741,6 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
sal_Int32 nCol, nRow;
for( nRow = 0; nRow < nRowCount; ++nRow )
{
Reference< XPropertySet > xRowSet( xRows->getByIndex(nRow), UNO_QUERY_THROW );
sal_Int32 nRowPropHeight = 0;
xRowSet->getPropertyValue( gsSize ) >>= nRowPropHeight;
sal_Int32 nMinHeight = 0;
bool bIsEmpty = true; // check if all cells in this row are merged
@@ -768,13 +764,7 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
bool bCellHasText = xCell->hasText();
if (bRowHasText == bCellHasText)
{
if(nRowPropHeight > 0)
{
nMinHeight = std::max( nMinHeight, xCell->getMinimumHeight() );
nMinHeight = std::min( nMinHeight, nRowPropHeight);
}
else
nMinHeight = xCell->getMinimumHeight();
nMinHeight = std::max( nMinHeight, xCell->getMinimumHeight() );
}
else if ( !bRowHasText && bCellHasText )
{
@@ -794,6 +784,7 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
else
{
sal_Int32 nRowHeight = 0;
Reference< XPropertySet > xRowSet( xRows->getByIndex(nRow), UNO_QUERY_THROW );
bool bOptimal = false;
xRowSet->getPropertyValue( sOptimalSize ) >>= bOptimal;
@@ -863,7 +854,7 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
}
// now scale if wanted and needed
if( bFit && nCurrentHeight != rArea.getHeight())
if( bFit && nCurrentHeight != rArea.getHeight() )
distribute(maRows, o3tl::saturating_sub<sal_Int32>(rArea.getHeight(), nCurrentHeight));
// last step, update left edges
@@ -873,7 +864,7 @@ void TableLayouter::LayoutTableHeight( tools::Rectangle& rArea, bool bFit )
maRows[nRow].mnPos = nNewHeight;
nNewHeight = o3tl::saturating_add(nNewHeight, maRows[nRow].mnSize);
if( bFit)
if( bFit )
{
Reference< XPropertySet > xRowSet( xRows->getByIndex(nRow), UNO_QUERY_THROW );
xRowSet->setPropertyValue( gsSize, Any( maRows[nRow].mnSize ) );