diff options
-rw-r--r-- | desktop/qa/desktop_lib/test_desktop_lib.cxx | 32 | ||||
-rw-r--r-- | sc/source/ui/view/tabview.cxx | 4 |
2 files changed, 34 insertions, 2 deletions
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index 4debd8cbf4a8..cbd18f7a11ce 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -66,6 +66,7 @@ public: void testSaveAs(); void testSaveAsCalc(); void testPasteWriter(); + void testRowColumnHeaders(); CPPUNIT_TEST_SUITE(DesktopLOKTest); CPPUNIT_TEST(testGetStyles); @@ -78,6 +79,7 @@ public: CPPUNIT_TEST(testSaveAs); CPPUNIT_TEST(testSaveAsCalc); CPPUNIT_TEST(testPasteWriter); + CPPUNIT_TEST(testRowColumnHeaders); CPPUNIT_TEST_SUITE_END(); uno::Reference<lang::XComponent> mxComponent; @@ -346,6 +348,36 @@ void DesktopLOKTest::testPasteWriter() comphelper::LibreOfficeKit::setActive(false); } +void DesktopLOKTest::testRowColumnHeaders() +{ + LibLODocument_Impl* pDocument = loadDoc("search.ods"); + boost::property_tree::ptree aTree; + char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:ViewRowColumnHeaders"); + std::stringstream aStream(pJSON); + free(pJSON); + CPPUNIT_ASSERT(!aStream.str().empty()); + + boost::property_tree::read_json(aStream, aTree); + for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("rows")) + { + sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32(); + CPPUNIT_ASSERT(nSize > 0); + OString aText(rValue.second.get<std::string>("text").c_str()); + // This failed, as the first item did not contain the text of the first row. + CPPUNIT_ASSERT_EQUAL(OString("1"), aText); + break; + } + + for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("columns")) + { + sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32(); + CPPUNIT_ASSERT(nSize > 0); + OString aText(rValue.second.get<std::string>("text").c_str()); + CPPUNIT_ASSERT_EQUAL(OString("A"), aText); + break; + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(DesktopLOKTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx index 615f0d90d76a..d197750f68c2 100644 --- a/sc/source/ui/view/tabview.cxx +++ b/sc/source/ui/view/tabview.cxx @@ -2308,7 +2308,7 @@ OUString ScTabView::getRowColumnHeaders(const Rectangle& rRectangle) } if (!bSkip) { - if (aRows.empty()) + if (aRows.empty() && nTotal > 0) { // The sizes are relative sizes, so include the total skipped size before the real items. boost::property_tree::ptree aRow; @@ -2345,7 +2345,7 @@ OUString ScTabView::getRowColumnHeaders(const Rectangle& rRectangle) } if (!bSkip) { - if (aCols.empty()) + if (aCols.empty() && nTotal > 0) { boost::property_tree::ptree aCol; aCol.put("size", OString::number(long((nTotalPixels + 0.5) / aViewData.GetPPTX())).getStr()); |