Skip to content

Commit 978e09e

Browse files
committed
Clean up CorruptScoreDevToolsModel
1 parent 4350ef1 commit 978e09e

1 file changed

Lines changed: 13 additions & 16 deletions

File tree

src/engraving/qml/MuseScore/Engraving/devtools/corruptscoredevtoolsmodel.cpp

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222

2323
#include "corruptscoredevtoolsmodel.h"
2424

25+
#include "engraving/dom/measurebase.h"
26+
#include "engraving/dom/score.h"
27+
2528
using namespace mu::engraving;
2629

2730
CorruptScoreDevToolsModel::CorruptScoreDevToolsModel(QObject* parent)
@@ -38,31 +41,25 @@ void CorruptScoreDevToolsModel::corruptOpenScore()
3841

3942
LOGW() << "Score corruption on demand!";
4043

41-
mu::notation::INotationPtr notation = project->masterNotation()->notation();
44+
notation::INotationPtr notation = project->masterNotation()->notation();
45+
Score* score = notation->elements()->msScore();
4246

4347
//: "Corrupt" is used as a verb here, i.e. "Make the current score corrupted" (for testing purposes).
44-
notation->undoStack()->prepareChanges(TranslatableString("undoableAction", "Corrupt score"));
45-
46-
for (engraving::System* system : notation->elements()->msScore()->systems()) {
47-
for (engraving::MeasureBase* measureBase : system->measures()) {
48-
if (!measureBase->isMeasure()) {
49-
continue;
50-
}
48+
notation->undoStack()->transaction(TranslatableString("undoableAction", "Corrupt score"), [&](auto&) {
49+
for (Measure* measure = score->firstMeasure(); measure; measure = measure->nextMeasure()) {
50+
Segment* firstSegment = measure->first(SegmentType::ChordRest);
5151

52-
mu::engraving::Measure* measure = mu::engraving::toMeasure(measureBase);
53-
mu::engraving::Segment* firstSegment = measure->first(mu::engraving::SegmentType::ChordRest);
54-
55-
for (mu::engraving::Segment* s = firstSegment; s; s = s->next(mu::engraving::SegmentType::ChordRest)) {
56-
mu::engraving::EngravingItem* element = s->element(0);
52+
for (Segment* s = firstSegment; s; s = s->next(SegmentType::ChordRest)) {
53+
EngravingItem* element = s->element(0);
5754
if (!element) {
5855
continue;
5956
}
6057

61-
mu::engraving::ChordRest* cr = toChordRest(element);
62-
cr->undoChangeProperty(mu::engraving::Pid::DURATION, mu::engraving::Fraction::fromString(u"0/4"));
58+
ChordRest* cr = toChordRest(element);
59+
cr->undoChangeProperty(Pid::DURATION, Fraction(0, 4));
6360
}
6461
}
65-
}
62+
});
6663

6764
notation->undoStack()->commitChanges();
6865
}

0 commit comments

Comments
 (0)