Index: mscore/mscore/actions.cpp =================================================================== --- mscore/mscore/actions.cpp (Revision 3819) +++ mscore/mscore/actions.cpp (Arbeitskopie) @@ -1269,7 +1269,7 @@ STATE_NORMAL | STATE_NOTE_ENTRY, "pad-dotdot", QT_TRANSLATE_NOOP("action","Note duration: double augmentation dot"), - 0, + Qt::SHIFT + Qt::Key_Period, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","Double augmentation dot"), QT_TRANSLATE_NOOP("action","Double augmentation dot"), @@ -1299,7 +1299,7 @@ STATE_NORMAL | STATE_NOTE_ENTRY, "sharp2", QT_TRANSLATE_NOOP("action","Note entry: double sharp"), - 0, + Qt::SHIFT + Qt::Key_Slash, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","Double sharp"), QT_TRANSLATE_NOOP("action","Double sharp"), @@ -1309,7 +1309,7 @@ STATE_NORMAL | STATE_NOTE_ENTRY, "sharp", QT_TRANSLATE_NOOP("action","Note entry: sharp"), - 0, + Qt::Key_Slash, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","Sharp"), QT_TRANSLATE_NOOP("action","Sharp"), @@ -1319,7 +1319,7 @@ STATE_NORMAL | STATE_NOTE_ENTRY, "nat", QT_TRANSLATE_NOOP("action","Note entry: natural"), - 0, + Qt::Key_Asterisk, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","Natural"), QT_TRANSLATE_NOOP("action","Natural"), @@ -1339,7 +1339,7 @@ STATE_NORMAL | STATE_NOTE_ENTRY, "flat2", QT_TRANSLATE_NOOP("action","Note entry: double flat"), - 0, + Qt::SHIFT + Qt::Key_Minus, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","Double flat"), QT_TRANSLATE_NOOP("action","Double flat"), @@ -1347,9 +1347,19 @@ ), Shortcut( STATE_NORMAL | STATE_NOTE_ENTRY, + "remove-accidentals", + QT_TRANSLATE_NOOP("action","Note entry: remove accidentals"), + Qt::SHIFT + Qt::Key_Asterisk, + Qt::WindowShortcut, + QT_TRANSLATE_NOOP("action","Remove accidentals"), + QT_TRANSLATE_NOOP("action","Remove accidentals"), + removeaccidentals_ICON + ), + Shortcut( + STATE_NORMAL | STATE_NOTE_ENTRY, "pad-acciaccatura", QT_TRANSLATE_NOOP("action","acciaccatura"), - Qt::Key_Slash, + Qt::CTRL + Qt::Key_Slash, Qt::WindowShortcut, QT_TRANSLATE_NOOP("action","acciaccatura"), QT_TRANSLATE_NOOP("action","acciaccatura"), Index: mscore/mscore/icons.h =================================================================== --- mscore/mscore/icons.h (Revision 3819) +++ mscore/mscore/icons.h (Arbeitskopie) @@ -30,7 +30,7 @@ extern void genIcons(); enum { longaUp_ICON, brevis_ICON, note_ICON, note2_ICON, note4_ICON, note8_ICON, note16_ICON, - note32_ICON, note64_ICON, natural_ICON, sharp_ICON, sharpsharp_ICON, flat_ICON, flatflat_ICON, + note32_ICON, note64_ICON, natural_ICON, sharp_ICON, sharpsharp_ICON, flat_ICON, flatflat_ICON, removeaccidentals_ICON, staccato_ICON, quartrest_ICON, dot_ICON, dotdot_ICON, sforzatoaccent_ICON, tenuto_ICON, plus_ICON, flip_ICON, undo_ICON, redo_ICON, cut_ICON, copy_ICON, paste_ICON, print_ICON, clef_ICON, Index: mscore/mscore/icons.cpp =================================================================== --- mscore/mscore/icons.cpp (Revision 3819) +++ mscore/mscore/icons.cpp (Arbeitskopie) @@ -48,6 +48,7 @@ "sharpsharp.svg", "flat.svg", "flatflat.svg", + "removeaccidentals.svg", "staccato.svg", "quartrest.svg", "dot.svg", Index: mscore/mscore/mscore.qrc =================================================================== --- mscore/mscore/mscore.qrc (Revision 3819) +++ mscore/mscore/mscore.qrc (Arbeitskopie) @@ -147,6 +147,7 @@ data/icons/text_bottom.svg data/icons/text_vcenter.svg data/icons/mscore.xpm + data/icons/removeaccidentals.svg data/icons-dark/minus.svg data/icons-dark/flip.svg @@ -254,5 +255,6 @@ data/icons-dark/text_bottom.svg data/icons-dark/text_vcenter.svg data/icons-dark/mscore.xpm + data/icons-dark/removeaccidentals.svg Index: mscore/mscore/cmd.cpp =================================================================== --- mscore/mscore/cmd.cpp (Revision 3819) +++ mscore/mscore/cmd.cpp (Arbeitskopie) @@ -1711,9 +1711,19 @@ int pitch, tpc; if (accidental == ACC_NONE) { // - // delete accidental + // delete accidentals // + + // first check for precautionary accidentals accType = ACC_NONE; + // if there is any + Accidental *a_rem = note->accidental(); + if (a_rem) { + // remove + delete a_rem; + note->setAccidental(0); + } + // handle rest pitch = line2pitch(note->line(), clef, 0) + acc2; tpc = step2tpc(step, acc2); } @@ -1722,8 +1732,10 @@ // // this is a precautionary accidental // - pitch = note->pitch(); - tpc = note->tpc(); + accType = accidental; + pitch = line2pitch(note->line(), clef, 0) + Accidental::subtype2value(accType); + tpc = step2tpc(step, acc); + Accidental* a = new Accidental(this); a->setParent(note); a->setSubtype(accidental); @@ -2182,6 +2194,8 @@ changeAccidental(ACC_FLAT); else if (cmd == "flat2") changeAccidental(ACC_FLAT2); + else if (cmd == "remove-accidentals") + changeAccidental(ACC_NONE); else if (cmd == "flip") cmdFlip(); else if (cmd == "stretch+") Index: mscore/mscore/mscore.cpp =================================================================== --- mscore/mscore/mscore.cpp (Revision 3819) +++ mscore/mscore/mscore.cpp (Arbeitskopie) @@ -571,7 +571,7 @@ entryTools->addSeparator(); } QStringList sl2; - sl2 << "sharp2" << "sharp" << "nat" << "flat" <<"flat2"; + sl2 << "sharp2" << "sharp" << "nat" << "flat" << "flat2" << "remove-accidentals"; foreach(const QString& s, sl2) { QToolButton* nb = new QToolButton; QAction* a = getAction(qPrintable(s)); Index: mscore/mscore/mscore-apple.qrc =================================================================== --- mscore/mscore/mscore-apple.qrc (Revision 3819) +++ mscore/mscore/mscore-apple.qrc (Arbeitskopie) @@ -147,6 +147,7 @@ data/icons/text_bottom.svg data/icons/text_vcenter.svg data/icons/mscore.xpm + data/removeaccidentals.svg data/icons-dark/minus.svg data/icons-dark/flip.svg @@ -254,5 +255,6 @@ data/icons-dark/text_bottom.svg data/icons-dark/text_vcenter.svg data/icons-dark/mscore.xpm + data/icons-dark/removeaccidentals.svg Index: mscore/mscore/CMakeLists.txt =================================================================== --- mscore/mscore/CMakeLists.txt (Revision 3819) +++ mscore/mscore/CMakeLists.txt (Arbeitskopie) @@ -547,6 +547,7 @@ data/icons/subscript.svg data/icons/superscript.svg data/icons/fotomode.svg + data/icons/removeaccidentals.svg DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}/icons/icons ) install (FILES @@ -655,6 +656,7 @@ data/icons-dark/subscript.svg data/icons-dark/superscript.svg data/icons-dark/fotomode.svg + data/icons-dark/removeaccidentals.svg DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}/icons/icons-dark ) # endif (NOT EMBED_ICONS)