diff --git a/src/app/configs/data/shortcuts.xml b/src/app/configs/data/shortcuts.xml index 7aff6538cc952..0ebb60c0c4d76 100644 --- a/src/app/configs/data/shortcuts.xml +++ b/src/app/configs/data/shortcuts.xml @@ -738,6 +738,10 @@ staff-text Ctrl+T + + dynamics + Ctrl+D + expression-text Ctrl+E diff --git a/src/app/configs/data/shortcuts_azerty.xml b/src/app/configs/data/shortcuts_azerty.xml index d841a82891c63..5c9b1bcd7366f 100644 --- a/src/app/configs/data/shortcuts_azerty.xml +++ b/src/app/configs/data/shortcuts_azerty.xml @@ -764,6 +764,10 @@ staff-text Ctrl+T + + dynamics + Ctrl+D + expression-text Ctrl+E diff --git a/src/app/configs/data/shortcuts_mac.xml b/src/app/configs/data/shortcuts_mac.xml index b9df7baef3024..8186e3135d07e 100644 --- a/src/app/configs/data/shortcuts_mac.xml +++ b/src/app/configs/data/shortcuts_mac.xml @@ -738,6 +738,10 @@ staff-text Ctrl+T + + dynamics + Ctrl+D + expression-text Ctrl+E diff --git a/src/appshell/view/appmenumodel.cpp b/src/appshell/view/appmenumodel.cpp index 3b8c5c6640c35..d9020c97519c6 100644 --- a/src/appshell/view/appmenumodel.cpp +++ b/src/appshell/view/appmenumodel.cpp @@ -609,6 +609,7 @@ MenuItemList AppMenuModel::makeTextItems() makeSeparator(), makeMenuItem("system-text"), makeMenuItem("staff-text"), + makeMenuItem("dynamics"), makeMenuItem("expression-text"), makeMenuItem("rehearsalmark-text"), makeMenuItem("instrument-change-text"), diff --git a/src/engraving/dom/edit.cpp b/src/engraving/dom/edit.cpp index 7e8c2fa400b74..74847c84139aa 100644 --- a/src/engraving/dom/edit.cpp +++ b/src/engraving/dom/edit.cpp @@ -943,6 +943,15 @@ TextBase* Score::addText(TextStyleType type, EngravingItem* destinationElement) undoAddElement(textBox); break; } + case TextStyleType::DYNAMICS: { + ChordRest* chordRest = chordOrRest(destinationElement); + if (!chordRest) { + break; + } + textBox = Factory::createDynamic(dummy()->segment()); + chordRest->undoAddAnnotation(textBox); + break; + } case TextStyleType::HARP_PEDAL_DIAGRAM: case TextStyleType::HARP_PEDAL_TEXT_DIAGRAM: { ChordRest* chordRest = getSelectedChordRest(); diff --git a/src/notation/internal/notationactioncontroller.cpp b/src/notation/internal/notationactioncontroller.cpp index e57ae581fc626..e265d3993ed42 100644 --- a/src/notation/internal/notationactioncontroller.cpp +++ b/src/notation/internal/notationactioncontroller.cpp @@ -327,6 +327,7 @@ void NotationActionController::init() registerAction("system-text", [this]() { addText(TextStyleType::SYSTEM); }); registerAction("staff-text", [this]() { addText(TextStyleType::STAFF); }); + registerAction("dynamics", [this]() { addText(TextStyleType::DYNAMICS); }); registerAction("expression-text", [this]() { addText(TextStyleType::EXPRESSION); }); registerAction("rehearsalmark-text", [this]() { addText(TextStyleType::REHEARSAL_MARK); }); registerAction("instrument-change-text", [this]() { addText(TextStyleType::INSTRUMENT_CHANGE); }); diff --git a/src/notation/internal/notationinteraction.cpp b/src/notation/internal/notationinteraction.cpp index 7966ba8435f00..b8803caf5c31f 100644 --- a/src/notation/internal/notationinteraction.cpp +++ b/src/notation/internal/notationinteraction.cpp @@ -4609,6 +4609,7 @@ Ret NotationInteraction::canAddTextToItem(TextStyleType type, const EngravingIte static const std::set needSelectNoteOrRestTypes { TextStyleType::SYSTEM, TextStyleType::STAFF, + TextStyleType::DYNAMICS, TextStyleType::EXPRESSION, TextStyleType::REHEARSAL_MARK, TextStyleType::INSTRUMENT_CHANGE, @@ -4671,6 +4672,10 @@ void NotationInteraction::addText(TextStyleType type, EngravingItem* item) } } + if (text->hasVoiceAssignmentProperties()) { + text->setInitialTrackAndVoiceAssignment(item->track(), false); + } + apply(); showItem(text); diff --git a/src/notation/internal/notationuiactions.cpp b/src/notation/internal/notationuiactions.cpp index 335b0a5afce2d..4d2233d2f1dfb 100644 --- a/src/notation/internal/notationuiactions.cpp +++ b/src/notation/internal/notationuiactions.cpp @@ -1276,6 +1276,12 @@ const UiActionList NotationUiActions::m_actions = { TranslatableString("action", "St&aff text"), TranslatableString("action", "Add text: staff text") ), + UiAction("dynamics", + mu::context::UiCtxProjectOpened, + mu::context::CTX_ANY, + TranslatableString("action", "&Dynamic"), + TranslatableString("action", "Add text: dynamic") + ), UiAction("expression-text", mu::context::UiCtxProjectOpened, mu::context::CTX_ANY, @@ -1309,7 +1315,7 @@ const UiActionList NotationUiActions::m_actions = { UiAction("chord-text", mu::context::UiCtxProjectOpened, mu::context::CTX_ANY, - TranslatableString("action", "Chor&d symbol"), + TranslatableString("action", "C&hord symbol"), TranslatableString("action", "Add text: chord symbol") ), UiAction("roman-numeral-text", diff --git a/src/notation/view/noteinputbarmodel.cpp b/src/notation/view/noteinputbarmodel.cpp index ae383b567436f..da031e47a5065 100644 --- a/src/notation/view/noteinputbarmodel.cpp +++ b/src/notation/view/noteinputbarmodel.cpp @@ -740,6 +740,7 @@ MenuItemList NoteInputBarModel::makeTextItems() makeMenuItem("system-text"), makeMenuItem("staff-text"), makeMenuItem("expression-text"), + makeMenuItem("dynamics"), makeMenuItem("rehearsalmark-text"), makeMenuItem("instrument-change-text"), makeMenuItem("fingering-text"),