2222
2323#include " corruptscoredevtoolsmodel.h"
2424
25+ #include " engraving/dom/measurebase.h"
26+ #include " engraving/dom/score.h"
27+
2528using namespace mu ::engraving;
2629
2730CorruptScoreDevToolsModel::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