sc/Library_sc.mk | 1 sc/inc/SparklineList.hxx | 61 +---------------------- sc/source/ui/sparklines/SparklineList.cxx | 78 ++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 57 deletions(-)
New commits: commit 3bc9f6176ad540d613a1238466e20f9ad3903881 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Sun Apr 3 13:21:59 2022 +0900 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Wed Apr 6 02:59:19 2022 +0200 sc: put SparklineList implementation into SparklineList.cxx Change-Id: I309087a27ea0bc297c9bea9b2b8945579e055f4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132552 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk index 743125bfef10..519daa881530 100644 --- a/sc/Library_sc.mk +++ b/sc/Library_sc.mk @@ -517,6 +517,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\ sc/source/ui/sparklines/SparklineAttributes \ sc/source/ui/sparklines/SparklineData \ sc/source/ui/sparklines/SparklineGroup \ + sc/source/ui/sparklines/SparklineList \ sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog \ sc/source/ui/StatisticsDialogs/CorrelationDialog \ sc/source/ui/StatisticsDialogs/CovarianceDialog \ diff --git a/sc/inc/SparklineList.hxx b/sc/inc/SparklineList.hxx index 1abfbd6df019..bab467a09469 100644 --- a/sc/inc/SparklineList.hxx +++ b/sc/inc/SparklineList.hxx @@ -14,7 +14,6 @@ #include <memory> #include <map> -#include "rangelst.hxx" #include "Sparkline.hxx" #include "SparklineGroup.hxx" @@ -34,66 +33,14 @@ private: m_aSparklineGroupMap; public: - SparklineList() {} + SparklineList(); - void addSparkline(std::shared_ptr<Sparkline> const& pSparkline) - { - auto pWeakGroup = std::weak_ptr<SparklineGroup>(pSparkline->getSparklineGroup()); + void addSparkline(std::shared_ptr<Sparkline> const& pSparkline); - auto[iterator, bInserted] - = m_aSparklineGroupMap.try_emplace(pWeakGroup, std::vector<std::weak_ptr<Sparkline>>()); - iterator->second.push_back(std::weak_ptr<Sparkline>(pSparkline)); - if (bInserted) - m_aSparklineGroups.push_back(pWeakGroup); - } - - std::vector<std::shared_ptr<SparklineGroup>> getSparklineGroups() - { - std::vector<std::shared_ptr<SparklineGroup>> toReturn; - - for (auto iterator = m_aSparklineGroups.begin(); iterator != m_aSparklineGroups.end();) - { - if (auto pSparklineGroup = iterator->lock()) - { - toReturn.push_back(pSparklineGroup); - iterator++; - } - else - { - iterator = m_aSparklineGroups.erase(iterator); - } - } - return toReturn; - } + std::vector<std::shared_ptr<SparklineGroup>> getSparklineGroups(); std::vector<std::shared_ptr<Sparkline>> - getSparklinesFor(std::shared_ptr<SparklineGroup> const& pSparklineGroup) - { - std::vector<std::shared_ptr<Sparkline>> toReturn; - - std::weak_ptr<SparklineGroup> pWeakGroup(pSparklineGroup); - auto iteratorGroup = m_aSparklineGroupMap.find(pWeakGroup); - - if (iteratorGroup == m_aSparklineGroupMap.end()) - return toReturn; - - auto& rWeakSparklines = iteratorGroup->second; - - for (auto iterator = rWeakSparklines.begin(); iterator != rWeakSparklines.end();) - { - if (auto aSparkline = iterator->lock()) - { - toReturn.push_back(aSparkline); - iterator++; - } - else - { - iterator = rWeakSparklines.erase(iterator); - } - } - - return toReturn; - } + getSparklinesFor(std::shared_ptr<SparklineGroup> const& pSparklineGroup); }; } // end sc diff --git a/sc/source/ui/sparklines/SparklineList.cxx b/sc/source/ui/sparklines/SparklineList.cxx new file mode 100644 index 000000000000..744a58bce66e --- /dev/null +++ b/sc/source/ui/sparklines/SparklineList.cxx @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <SparklineList.hxx> + +namespace sc +{ +SparklineList::SparklineList() = default; + +void SparklineList::addSparkline(std::shared_ptr<Sparkline> const& pSparkline) +{ + auto pWeakGroup = std::weak_ptr<SparklineGroup>(pSparkline->getSparklineGroup()); + + auto[iterator, bInserted] + = m_aSparklineGroupMap.try_emplace(pWeakGroup, std::vector<std::weak_ptr<Sparkline>>()); + iterator->second.push_back(std::weak_ptr<Sparkline>(pSparkline)); + if (bInserted) + m_aSparklineGroups.push_back(pWeakGroup); +} + +std::vector<std::shared_ptr<SparklineGroup>> SparklineList::getSparklineGroups() +{ + std::vector<std::shared_ptr<SparklineGroup>> toReturn; + + for (auto iterator = m_aSparklineGroups.begin(); iterator != m_aSparklineGroups.end();) + { + if (auto pSparklineGroup = iterator->lock()) + { + toReturn.push_back(pSparklineGroup); + iterator++; + } + else + { + iterator = m_aSparklineGroups.erase(iterator); + } + } + return toReturn; +} + +std::vector<std::shared_ptr<Sparkline>> +SparklineList::getSparklinesFor(std::shared_ptr<SparklineGroup> const& pSparklineGroup) +{ + std::vector<std::shared_ptr<Sparkline>> toReturn; + + std::weak_ptr<SparklineGroup> pWeakGroup(pSparklineGroup); + auto iteratorGroup = m_aSparklineGroupMap.find(pWeakGroup); + + if (iteratorGroup == m_aSparklineGroupMap.end()) + return toReturn; + + auto& rWeakSparklines = iteratorGroup->second; + + for (auto iterator = rWeakSparklines.begin(); iterator != rWeakSparklines.end();) + { + if (auto aSparkline = iterator->lock()) + { + toReturn.push_back(aSparkline); + iterator++; + } + else + { + iterator = rWeakSparklines.erase(iterator); + } + } + + return toReturn; +} + +} // end sc + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */