diff --git a/src/context/internal/uicontextresolver.cpp b/src/context/internal/uicontextresolver.cpp index 2cf7289c6b784..15291a373b969 100644 --- a/src/context/internal/uicontextresolver.cpp +++ b/src/context/internal/uicontextresolver.cpp @@ -35,6 +35,10 @@ using namespace muse::ui; static const muse::Uri HOME_PAGE_URI("musescore://home"); static const muse::Uri NOTATION_PAGE_URI("musescore://notation"); +static const muse::Uri PUBLISH_PAGE_URI("musescore://publish"); +static const muse::Uri DEVTOOLS_PAGE_URI("musescore://devtools"); + +static const muse::Uri EXTENSIONS_DIALOG_URI("muse://extensions/viewer"); static const QString NOTATION_NAVIGATION_PANEL("ScoreView"); @@ -119,6 +123,21 @@ UiContext UiContextResolver::currentUiContext() const return context::UiCtxProjectOpened; } + if (currentUri == PUBLISH_PAGE_URI) { + return context::UiCtxPublishOpened; + } + + if (currentUri == DEVTOOLS_PAGE_URI) { + return context::UiCtxDevToolsOpened; + } + + if (interactive()->isCurrentUriDialog().val) { + bool isExtensionDialog = currentUri == EXTENSIONS_DIALOG_URI; + if (!isExtensionDialog) { + return context::UiCtxDialogOpened; + } + } + return context::UiCtxUnknown; } @@ -128,7 +147,10 @@ bool UiContextResolver::match(const muse::ui::UiContext& currentCtx, const muse: return true; } - if (actCtx == context::UiCtxProjectOpened && globalContext()->currentNotation()) { + //! NOTE: Context could be unknown if a plugin is currently open, in which case we should return true under + //! the following circumstances (see issue #24673)... + if ((currentCtx == context::UiCtxProjectFocused || currentCtx == context::UiCtxUnknown) + && actCtx == context::UiCtxProjectOpened && globalContext()->currentNotation()) { return true; } diff --git a/src/context/uicontext.h b/src/context/uicontext.h index 6a0ee83dfbe4c..2663d1405e834 100644 --- a/src/context/uicontext.h +++ b/src/context/uicontext.h @@ -34,6 +34,12 @@ static constexpr muse::ui::UiContext UiCtxAny = muse::ui::UiCtxAny; static constexpr muse::ui::UiContext UiCtxHomeOpened = muse::ui::UiCtxHomeOpened; static constexpr muse::ui::UiContext UiCtxProjectOpened = muse::ui::UiCtxProjectOpened; static constexpr muse::ui::UiContext UiCtxProjectFocused = muse::ui::UiCtxProjectFocused; + +static constexpr muse::ui::UiContext UiCtxDialogOpened = muse::ui::UiCtxDialogOpened; + +// application-specific contexts +static constexpr muse::ui::UiContext UiCtxPublishOpened = "UiCtxPublishOpened"; +static constexpr muse::ui::UiContext UiCtxDevToolsOpened = "UiCtxDevToolsOpened"; } #endif // MU_CONTEXT_UICONTEXT_H diff --git a/src/framework/autobot/internal/autobotinteractive.cpp b/src/framework/autobot/internal/autobotinteractive.cpp index b71e0fb04f76e..1d26ceca5ccbb 100644 --- a/src/framework/autobot/internal/autobotinteractive.cpp +++ b/src/framework/autobot/internal/autobotinteractive.cpp @@ -215,6 +215,11 @@ ValCh AutobotInteractive::currentUri() const return m_real->currentUri(); } +RetVal AutobotInteractive::isCurrentUriDialog() const +{ + return m_real->isCurrentUriDialog(); +} + std::vector AutobotInteractive::stack() const { return m_real->stack(); diff --git a/src/framework/autobot/internal/autobotinteractive.h b/src/framework/autobot/internal/autobotinteractive.h index e03aa1931d79d..93333afdb9d2f 100644 --- a/src/framework/autobot/internal/autobotinteractive.h +++ b/src/framework/autobot/internal/autobotinteractive.h @@ -103,6 +103,7 @@ class AutobotInteractive : public IInteractive void closeAllDialogs() override; ValCh currentUri() const override; + RetVal isCurrentUriDialog() const override; std::vector stack() const override; Ret openUrl(const std::string& url) const override; diff --git a/src/framework/global/iinteractive.h b/src/framework/global/iinteractive.h index 59168f1e1e9d8..a6afb7025b924 100644 --- a/src/framework/global/iinteractive.h +++ b/src/framework/global/iinteractive.h @@ -220,6 +220,7 @@ class IInteractive : MODULE_EXPORT_INTERFACE virtual void closeAllDialogs() = 0; virtual ValCh currentUri() const = 0; + virtual RetVal isCurrentUriDialog() const = 0; virtual std::vector stack() const = 0; virtual Ret openUrl(const std::string& url) const = 0; diff --git a/src/framework/global/internal/interactive.cpp b/src/framework/global/internal/interactive.cpp index 185960fbb706b..3a68ad839f310 100644 --- a/src/framework/global/internal/interactive.cpp +++ b/src/framework/global/internal/interactive.cpp @@ -319,6 +319,11 @@ ValCh Interactive::currentUri() const return provider()->currentUri(); } +RetVal Interactive::isCurrentUriDialog() const +{ + return provider()->isCurrentUriDialog(); +} + std::vector Interactive::stack() const { return provider()->stack(); diff --git a/src/framework/global/internal/interactive.h b/src/framework/global/internal/interactive.h index b070a943c1c26..74728fffd15f9 100644 --- a/src/framework/global/internal/interactive.h +++ b/src/framework/global/internal/interactive.h @@ -114,6 +114,7 @@ class Interactive : public IInteractive, public Injectable, public async::Asynca void closeAllDialogs() override; ValCh currentUri() const override; + RetVal isCurrentUriDialog() const override; std::vector stack() const override; Ret openUrl(const std::string& url) const override; diff --git a/src/framework/global/tests/mocks/interactivemock.h b/src/framework/global/tests/mocks/interactivemock.h index aacee077e1d69..dd45b079d70fc 100644 --- a/src/framework/global/tests/mocks/interactivemock.h +++ b/src/framework/global/tests/mocks/interactivemock.h @@ -83,6 +83,7 @@ class InteractiveMock : public IInteractive MOCK_METHOD(void, closeAllDialogs, (), (override)); MOCK_METHOD(ValCh, currentUri, (), (const, override)); + MOCK_METHOD(RetVal, isCurrentUriDialog, (), (const, override)); MOCK_METHOD(std::vector, stack, (), (const, override)); MOCK_METHOD(Ret, openUrl, (const std::string&), (const, override)); diff --git a/src/framework/ui/iinteractiveprovider.h b/src/framework/ui/iinteractiveprovider.h index f38befc355fe8..0059f1900106b 100644 --- a/src/framework/ui/iinteractiveprovider.h +++ b/src/framework/ui/iinteractiveprovider.h @@ -78,6 +78,7 @@ class IInteractiveProvider : MODULE_EXPORT_INTERFACE virtual void closeAllDialogs() = 0; virtual ValCh currentUri() const = 0; + virtual RetVal isCurrentUriDialog() const = 0; virtual async::Notification currentUriAboutToBeChanged() const = 0; virtual std::vector stack() const = 0; diff --git a/src/framework/ui/uiaction.h b/src/framework/ui/uiaction.h index 80e083678480c..3c90feb21dd96 100644 --- a/src/framework/ui/uiaction.h +++ b/src/framework/ui/uiaction.h @@ -41,6 +41,9 @@ static constexpr ui::UiContext UiCtxHomeOpened = "UiCtxHomeOpened"; static constexpr ui::UiContext UiCtxProjectOpened = "UiCtxProjectOpened"; static constexpr ui::UiContext UiCtxProjectFocused = "UiCtxProjectFocused"; +// dialogs +static constexpr ui::UiContext UiCtxDialogOpened = "UiCtxDialogOpened"; + enum class Checkable { No = 0, Yes diff --git a/src/framework/ui/view/interactiveprovider.cpp b/src/framework/ui/view/interactiveprovider.cpp index 6c1d6388a0b9e..1c93f5badf19b 100644 --- a/src/framework/ui/view/interactiveprovider.cpp +++ b/src/framework/ui/view/interactiveprovider.cpp @@ -525,6 +525,20 @@ ValCh InteractiveProvider::currentUri() const return v; } +RetVal InteractiveProvider::isCurrentUriDialog() const +{ + if (m_stack.empty()) { + return RetVal::make_ok(false); + } + + const ObjectInfo& last = m_stack.last(); + if (!last.window) { + return RetVal::make_ok(false); + } + + return RetVal::make_ok(last.window != mainWindow()->qWindow()); +} + async::Notification InteractiveProvider::currentUriAboutToBeChanged() const { return m_currentUriAboutToBeChanged; diff --git a/src/framework/ui/view/interactiveprovider.h b/src/framework/ui/view/interactiveprovider.h index 5916046c6e906..090cfa5d9107e 100644 --- a/src/framework/ui/view/interactiveprovider.h +++ b/src/framework/ui/view/interactiveprovider.h @@ -99,6 +99,7 @@ class InteractiveProvider : public QObject, public IInteractiveProvider, public void closeAllDialogs() override; ValCh currentUri() const override; + RetVal isCurrentUriDialog() const override; async::Notification currentUriAboutToBeChanged() const override; std::vector stack() const override; diff --git a/src/notation/internal/notationuiactions.cpp b/src/notation/internal/notationuiactions.cpp index eef42de1fdce3..89ee6b21acdfa 100644 --- a/src/notation/internal/notationuiactions.cpp +++ b/src/notation/internal/notationuiactions.cpp @@ -241,14 +241,14 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("toggle-snap-to-previous", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Snap to &previous"), TranslatableString("action", "Snap to previous"), Checkable::Yes ), UiAction("toggle-snap-to-next", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Snap to &next"), TranslatableString("action", "Snap to next"), Checkable::Yes @@ -279,25 +279,25 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("double-duration", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Double duration"), TranslatableString("action", "Double selected duration") ), UiAction("half-duration", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Halve duration"), TranslatableString("action", "Halve selected duration") ), UiAction("inc-duration-dotted", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Double selected duration (dotted)"), TranslatableString("action", "Double selected duration (includes dotted values)") ), UiAction("dec-duration-dotted", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Halve selected duration (dotted)"), TranslatableString("action", "Halve selected duration (includes dotted values)") ), @@ -348,7 +348,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("toggle-visible", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Toggle visibility of elements"), TranslatableString("action", "Toggle visibility of elements") ), @@ -445,7 +445,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("time-delete", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Remove selected ran&ge"), TranslatableString("action", "Delete selected measures"), IconCode::Code::DELETE_TANK @@ -535,7 +535,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("find", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Find / Go to"), TranslatableString("action", "Find / Go to") ), @@ -571,14 +571,14 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("undo", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Undo"), TranslatableString("action", "Undo"), IconCode::Code::UNDO ), UiAction("redo", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Redo"), TranslatableString("action", "Redo"), IconCode::Code::REDO @@ -627,7 +627,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("page-break", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add/remove page break"), TranslatableString("action", "Add/remove page break") ), @@ -677,14 +677,14 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("insert-measure", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert one measure before selection"), TranslatableString("action", "Insert one measure before selection"), IconCode::Code::INSERT_ONE_MEASURE ), UiAction("insert-measures", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert measures before selection…"), TranslatableString("action", "Insert measures before selection…") ), @@ -696,19 +696,19 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("insert-measures-at-start-of-score", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert measures at start of score…"), TranslatableString("action", "Insert measures at start of score…") ), UiAction("append-measure", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert one measure at end of score"), TranslatableString("action", "Insert one measure at end of score") ), UiAction("append-measures", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert measures at end of score…"), TranslatableString("action", "Insert measures at end of score…") ), @@ -753,7 +753,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("acciaccatura", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Acciaccatura"), TranslatableString("action", "Add grace note: acciaccatura"), IconCode::Code::ACCIACCATURA @@ -879,62 +879,62 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("add-parentheses", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add parentheses to element"), TranslatableString("action", "Add parentheses to element"), IconCode::Code::BRACKET_PARENTHESES ), UiAction("interval1", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Unison"), TranslatableString("action", "Enter interval: unison") ), UiAction("interval2", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Se&cond above"), TranslatableString("action", "Enter interval: second above") ), UiAction("interval3", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Thir&d above"), TranslatableString("action", "Enter interval: third above") ), UiAction("interval4", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Fou&rth above"), TranslatableString("action", "Enter interval: fourth above") ), UiAction("interval5", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Fift&h above"), TranslatableString("action", "Enter interval: fifth above") ), UiAction("interval6", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Si&xth above"), TranslatableString("action", "Enter interval: sixth above") ), UiAction("interval7", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Seve&nth above"), TranslatableString("action", "Enter interval: seventh above") ), UiAction("interval8", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Octave &above"), TranslatableString("action", "Enter interval: octave above") ), UiAction("interval9", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Ninth abov&e"), TranslatableString("action", "Enter interval: ninth above") ), @@ -970,7 +970,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("interval-7", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Se&venth below"), TranslatableString("action", "Enter interval: seventh below") ), @@ -988,121 +988,121 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("note-c", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteC, Enter_note_X.arg(noteC) ), UiAction("note-d", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteD, Enter_note_X.arg(noteD) ), UiAction("note-e", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteE, Enter_note_X.arg(noteE) ), UiAction("note-f", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteF, Enter_note_X.arg(noteF) ), UiAction("note-g", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteG, Enter_note_X.arg(noteG) ), UiAction("note-a", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteA, Enter_note_X.arg(noteA) ), UiAction("note-b", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, noteB, Enter_note_X.arg(noteB) ), UiAction("chord-c", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteC), Add_note_X_to_chord.arg(noteC) ), UiAction("chord-d", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteD), Add_note_X_to_chord.arg(noteD) ), UiAction("chord-e", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteE), Add_note_X_to_chord.arg(noteE) ), UiAction("chord-f", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteF), Add_note_X_to_chord.arg(noteF) ), UiAction("chord-g", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteG), Add_note_X_to_chord.arg(noteG) ), UiAction("chord-a", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteA), Add_note_X_to_chord.arg(noteA) ), UiAction("chord-b", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Add_X_to_chord.arg(noteB), Add_note_X_to_chord.arg(noteB) ), UiAction("insert-c", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteC) ), UiAction("insert-d", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteD) ), UiAction("insert-e", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteE) ), UiAction("insert-f", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteF) ), UiAction("insert-g", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteG) ), UiAction("insert-a", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteA) ), UiAction("insert-b", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, Insert_X.arg(noteB) ), UiAction("rest", @@ -1209,44 +1209,44 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("add-8va", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Ottava 8va &alta"), TranslatableString("action", "Add ottava 8va alta") ), UiAction("add-8vb", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Ottava 8va &bassa"), TranslatableString("action", "Add ottava 8va bassa") ), UiAction("add-dynamic", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Dynamic"), TranslatableString("action", "Add dynamic") ), UiAction("add-hairpin", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Crescendo"), TranslatableString("action", "Add hairpin: crescendo") ), UiAction("add-hairpin-reverse", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Decrescendo"), TranslatableString("action", "Add hairpin: decrescendo") ), UiAction("add-noteline", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Note-anchored line"), TranslatableString("action", "Add note-anchored line"), IconCode::Code::NOTE_ANCHORED_LINE ), UiAction("chord-tie", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add tied note to chord") ), UiAction("add-image", @@ -1256,7 +1256,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("title-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Title"), TranslatableString("action", "Add text: title") ), @@ -1274,7 +1274,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("poet-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Lyricist"), TranslatableString("action", "Add text: lyricist") ), @@ -1292,25 +1292,25 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("system-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Syst&em text"), TranslatableString("action", "Add text: system text") ), UiAction("staff-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "St&aff text"), TranslatableString("action", "Add text: staff text") ), UiAction("expression-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "E&xpression text"), TranslatableString("action", "Add text: expression text") ), UiAction("rehearsalmark-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Rehearsal mark"), TranslatableString("action", "Add text: rehearsal mark") ), @@ -1334,7 +1334,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("chord-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "C&hord symbol"), TranslatableString("action", "Add text: chord symbol") ), @@ -1346,91 +1346,91 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("nashville-number-text", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Nashville number"), TranslatableString("action", "Add text: Nashville number") ), UiAction("lyrics", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "L&yrics"), TranslatableString("action", "Add text: lyrics") ), UiAction("figured-bass", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Figured &bass"), TranslatableString("action", "Add text: figured bass") ), UiAction("tempo", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Tempo &marking"), TranslatableString("action", "Add text: tempo marking") ), UiAction("duplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "&Duplet"), TranslatableString("action", "Enter tuplet: duplet") ), UiAction("triplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "&Triplet"), TranslatableString("action", "Enter tuplet: triplet") ), UiAction("quadruplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "&Quadruplet"), TranslatableString("action", "Enter tuplet: quadruplet") ), UiAction("quintuplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "Q&uintuplet"), TranslatableString("action", "Enter tuplet: quintuplet") ), UiAction("sextuplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "Se&xtuplet"), TranslatableString("action", "Enter tuplet: sextuplet") ), UiAction("septuplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "Se&ptuplet"), TranslatableString("action", "Enter tuplet: septuplet") ), UiAction("octuplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "&Octuplet"), TranslatableString("action", "Enter tuplet: octuplet") ), UiAction("nonuplet", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "&Nonuplet"), TranslatableString("action", "Enter tuplet: nonuplet") ), UiAction("tuplet-dialog", mu::context::UiCtxProjectOpened, - mu::context::CTX_NOTATION_OPENED, + mu::context::CTX_NOTATION_FOCUSED, TranslatableString("action", "Othe&r…"), TranslatableString("action", "Enter tuplet: other…") ), UiAction("stretch-", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Decrease layout stretch"), TranslatableString("action", "Decrease layout stretch") ), UiAction("stretch+", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "&Increase layout stretch"), TranslatableString("action", "Increase layout stretch") ), @@ -1454,198 +1454,198 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("reset", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Reset s&hapes and positions"), TranslatableString("action", "Reset shapes and positions") ), UiAction("reset-to-default-layout", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Reset entire score to &default layout"), TranslatableString("action", "Reset entire score to default layout") ), UiAction("zoomin", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom in"), TranslatableString("action", "Zoom in"), IconCode::Code::ZOOM_IN ), UiAction("zoomout", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom out"), TranslatableString("action", "Zoom out"), IconCode::Code::ZOOM_OUT ), UiAction("zoom100", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom to 100%"), TranslatableString("action", "Zoom to 100%") ), UiAction("zoom-page-width", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom to page width"), TranslatableString("action", "Zoom to page width") ), UiAction("zoom-whole-page", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom to whole page"), TranslatableString("action", "Zoom to whole page") ), UiAction("zoom-two-pages", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Zoom to two pages"), TranslatableString("action", "Zoom to two pages") ), UiAction("get-location", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Accessibility: Get location"), TranslatableString("action", "Accessibility: get location") ), UiAction("edit-element", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Edit element"), TranslatableString("action", "Edit element") ), UiAction("select-prev-measure", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to beginning of measure"), TranslatableString("action", "Select to beginning of measure") ), UiAction("select-next-measure", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to end of measure"), TranslatableString("action", "Select to end of measure") ), UiAction("select-begin-line", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to beginning of line"), TranslatableString("action", "Select to beginning of line") ), UiAction("select-end-line", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to end of line"), TranslatableString("action", "Select to end of line") ), UiAction("select-begin-score", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to beginning of score"), TranslatableString("action", "Select to beginning of score") ), UiAction("select-end-score", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Select to end of score"), TranslatableString("action", "Select to end of score") ), UiAction("select-staff-above", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add staff above to selection"), TranslatableString("action", "Add to selection: staff above") ), UiAction("select-staff-below", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add staff below to selection"), TranslatableString("action", "Add to selection: staff below") ), UiAction("scr-prev", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Screen: Previous"), TranslatableString("action", "Jump to previous screen") ), UiAction("scr-next", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Screen: Next"), TranslatableString("action", "Jump to next screen") ), UiAction("page-prev", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Page: Previous"), TranslatableString("action", "Jump to previous page") ), UiAction("page-next", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Page: Next"), TranslatableString("action", "Jump to next page") ), UiAction("page-top", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Page: Top of first"), TranslatableString("action", "Jump to top of first page") ), UiAction("page-end", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Page: Bottom of last"), TranslatableString("action", "Jump to bottom of last page") ), UiAction("help", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Context sensitive help") ), UiAction("repeat-sel", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Repeat selection"), TranslatableString("action", "Repeat selection") ), UiAction("toggle-score-lock", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Lock/unlock all systems"), TranslatableString("action", "Lock/unlock all systems") ), UiAction("toggle-system-lock", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Lock/unlock selected system(s)"), TranslatableString("action", "Lock/unlock selected system(s)"), IconCode::Code::SYSTEM_LOCK ), UiAction("enh-both", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Change enharmonic spelling (both modes)"), TranslatableString("action", "Change enharmonic spelling (concert and written pitch)"), IconCode::Code::NONE ), UiAction("enh-current", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Change enharmonic spelling (current mode)"), TranslatableString("action", "Change enharmonic spelling (current mode only)"), IconCode::Code::NONE ), UiAction("flip", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Flip direction"), TranslatableString("action", "Flip direction"), IconCode::Code::NOTE_FLIP ), UiAction("flip-horizontally", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Flip horizontally"), TranslatableString("action", "Flip horizontally")), UiAction(TOGGLE_CONCERT_PITCH_CODE, @@ -1814,13 +1814,13 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("pitch-up-diatonic", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Diatonic pitch up"), TranslatableString("action", "Move pitch up diatonically") ), UiAction("pitch-down-diatonic", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Diatonic pitch down"), TranslatableString("action", "Move pitch down diatonically") ), @@ -1838,7 +1838,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("mirror-note", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Mirror notehead"), TranslatableString("action", "Mirror notehead") ), @@ -1928,13 +1928,13 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("clef-violin", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add treble clef"), TranslatableString("action", "Add clef: treble") ), UiAction("clef-bass", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Add bass clef"), TranslatableString("action", "Add clef: bass") ), @@ -1994,13 +1994,13 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("full-measure-rest", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Full measure rest"), TranslatableString("action", "Insert full measure rest") ), UiAction("toggle-mmrest", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Toggle multimeasure rests"), TranslatableString("action", "Toggle multimeasure rests") ), @@ -2024,7 +2024,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("toggle-autoplace", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Toggle automatic placement for selected elements"), TranslatableString("action", "Toggle automatic placement for selected elements") ), @@ -2048,7 +2048,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction(NOTE_INPUT_ACTION_CODE, mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Note input"), TranslatableString("action", "Toggle note input mode"), IconCode::Code::EDIT, @@ -2056,7 +2056,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("toggle-insert-mode", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Insert/overwrite"), TranslatableString("action", "Toggle note input mode: insert/overwrite") ), @@ -2083,7 +2083,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("note-input-repitch", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Re-pitch existing notes"), TranslatableString("action", "Toggle note input mode: re-pitch existing notes"), IconCode::Code::RE_PITCH @@ -2209,77 +2209,77 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("pad-note-1-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "Whole note")), X_TAB.arg(TranslatableString("action", "Set duration: whole note")), IconCode::Code::NOTE_WHOLE ), UiAction("pad-note-2-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "Half note")), X_TAB.arg(TranslatableString("action", "Set duration: half note")), IconCode::Code::NOTE_HALF ), UiAction("pad-note-4-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "Quarter note")), X_TAB.arg(TranslatableString("action", "Set duration: quarter note")), IconCode::Code::NOTE_QUARTER ), UiAction("pad-note-8-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "Eighth note")), X_TAB.arg(TranslatableString("action", "Set duration: eighth note")), IconCode::Code::NOTE_8TH ), UiAction("pad-note-16-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "16th note")), X_TAB.arg(TranslatableString("action", "Set duration: 16th note")), IconCode::Code::NOTE_16TH ), UiAction("pad-note-32-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "32nd note")), X_TAB.arg(TranslatableString("action", "Set duration: 32nd note")), IconCode::Code::NOTE_32ND ), UiAction("pad-note-64-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "64th note")), X_TAB.arg(TranslatableString("action", "Set duration: 64th note")), IconCode::Code::NOTE_64TH ), UiAction("pad-note-128-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "128th note")), X_TAB.arg(TranslatableString("action", "Set duration: 128th note")), IconCode::Code::NOTE_128TH ), UiAction("pad-note-256-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "256th note")), X_TAB.arg(TranslatableString("action", "Set duration: 256th note")), IconCode::Code::NOTE_256TH ), UiAction("pad-note-512-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "512th note")), X_TAB.arg(TranslatableString("action", "Set duration: 512th note")), IconCode::Code::NOTE_512TH ), UiAction("pad-note-1024-TAB", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, X_TAB.arg(TranslatableString("action", "1024th note")), X_TAB.arg(TranslatableString("action", "Set duration: 1024th note")), IconCode::Code::NOTE_1024TH @@ -2321,13 +2321,13 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("next-segment-element", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Accessibility: Next segment element"), TranslatableString("action", "Select next in-staff element") ), UiAction("prev-segment-element", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Accessibility: Previous segment element"), TranslatableString("action", "Select previous in-staff element") ), @@ -2368,49 +2368,49 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("tie", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Tie"), TranslatableString("action", "Add tied note"), IconCode::Code::NOTE_TIE ), UiAction("lv", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Laissez vibrer"), TranslatableString("action", "Add laissez vibrer"), IconCode::Code::NOTE_LV ), UiAction("add-slur", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Slur"), TranslatableString("action", "Add slur"), IconCode::Code::NOTE_SLUR ), UiAction("add-marcato", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Marcato"), TranslatableString("action", "Add articulation: marcato"), IconCode::Code::MARCATO ), UiAction("add-sforzato", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Accent"), TranslatableString("action", "Add articulation: accent"), IconCode::Code::ACCENT ), UiAction("add-tenuto", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Tenuto"), TranslatableString("action", "Add articulation: tenuto"), IconCode::Code::TENUTO ), UiAction("add-staccato", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Staccato"), TranslatableString("action", "Add articulation: staccato"), IconCode::Code::STACCATO @@ -2429,41 +2429,41 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("voice-1", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Voice 1"), TranslatableString("action", "Use voice 1"), IconCode::Code::VOICE_1 ), UiAction("voice-2", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Voice 2"), TranslatableString("action", "Use voice 2"), IconCode::Code::VOICE_2 ), UiAction("voice-3", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Voice 3"), TranslatableString("action", "Use voice 3"), IconCode::Code::VOICE_3 ), UiAction("voice-4", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Voice 4"), TranslatableString("action", "Use voice 4"), IconCode::Code::VOICE_4 ), UiAction("voice-assignment-all-in-instrument", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "All voices on instrument"), TranslatableString("action", "Use all voices on instrument") ), UiAction("voice-assignment-all-in-staff", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "All voices on staff"), TranslatableString("action", "Use all voices on staff") ), @@ -2473,7 +2473,7 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("insert-staff-type-change", mu::context::UiCtxProjectOpened, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Staff type change"), TranslatableString("action", "Insert staff type change"), IconCode::Code::STAFF_TYPE_CHANGE @@ -2484,28 +2484,28 @@ const UiActionList NotationUiActions::m_actions = { ), UiAction("standard-bend", mu::context::UiCtxProjectFocused, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Standard bend"), TranslatableString("action", "Standard bend"), IconCode::Code::GUITAR_BEND_REGULAR ), UiAction("pre-bend", mu::context::UiCtxProjectFocused, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Pre-bend"), TranslatableString("action", "Pre-bend"), IconCode::Code::GUITAR_PRE_BEND ), UiAction("grace-note-bend", mu::context::UiCtxProjectFocused, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Grace note bend"), TranslatableString("action", "Grace note bend"), IconCode::Code::GUITAR_GRACE_NOTE_BEND ), UiAction("slight-bend", mu::context::UiCtxProjectFocused, - mu::context::CTX_ANY, + mu::context::CTX_NOTATION_OPENED, TranslatableString("action", "Slight bend"), TranslatableString("action", "Slight bend"), IconCode::Code::GUITAR_SLIGHT_BEND diff --git a/src/notation/view/abstractnotationpaintview.cpp b/src/notation/view/abstractnotationpaintview.cpp index cc43041d23478..d00821b7a8f79 100644 --- a/src/notation/view/abstractnotationpaintview.cpp +++ b/src/notation/view/abstractnotationpaintview.cpp @@ -629,9 +629,11 @@ void AbstractNotationPaintView::paint(QPainter* qp) bool isPrinting = publishMode() || m_inputController->readonly(); notation()->painting()->paintView(painter, toLogical(rect), isPrinting); - INotationNoteInputPtr noteInput = notationNoteInput(); + const ui::UiContext ctx = uiContextResolver()->currentUiContext(); + const bool isOnNotationPage = ctx == ui::UiCtxProjectOpened || ctx == ui::UiCtxProjectFocused; - if (noteInput->isNoteInputMode()) { + const INotationNoteInputPtr noteInput = notationNoteInput(); + if (noteInput->isNoteInputMode() && isOnNotationPage) { if (noteInput->usingNoteInputMethod(NoteInputMethod::BY_DURATION) && !configuration()->useNoteInputCursorInInputByDuration()) { m_ruler->paint(painter, noteInput->state());