diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2022-03-19 10:56:27 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2022-04-04 04:20:21 +0200 |
commit | 413f144e84629fe8f3bae5d984b40228fdeec5c1 (patch) | |
tree | c0b9f977b6903573bdd7a4301947b7fc7296363e /sc | |
parent | d925d1ca9e03863650dd3e450331598624f21724 (diff) |
sc: change GetSparkline to return a shared_ptr instead of raw ptr
Change-Id: If3d7b3ad4b96eb7d3b126ee8b130f8d5e684cd3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132472
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/document.hxx | 2 | ||||
-rw-r--r-- | sc/inc/table.hxx | 2 | ||||
-rw-r--r-- | sc/qa/unit/SparklineImportExportTest.cxx | 12 | ||||
-rw-r--r-- | sc/qa/unit/SparklineTest.cxx | 10 | ||||
-rw-r--r-- | sc/source/core/data/document.cxx | 4 | ||||
-rw-r--r-- | sc/source/core/data/table2.cxx | 11 | ||||
-rw-r--r-- | sc/source/ui/view/cellsh.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/output.cxx | 4 |
8 files changed, 23 insertions, 26 deletions
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 420c0eb06e35..979f6d6985f1 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -1249,7 +1249,7 @@ public: sc::MultiDataCellState HasMultipleDataCells( const ScRange& rRange ) const; /** Spaklines */ - SC_DLLPUBLIC sc::Sparkline* GetSparkline(ScAddress const & rPosition); + SC_DLLPUBLIC std::shared_ptr<sc::Sparkline> GetSparkline(ScAddress const & rPosition); SC_DLLPUBLIC sc::Sparkline* CreateSparkline(ScAddress const & rPosition, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup); SC_DLLPUBLIC sc::SparklineList* GetSparklineList(SCTAB nTab); SC_DLLPUBLIC bool DeleteSparkline(ScAddress const& rPosition); diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 00ae196f88ab..14eb33fa50f7 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -472,7 +472,7 @@ public: // Sparklines - sc::Sparkline* GetSparkline(SCCOL nCol, SCROW nRow); + std::shared_ptr<sc::Sparkline> GetSparkline(SCCOL nCol, SCROW nRow); sc::Sparkline* CreateSparkline(SCCOL nCol, SCROW nRow, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup); bool DeleteSparkline(SCCOL nCol, SCROW nRow); diff --git a/sc/qa/unit/SparklineImportExportTest.cxx b/sc/qa/unit/SparklineImportExportTest.cxx index fe15d783b58e..25af95c8770e 100644 --- a/sc/qa/unit/SparklineImportExportTest.cxx +++ b/sc/qa/unit/SparklineImportExportTest.cxx @@ -57,7 +57,7 @@ void checkSparklines(ScDocument& rDocument) { // Sparkline at Sheet1:A2 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(0, 1, 0)); // A2 + auto pSparkline = rDocument.GetSparkline(ScAddress(0, 1, 0)); // A2 CPPUNIT_ASSERT(pSparkline); auto pSparklineGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Line, pSparklineGroup->m_eType); @@ -90,7 +90,7 @@ void checkSparklines(ScDocument& rDocument) } // Sparkline at Sheet1:A3 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(0, 2, 0)); // A3 + auto pSparkline = rDocument.GetSparkline(ScAddress(0, 2, 0)); // A3 CPPUNIT_ASSERT(pSparkline); auto pSparklineGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Column, pSparklineGroup->m_eType); @@ -123,28 +123,28 @@ void checkSparklines(ScDocument& rDocument) } // Sparkline at Sheet2:B1 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(1, 0, 1)); //B1 + auto pSparkline = rDocument.GetSparkline(ScAddress(1, 0, 1)); //B1 CPPUNIT_ASSERT(pSparkline); auto pSparklineGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Column, pSparklineGroup->m_eType); } // Sparkline at Sheet2:B2 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(1, 1, 1)); //B2 + auto pSparkline = rDocument.GetSparkline(ScAddress(1, 1, 1)); //B2 CPPUNIT_ASSERT(pSparkline); auto pSparklineGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Line, pSparklineGroup->m_eType); } // Sparkline at Sheet2:B2 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(1, 1, 1)); //B2 + auto pSparkline = rDocument.GetSparkline(ScAddress(1, 1, 1)); //B2 CPPUNIT_ASSERT(pSparkline); auto pSparklineGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Line, pSparklineGroup->m_eType); } // Sparkline doesn't exists at A4 { - sc::Sparkline* pSparkline = rDocument.GetSparkline(ScAddress(0, 3, 0)); //A4 + auto pSparkline = rDocument.GetSparkline(ScAddress(0, 3, 0)); //A4 CPPUNIT_ASSERT(!pSparkline); } } diff --git a/sc/qa/unit/SparklineTest.cxx b/sc/qa/unit/SparklineTest.cxx index 74f40579d99f..2a2dfde71b5b 100644 --- a/sc/qa/unit/SparklineTest.cxx +++ b/sc/qa/unit/SparklineTest.cxx @@ -82,13 +82,13 @@ void SparklineTest::testAddSparkline() ScDocument& rDocument = xDocSh->GetDocument(); - sc::Sparkline* pSparkline = createTestSparkline(rDocument); + auto pSparkline = createTestSparkline(rDocument); CPPUNIT_ASSERT(pSparkline); - sc::Sparkline* pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); + auto pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); CPPUNIT_ASSERT(pGetSparkline); - CPPUNIT_ASSERT_EQUAL(pGetSparkline, pSparkline); + CPPUNIT_ASSERT_EQUAL(pGetSparkline.get(), pSparkline); sc::SparklineList* pList = rDocument.GetSparklineList(0); CPPUNIT_ASSERT(pList); @@ -107,12 +107,12 @@ void SparklineTest::testDeleteSprkline() ScDocument& rDocument = xDocSh->GetDocument(); - sc::Sparkline* pSparkline = createTestSparkline(rDocument); + auto pSparkline = createTestSparkline(rDocument); CPPUNIT_ASSERT(pSparkline); clearRange(&rDocument, ScRange(0, 6, 0, 0, 6, 0)); - sc::Sparkline* pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); + auto pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); CPPUNIT_ASSERT(!pGetSparkline); xDocSh->DoClose(); diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 512d82a02081..11e010afde8f 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -6566,7 +6566,7 @@ bool ScDocument::IsInVBAMode() const } // Sparklines -sc::Sparkline* ScDocument::GetSparkline(ScAddress const& rPosition) +std::shared_ptr<sc::Sparkline> ScDocument::GetSparkline(ScAddress const& rPosition) { SCTAB nTab = rPosition.Tab(); @@ -6574,7 +6574,7 @@ sc::Sparkline* ScDocument::GetSparkline(ScAddress const& rPosition) { return maTabs[nTab]->GetSparkline(rPosition.Col(), rPosition.Row()); } - return nullptr; + return std::shared_ptr<sc::Sparkline>(); } sc::Sparkline* ScDocument::CreateSparkline(ScAddress const& rPosition, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup) diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index 99e2af025baf..e6170d2339ab 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -1811,19 +1811,16 @@ ScFormulaCell* ScTable::GetFormulaCell( SCCOL nCol, SCROW nRow ) // Sparklines -sc::Sparkline* ScTable::GetSparkline(SCCOL nCol, SCROW nRow) +std::shared_ptr<sc::Sparkline> ScTable::GetSparkline(SCCOL nCol, SCROW nRow) { if (!ValidCol(nCol) || nCol >= GetAllocatedColumnsCount()) - return nullptr; + return std::shared_ptr<sc::Sparkline>(); sc::SparklineCell* pSparklineCell = aCol[nCol].GetSparklineCell(nRow); if (!pSparklineCell) - return nullptr; + return std::shared_ptr<sc::Sparkline>(); - std::shared_ptr<sc::Sparkline> pSparkline(pSparklineCell->getSparkline()); - assert(pSparkline); - - return pSparkline.get(); + return pSparklineCell->getSparkline(); } sc::Sparkline* ScTable::CreateSparkline(SCCOL nCol, SCROW nRow, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup) diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx index 72e4b3c74e1d..f1df448a1288 100644 --- a/sc/source/ui/view/cellsh.cxx +++ b/sc/source/ui/view/cellsh.cxx @@ -110,8 +110,8 @@ bool canShowDeleteSparkline(ScDocument& rDocument, ScRange const& rRange) { for (SCROW nY = rRange.aStart.Row(); nY <= rRange.aEnd.Row(); nY++) { - auto* pSparkline = rDocument.GetSparkline(ScAddress(nX, nY, nTab)); - if (pSparkline == nullptr) + auto pSparkline = rDocument.GetSparkline(ScAddress(nX, nY, nTab)); + if (!pSparkline) { return false; } diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 2d7e097a4a08..e0ee2e538765 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -2482,7 +2482,7 @@ void drawColumn(vcl::RenderContext& rRenderContext, tools::Rectangle const & rRe } } -void drawSparkline(sc::Sparkline* pSparkline, vcl::RenderContext& rRenderContext, ScDocument* pDocument, +void drawSparkline(std::shared_ptr<sc::Sparkline> const& pSparkline, vcl::RenderContext& rRenderContext, ScDocument* pDocument, tools::Rectangle const & rRectangle) { auto const & rRangeList = pSparkline->getInputRange(); @@ -2582,7 +2582,7 @@ void ScOutputData::DrawSparklines(vcl::RenderContext& rRenderContext) mpDoc->ExtendOverlapped( nMergeX, nMergeY, nX, nY, nTab ); } - sc::Sparkline* pSparkline = nullptr; + std::shared_ptr<sc::Sparkline> pSparkline; ScAddress aCurrentAddress(nX, pRowInfo[nArrY].nRowNo, nTab); if (!mpDoc->ColHidden(nX, nTab) && (pSparkline = mpDoc->GetSparkline(aCurrentAddress)) |