Coverage Report

Created: 2025-07-07 10:01

/src/libreoffice/sc/source/ui/undo/UndoDeleteSparklineGroup.cxx
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
 * This file is part of the LibreOffice project.
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 *
9
 */
10
11
#include <undo/UndoDeleteSparklineGroup.hxx>
12
#include <globstr.hrc>
13
#include <scresid.hxx>
14
#include <document.hxx>
15
16
#include <Sparkline.hxx>
17
#include <SparklineList.hxx>
18
#include <SparklineGroup.hxx>
19
#include <utility>
20
21
namespace sc
22
{
23
UndoDeleteSparklineGroup::UndoDeleteSparklineGroup(
24
    ScDocShell& rDocSh, std::shared_ptr<sc::SparklineGroup> pSparklineGroup, SCTAB nTab)
25
0
    : ScSimpleUndo(rDocSh)
26
0
    , mpSparklineGroup(std::move(pSparklineGroup))
27
0
    , mnTab(nTab)
28
0
{
29
0
}
30
31
0
UndoDeleteSparklineGroup::~UndoDeleteSparklineGroup() {}
32
33
void UndoDeleteSparklineGroup::Undo()
34
0
{
35
0
    BeginUndo();
36
37
0
    ScDocument& rDocument = rDocShell.GetDocument();
38
39
0
    for (auto const& pSparkline : maSparklines)
40
0
    {
41
0
        ScAddress aAddress(pSparkline->getColumn(), pSparkline->getRow(), mnTab);
42
0
        auto* pNewSparkline = rDocument.CreateSparkline(aAddress, mpSparklineGroup);
43
0
        pNewSparkline->setInputRange(pSparkline->getInputRange());
44
0
    }
45
46
0
    rDocShell.PostPaintGridAll();
47
48
0
    EndUndo();
49
0
}
50
51
void UndoDeleteSparklineGroup::Redo()
52
0
{
53
0
    BeginRedo();
54
55
0
    ScDocument& rDocument = rDocShell.GetDocument();
56
0
    auto* pList = rDocument.GetSparklineList(mnTab);
57
0
    if (pList)
58
0
    {
59
0
        maSparklines = pList->getSparklinesFor(mpSparklineGroup);
60
61
0
        for (auto const& pSparkline : maSparklines)
62
0
        {
63
0
            ScAddress aAddress(pSparkline->getColumn(), pSparkline->getRow(), mnTab);
64
0
            rDocument.DeleteSparkline(aAddress);
65
0
        }
66
0
    }
67
0
    rDocShell.PostPaintGridAll();
68
69
0
    EndRedo();
70
0
}
71
72
0
void UndoDeleteSparklineGroup::Repeat(SfxRepeatTarget& /*rTarget*/) {}
73
74
0
bool UndoDeleteSparklineGroup::CanRepeat(SfxRepeatTarget& /*rTarget*/) const { return false; }
75
76
OUString UndoDeleteSparklineGroup::GetComment() const
77
0
{
78
0
    return ScResId(STR_UNDO_DELETE_SPARKLINE_GROUP);
79
0
}
80
81
} // end sc namespace
82
83
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */