summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2022-03-19 10:56:27 +0900
committerTomaž Vajngerl <quikee@gmail.com>2022-04-04 04:20:21 +0200
commit413f144e84629fe8f3bae5d984b40228fdeec5c1 (patch)
treec0b9f977b6903573bdd7a4301947b7fc7296363e /sc
parentd925d1ca9e03863650dd3e450331598624f21724 (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.hxx2
-rw-r--r--sc/inc/table.hxx2
-rw-r--r--sc/qa/unit/SparklineImportExportTest.cxx12
-rw-r--r--sc/qa/unit/SparklineTest.cxx10
-rw-r--r--sc/source/core/data/document.cxx4
-rw-r--r--sc/source/core/data/table2.cxx11
-rw-r--r--sc/source/ui/view/cellsh.cxx4
-rw-r--r--sc/source/ui/view/output.cxx4
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))