From cf84739c843b9bad2a59c2157fd9bafa37f1fe21 Mon Sep 17 00:00:00 2001 From: ws Date: Sat, 28 Sep 2013 11:24:00 +0200 Subject: [PATCH] new action+shortcut M to toggle multi measure rest creation --- libmscore/cmd.cpp | 4 ++++ libmscore/undo.cpp | 12 ++++++++++++ libmscore/undo.h | 16 ++++++++++++++++ mscore/actions.cpp | 2 +- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/libmscore/cmd.cpp b/libmscore/cmd.cpp index 0fa8cc9bb2..4af2e291bd 100644 --- a/libmscore/cmd.cpp +++ b/libmscore/cmd.cpp @@ -2388,6 +2388,10 @@ void Score::cmd(const QAction* a) transposeSemitone(1); else if (cmd == "transpose-down") transposeSemitone(-1); + else if (cmd == "toggle-mmrest") { + bool val = !styleB(ST_createMultiMeasureRests); + undo(new ChangeStyleVal(this, ST_createMultiMeasureRests, val)); + } else qDebug("1unknown cmd <%s>", qPrintable(cmd)); } diff --git a/libmscore/undo.cpp b/libmscore/undo.cpp index b718ac3f71..2b3582fe7c 100644 --- a/libmscore/undo.cpp +++ b/libmscore/undo.cpp @@ -2502,6 +2502,18 @@ void ChangeStyle::flip() style = tmp; } +//--------------------------------------------------------- +// ChangeStyleVal::flip +//--------------------------------------------------------- + +void ChangeStyleVal::flip() + { + QVariant v = score->style(idx); + score->style()->set(idx, value); + score->setLayoutAll(true); + value = v; + } + //--------------------------------------------------------- // ChangeChordStaffMove //--------------------------------------------------------- diff --git a/libmscore/undo.h b/libmscore/undo.h index aadc5d2ed0..b8266cb893 100644 --- a/libmscore/undo.h +++ b/libmscore/undo.h @@ -835,6 +835,22 @@ class ChangeStyle : public UndoCommand { UNDO_NAME("ChangeStyle"); }; +//--------------------------------------------------------- +// ChangeStyleVal +//--------------------------------------------------------- + +class ChangeStyleVal : public UndoCommand { + Score* score; + StyleIdx idx; + QVariant value; + + void flip(); + + public: + ChangeStyleVal(Score* s, StyleIdx i, const QVariant& v) : score(s), idx(i), value(v) {} + UNDO_NAME("ChangeStyleVal"); + }; + //--------------------------------------------------------- // ChangeChordStaffMove //--------------------------------------------------------- diff --git a/mscore/actions.cpp b/mscore/actions.cpp index 18e2971ae7..67dd34c7d8 100644 --- a/mscore/actions.cpp +++ b/mscore/actions.cpp @@ -2461,7 +2461,7 @@ Shortcut Shortcut::sc[] = { STATE_NORMAL, A_CMD, "toggle-mmrest", - QT_TRANSLATE_NOOP("action","toggle create multi measure rest"), + QT_TRANSLATE_NOOP("action","toggle create multi measure rest") ), // xml==0 marks end of list Shortcut(0, 0, 0, 0)