tdf#161794 fix:Row grouping does not work on Row number 1
Because GetCurrentRow returns 0, the Group started from Row number 2.
While there is a solution to fix GetCurrentRow, it seemed likely to affect
other code, so I decided to get the row position the same way as bHeader.
This change also resolves tdf#102154.
Change-Id: Iadf140082e8dda98aa959baaa27226a19c30da9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204815
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
(cherry picked from commit c06f65fed5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204840
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
This commit is contained in:
committed by
Adolfo Jayme Barrientos
parent
2047197804
commit
df1ae899a9
@@ -264,7 +264,8 @@ ScXMLTableRowsContext::ScXMLTableRowsContext( ScXMLImport& rImport,
|
||||
}
|
||||
else if (bGroup)
|
||||
{
|
||||
nGroupStartRow = rImport.GetTables().GetCurrentRow();
|
||||
ScAddress aAddr = rImport.GetTables().GetCurrentCellPos();
|
||||
nGroupStartRow = aAddr.Row();
|
||||
++nGroupStartRow;
|
||||
if ( rAttrList.is() )
|
||||
{
|
||||
|
||||
@@ -35,6 +35,8 @@ constexpr OUStringLiteral colLevel4 = u"OutlineSheet.G1:S1";
|
||||
|
||||
constexpr OUString rowLevel1 = u"OutlineSheet.A1:A30"_ustr;
|
||||
constexpr OUString rowLevel2 = u"OutlineSheet.A3:A27"_ustr;
|
||||
constexpr OUString rowLevel3 = u"OutlineSheet.A5:A24"_ustr;
|
||||
constexpr OUString rowLevel4 = u"OutlineSheet.A7:A21"_ustr;
|
||||
|
||||
static OUString getVisibleAddress(
|
||||
uno::Reference<sheet::XSpreadsheet> const& xSheet,
|
||||
@@ -142,44 +144,40 @@ void XSheetOutline::testShowLevel()
|
||||
// verify that level 2 and level 1 are shown --> column 0..3 & column 22..26
|
||||
// level 3 & 4 are hidden --> column 4..19
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", u"OutlineSheet.A1:D1"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.A1:D1"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", u"OutlineSheet.V1:Z1"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.V1:Z1"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", u"OutlineSheet.A31:D31"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.A31:D31"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", u"OutlineSheet.V31:Z31"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.V31:Z31"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", OUString(), getVisibleAddress(aSheet, colLevel3));
|
||||
|
||||
/* FIXME !!
|
||||
|
||||
// test Rows
|
||||
|
||||
aLevel1 = getAddressFromRangeString(rowLevel1);
|
||||
aLevel2 = getAddressFromRangeString(rowLevel2);
|
||||
aLevel3 = getAddressFromRangeString(rowLevel3);
|
||||
aLevel4 = getAddressFromRangeString(rowLevel4);
|
||||
aLevel1 = getAddressFromRangeString(aSheet, rowLevel1);
|
||||
aLevel2 = getAddressFromRangeString(aSheet, rowLevel2);
|
||||
aLevel3 = getAddressFromRangeString(aSheet, rowLevel3);
|
||||
aLevel4 = getAddressFromRangeString(aSheet, rowLevel4);
|
||||
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(colLevel1));
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(rowLevel1));
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(rowLevel2));
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(aSheet, colLevel1));
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(aSheet, rowLevel1));
|
||||
aSheetOutline->showDetail(getAddressFromRangeString(aSheet, rowLevel2));
|
||||
|
||||
std::cout << " verify showLevel row before" << OUStringToOString(getVisibleAddress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() << std::endl;
|
||||
std::cout << " verify showLevel row before" << getVisibleAddress(aSheet, u"OutlineSheet.A1:Z30"_ustr) << std::endl;
|
||||
|
||||
aSheetOutline->hideDetail(aLevel1);
|
||||
aSheetOutline->hideDetail(aLevel2);
|
||||
aSheetOutline->hideDetail(aLevel3);
|
||||
aSheetOutline->hideDetail(aLevel4);
|
||||
|
||||
std::cout << " verify showLevel row just before" << OUStringToOString(getVisibleAddress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() << std::endl;
|
||||
std::cout << " verify showLevel row just before" << getVisibleAddress(aSheet, u"OutlineSheet.A1:Z30"_ustr) << std::endl;
|
||||
|
||||
aSheetOutline->showLevel(2, table::TableOrientation_ROWS);
|
||||
|
||||
std::cout << " verify showLevel row after" << OUStringToOString(getVisibleAddress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() << std::endl;
|
||||
std::cout << " verify showLevel row after" << getVisibleAddress(aSheet, u"OutlineSheet.A1:Z30"_ustr) << std::endl;
|
||||
|
||||
// verify rows visible 0..3 & 24..29
|
||||
// verify rows hidden 4..23
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString("OutlineSheet.A1:A4"), getVisibleAddress("OutlineSheet.A1:A4"));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString("OutlineSheet.A25:A30"), getVisibleAddress("OutlineSheet.A25:A30"));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString(), getVisibleAddress(rowLevel3));
|
||||
|
||||
*/
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", u"OutlineSheet.AA1:AA4"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.AA1:AA4"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", u"OutlineSheet.AA25:AA30"_ustr, getVisibleAddress(aSheet, u"OutlineSheet.AA25:AA30"_ustr));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString(), getVisibleAddress(aSheet, rowLevel3));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user