Line data Source code
1 : /*
2 : * SPDX-License-Identifier: GPL-3.0-only
3 : * MuseScore-Studio-CLA-applies
4 : *
5 : * MuseScore Studio
6 : * Music Composition & Notation
7 : *
8 : * Copyright (C) 2025 MuseScore Limited and others
9 : *
10 : * This program is free software: you can redistribute it and/or modify
11 : * it under the terms of the GNU General Public License version 3 as
12 : * published by the Free Software Foundation.
13 : *
14 : * This program is distributed in the hope that it will be useful,
15 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : * GNU General Public License for more details.
18 : *
19 : * You should have received a copy of the GNU General Public License
20 : * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 : */
22 :
23 : #pragma once
24 :
25 : #include "transaction/undoablecommand.h"
26 :
27 : #include "../dom/score.h"
28 :
29 : namespace mu::engraving {
30 : class ChangeMetaTags : public UndoableCommand
31 : {
32 0 : OBJECT_ALLOCATOR(engraving, ChangeMetaTags)
33 :
34 : Score* score = nullptr;
35 : std::map<String, String> metaTags;
36 :
37 : void flip() override;
38 :
39 : public:
40 0 : ChangeMetaTags(Score* s, const std::map<String, String>& m)
41 0 : : score(s), metaTags(m) {}
42 :
43 0 : UNDO_TYPE(CommandType::ChangeMetaInfo)
44 0 : UNDO_NAME("ChangeMetaTags")
45 0 : UNDO_CHANGED_OBJECTS({ score })
46 : };
47 :
48 : class ChangeMetaText : public UndoableCommand
49 : {
50 0 : OBJECT_ALLOCATOR(engraving, ChangeMetaText)
51 :
52 : Score* score = nullptr;
53 : String id;
54 : String text;
55 :
56 : void flip() override;
57 :
58 : public:
59 : ChangeMetaText(Score* s, const String& i, const String& t)
60 : : score(s), id(i), text(t) {}
61 :
62 0 : UNDO_TYPE(CommandType::ChangeMetaInfo)
63 0 : UNDO_NAME("ChangeMetaText")
64 0 : UNDO_CHANGED_OBJECTS({ score })
65 : };
66 :
67 : class ChangeScoreOrder : public UndoableCommand
68 : {
69 4 : OBJECT_ALLOCATOR(engraving, ChangeScoreOrder)
70 :
71 : Score* score = nullptr;
72 : ScoreOrder order;
73 : void flip() override;
74 :
75 : public:
76 2 : ChangeScoreOrder(Score* sc, ScoreOrder so)
77 2 : : score(sc), order(so) {}
78 :
79 2 : UNDO_TYPE(CommandType::ChangeScoreOrder)
80 0 : UNDO_NAME("ChangeScoreOrder")
81 6 : UNDO_CHANGED_OBJECTS({ score })
82 : };
83 :
84 : class ChangePageNumberOffset : public UndoableCommand
85 : {
86 0 : OBJECT_ALLOCATOR(engraving, ChangePageNumberOffset)
87 :
88 : Score* score = nullptr;
89 : int pageOffset = 0;
90 :
91 : void flip() override;
92 :
93 : public:
94 0 : ChangePageNumberOffset(Score* s, int po)
95 0 : : score(s), pageOffset(po) {}
96 :
97 0 : UNDO_NAME("ChangePageNumberOffset")
98 0 : UNDO_CHANGED_OBJECTS({ score })
99 : };
100 : }
|