summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <anistenis@gmail.com>2016-01-21 20:56:31 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2016-02-03 15:34:43 +0000
commitf0649d4a752a1fbdf69c38740ac05c5219609f49 (patch)
tree4aa378e79c327cf1b191d3f482f9892a5ed0093e
parent89a3c1b4d69aac447606dc6f0e661b2ef4dddc8c (diff)
tdf#91762: Check wether the row and the cell have text...
... in order to set the row's min height Regression from 4f2c8194f485b1527fb4f4dfe23ce804937f1f9c After this commit, the row's min height was set based only on the cells containing text in the row, but the problem appeared when the row didn't have any cell with text. Change logic to check wether there's text in the cell and in the row. Now, height in SdImportTest::testRowHeight() is 507 instead of 508 but I can't figure it out why. However, I believe there's no harm in change the test from 508 to 507 as, visually speaking, the difference can't be distinguish. Change-Id: I0b3a14c34eaeaa8e77227860ca290fb79a0302ce Reviewed-on: https://gerrit.libreoffice.org/21692 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org> (cherry picked from commit 13d4398820ded5914f635757865e258db2db2b57) Reviewed-on: https://gerrit.libreoffice.org/22008 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
-rw-r--r--sd/qa/unit/import-tests.cxx3
-rw-r--r--svx/source/table/cell.cxx2
-rw-r--r--svx/source/table/tablelayouter.cxx12
3 files changed, 13 insertions, 4 deletions
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 3fb64ffadf51..42a986622dc4 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -1093,9 +1093,8 @@ void SdImportTest::testRowHeight()
uno::Reference< css::table::XTableRows > xRows( xTable->getRows(), uno::UNO_QUERY_THROW);
uno::Reference< beans::XPropertySet > xRefRow( xRows->getByIndex(0), uno::UNO_QUERY_THROW );
xRefRow->getPropertyValue( sHeight ) >>= nHeight;
- CPPUNIT_ASSERT_EQUAL( sal_Int32(508), nHeight);
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(507), nHeight);
}
-
void SdImportTest::testTdf93830()
{
// Text shape offset was ignored
diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx
index 6b70d0806e13..b2d1604a0bdc 100644
--- a/svx/source/table/cell.cxx
+++ b/svx/source/table/cell.cxx
@@ -718,7 +718,7 @@ sal_Int32 Cell::getMinimumHeight()
pEditOutliner->SetMaxAutoPaperSize(aSize);
nMinimumHeight = pEditOutliner->GetTextHeight()+1;
}
- else if ( hasText() )
+ else
{
Outliner& rOutliner=rTableObj.ImpGetDrawOutliner();
rOutliner.SetPaperSize(aSize);
diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx
index 892b0d911660..1df137851e40 100644
--- a/svx/source/table/tablelayouter.cxx
+++ b/svx/source/table/tablelayouter.cxx
@@ -688,6 +688,7 @@ void TableLayouter::LayoutTableHeight( Rectangle& rArea, bool bFit )
sal_Int32 nMinHeight = 0;
bool bIsEmpty = true; // check if all cells in this row are merged
+ bool bRowHasText = false;
for( nCol = 0; nCol < nColCount; ++nCol )
{
@@ -704,7 +705,16 @@ void TableLayouter::LayoutTableHeight( Rectangle& rArea, bool bFit )
}
else
{
- nMinHeight = std::max( nMinHeight, xCell->getMinimumHeight() );
+ bool bCellHasText = xCell->hasText();
+ if ( (!bRowHasText && !bCellHasText) || ( bRowHasText && bCellHasText ) )
+ {
+ nMinHeight = std::max( nMinHeight, xCell->getMinimumHeight() );
+ }
+ else if ( !bRowHasText && bCellHasText )
+ {
+ bRowHasText = true;
+ nMinHeight = xCell->getMinimumHeight();
+ }
}
}
}