LCOV - code coverage report
Current view: top level - src/notationscene/internal - notationcommandsregister.cpp Coverage Total Hit
Test: filtered_coverage.info Lines: 0.0 % 11 0
Test Date: 2026-11-05 04:07:02

            Line data    Source code
       1              : /*
       2              :  * SPDX-License-Identifier: GPL-3.0-only
       3              :  * MuseScore-Studio-CLA-applies
       4              :  *
       5              :  * MuseScore Studio
       6              :  * Music Composition & Notation
       7              :  *
       8              :  * Copyright (C) 2026 MuseScore Limited and others
       9              :  *
      10              :  * This program is free software: you can redistribute it and/or modify
      11              :  * it under the terms of the GNU General Public License version 3 as
      12              :  * published by the Free Software Foundation.
      13              :  *
      14              :  * This program is distributed in the hope that it will be useful,
      15              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      16              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      17              :  * GNU General Public License for more details.
      18              :  *
      19              :  * You should have received a copy of the GNU General Public License
      20              :  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
      21              :  */
      22              : 
      23              : #include "notationcommandsregister.h"
      24              : 
      25              : #include "../notationcommands.h"
      26              : #include "rcommand/commandtypes.h"
      27              : 
      28              : using namespace muse;
      29              : using namespace muse::rcommand;
      30              : using namespace muse::ui;
      31              : using namespace mu::notation;
      32              : 
      33              : // avoid translation duplication
      34              : 
      35              : // //: This is comment for translator
      36              : 
      37              : //: Note
      38              : static const TranslatableString noteC = TranslatableString("action", "C");
      39              : //: Note
      40              : static const TranslatableString noteD = TranslatableString("action", "D");
      41              : //: Note
      42              : static const TranslatableString noteE = TranslatableString("action", "E");
      43              : //: Note
      44              : static const TranslatableString noteF = TranslatableString("action", "F");
      45              : //: Note
      46              : static const TranslatableString noteG = TranslatableString("action", "G");
      47              : //: Note
      48              : static const TranslatableString noteA = TranslatableString("action", "A");
      49              : //: Note
      50              : static const TranslatableString noteB = TranslatableString("action", "B");
      51              : 
      52              : static const TranslatableString Enter_note_X = TranslatableString("action", "Enter note %1");
      53              : static const TranslatableString Add_X_to_chord = TranslatableString("action", "Add %1 to chord");
      54              : static const TranslatableString Add_note_X_to_chord = TranslatableString("action", "Add note %1 to chord");
      55              : static const TranslatableString Insert_X = TranslatableString("action", "Insert %1");
      56              : 
      57              : //: Addition to the name of an action to indicate that this action only applies to tablature notation.
      58              : //: '%1' is the name of the action.
      59              : static const TranslatableString X_TAB = TranslatableString("action", "%1 (TAB)");
      60              : 
      61              : static const TranslatableString fret_X_TAB = TranslatableString("action", "Fret %1 (TAB)");
      62              : static const TranslatableString enter_TAB_fret_X = TranslatableString("action", "Enter TAB: fret %1");
      63              : 
      64              : static const std::vector<CommandInfo> s_commandInfos = {
      65              :     // copy, cut, paste, delete, cancel
      66              :     CommandInfo{
      67              :         COPY_COMMAND,
      68              :         TranslatableString("action", "&Copy"),
      69              :         TranslatableString("action", "Copy the current notation element"),
      70              :         InputSchema(),
      71              :         Decoration(IconCode::Code::COPY)
      72              :     },
      73              :     CommandInfo{
      74              :         COPY_PASTE_SWAP_COMMAND,
      75              :         TranslatableString("action", "&Swap with clipboard"),
      76              :         TranslatableString("action", "Copy/paste: swap with clipboard"),
      77              :         InputSchema(),
      78              :         Decoration()
      79              :     },
      80              :     CommandInfo{
      81              :         CUT_COMMAND,
      82              :         TranslatableString("action", "Cu&t"),
      83              :         TranslatableString("action", "Cut the current notation element"),
      84              :         InputSchema(),
      85              :         Decoration(IconCode::Code::CUT)
      86              :     },
      87              :     CommandInfo{
      88              :         PASTE_COMMAND,
      89              :         TranslatableString("action", "Past&e"),
      90              :         TranslatableString("action", "Paste the current notation element"),
      91              :         InputSchema(),
      92              :         Decoration(IconCode::Code::PASTE)
      93              :     },
      94              :     CommandInfo{
      95              :         PASTE_HALF_COMMAND,
      96              :         TranslatableString("action", "Paste &half duration"),
      97              :         TranslatableString("action", "Paste half duration"),
      98              :         InputSchema(),
      99              :         Decoration()
     100              :     },
     101              :     CommandInfo{
     102              :         PASTE_DOUBLE_COMMAND,
     103              :         TranslatableString("action", "Paste &double duration"),
     104              :         TranslatableString("action", "Paste double duration"),
     105              :         InputSchema(),
     106              :         Decoration()
     107              :     },
     108              :     CommandInfo{
     109              :         PASTE_SPECIAL_COMMAND,
     110              :         TranslatableString("action", "Paste special"),
     111              :         TranslatableString("action", "Paste special"),
     112              :         InputSchema(),
     113              :         Decoration()
     114              :     },
     115              :     CommandInfo{
     116              :         DELETE_COMMAND,
     117              :         TranslatableString("action", "De&lete"),
     118              :         TranslatableString("action", "Delete the current notation element"),
     119              :         InputSchema(),
     120              :         Decoration(IconCode::Code::DELETE_TANK)
     121              :     },
     122              :     CommandInfo{
     123              :         CANCEL_COMMAND,
     124              :         TranslatableString("action", "Cancel"),
     125              :         TranslatableString("action", "Cancel the current notation operation"),
     126              :         InputSchema(),
     127              :         Decoration()
     128              :     },
     129              :     CommandInfo{
     130              :         UNDO_COMMAND,
     131              :         TranslatableString("action", "Undo"),
     132              :         TranslatableString("action", "Undo the last notation operation"),
     133              :         InputSchema(),
     134              :         Decoration(IconCode::Code::UNDO)
     135              :     },
     136              :     CommandInfo{
     137              :         REDO_COMMAND,
     138              :         TranslatableString("action", "Redo"),
     139              :         TranslatableString("action", "Redo the last notation operation"),
     140              :         InputSchema(),
     141              :         Decoration(IconCode::Code::REDO)
     142              :     },
     143              : 
     144              :     // navigation
     145              :     CommandInfo{
     146              :         MOVE_RIGHT_COMMAND,
     147              :         TranslatableString("action", "Move right"),
     148              :         TranslatableString("action", "Go to next notation element"),
     149              :         InputSchema(),
     150              :         Decoration()
     151              :     },
     152              :     CommandInfo{
     153              :         MOVE_RIGHT_QUICKLY_COMMAND,
     154              :         TranslatableString("action", "Move right quickly"),
     155              :         TranslatableString("action", "Go to next notation element quickly"),
     156              :         InputSchema(),
     157              :         Decoration()
     158              :     },
     159              :     CommandInfo{
     160              :         MOVE_LEFT_COMMAND,
     161              :         TranslatableString("action", "Move left"),
     162              :         TranslatableString("action", "Go to previous notation element"),
     163              :         InputSchema(),
     164              :         Decoration()
     165              :     },
     166              :     CommandInfo{
     167              :         MOVE_LEFT_QUICKLY_COMMAND,
     168              :         TranslatableString("action", "Move left quickly"),
     169              :         TranslatableString("action", "Go to previous notation element quickly"),
     170              :         InputSchema(),
     171              :         Decoration()
     172              :     },
     173              :     CommandInfo{
     174              :         MOVE_UP_COMMAND,
     175              :         TranslatableString("action", "Move to staff above"),
     176              :         TranslatableString("action", "Move selected note/rest to staff above"),
     177              :         InputSchema(),
     178              :         Decoration()
     179              :     },
     180              :     CommandInfo{
     181              :         MOVE_DOWN_COMMAND,
     182              :         TranslatableString("action", "Move to staff below"),
     183              :         TranslatableString("action", "Move selected note/rest to staff below"),
     184              :         InputSchema(),
     185              :         Decoration()
     186              :     },
     187              :     CommandInfo{
     188              :         SWAP_LEFT_COMMAND,
     189              :         TranslatableString("action", "Move chord/rest left"),
     190              :         TranslatableString("action", "Move chord/rest left"),
     191              :         InputSchema(),
     192              :         Decoration()
     193              :     },
     194              :     CommandInfo{
     195              :         SWAP_RIGHT_COMMAND,
     196              :         TranslatableString("action", "Move chord/rest right"),
     197              :         TranslatableString("action", "Move chord/rest right"),
     198              :         InputSchema(),
     199              :         Decoration()
     200              :     },
     201              : 
     202              :     CommandInfo{
     203              :         PITCH_UP_COMMAND,
     204              :         TranslatableString("action", "Pitch up"),
     205              :         TranslatableString("action", "Pitch up the current note"),
     206              :         InputSchema(),
     207              :         Decoration()
     208              :     },
     209              :     CommandInfo{
     210              :         PITCH_DOWN_COMMAND,
     211              :         TranslatableString("action", "Pitch down"),
     212              :         TranslatableString("action", "Pitch down the current note"),
     213              :         InputSchema(),
     214              :         Decoration()
     215              :     },
     216              :     CommandInfo{
     217              :         PITCH_UP_OCTAVE_COMMAND,
     218              :         TranslatableString("action", "Pitch up octave"),
     219              :         TranslatableString("action", "Pitch up the current note by an octave"),
     220              :         InputSchema(),
     221              :         Decoration()
     222              :     },
     223              :     CommandInfo{
     224              :         PITCH_DOWN_OCTAVE_COMMAND,
     225              :         TranslatableString("action", "Pitch down octave"),
     226              :         TranslatableString("action", "Pitch down the current note by an octave"),
     227              :         InputSchema(),
     228              :         Decoration()
     229              :     },
     230              :     CommandInfo{
     231              :         PITCH_UP_DIATONIC_COMMAND,
     232              :         TranslatableString("action", "Diatonic pitch up"),
     233              :         TranslatableString("action", "Move pitch up diatonically"),
     234              :         InputSchema(),
     235              :         Decoration()
     236              :     },
     237              :     CommandInfo{
     238              :         PITCH_DOWN_DIATONIC_COMMAND,
     239              :         TranslatableString("action", "Diatonic pitch down"),
     240              :         TranslatableString("action", "Move pitch down diatonically"),
     241              :         InputSchema(),
     242              :         Decoration()
     243              :     },
     244              :     CommandInfo{
     245              :         PITCH_UP_DIATONIC_ALTERATIONS_COMMAND,
     246              :         TranslatableString("action", "Diatonic pitch up (keep degree alterations)"),
     247              :         TranslatableString("action", "Move pitch up diatonically (keep degree alterations)"),
     248              :         InputSchema(),
     249              :         Decoration()
     250              :     },
     251              :     CommandInfo{
     252              :         PITCH_DOWN_DIATONIC_ALTERATIONS_COMMAND,
     253              :         TranslatableString("action", "Diatonic pitch down (keep degree alterations)"),
     254              :         TranslatableString("action", "Move pitch down diatonically (keep degree alterations)"),
     255              :         InputSchema(),
     256              :         Decoration()
     257              :     },
     258              : 
     259              :     // note input
     260              :     CommandInfo{
     261              :         TOGGLE_NOTE_INPUT_COMMAND,
     262              :         TranslatableString("action", "Note input"),
     263              :         TranslatableString("action", "Toggle note input mode"),
     264              :         InputSchema(),
     265              :         Decoration(IconCode::Code::EDIT, rcommand::Checkable::Yes)
     266              :     },
     267              :     CommandInfo{
     268              :         TOGGLE_NOTE_INPUT_BY_NOTE_NAME_COMMAND,
     269              :         TranslatableString("action", "Note input by note name"),
     270              :         TranslatableString("action", "Toggle note input mode by note name"),
     271              :         InputSchema(),
     272              :         Decoration(IconCode::Code::EDIT, rcommand::Checkable::Yes)
     273              :     },
     274              :     CommandInfo{
     275              :         TOGGLE_NOTE_INPUT_BY_DURATION_COMMAND,
     276              :         TranslatableString("action", "Note input by duration"),
     277              :         TranslatableString("action", "Toggle note input mode by duration"),
     278              :         InputSchema(),
     279              :         Decoration(IconCode::Code::DURATION_CURSOR, rcommand::Checkable::Yes)
     280              :     },
     281              :     CommandInfo{
     282              :         TOGGLE_NOTE_INPUT_RHYTHM_COMMAND,
     283              :         TranslatableString("action", "Rhythm only (not pitch)"),
     284              :         TranslatableString("action", "Toggle note input mode: rhythm only (not pitch)"),
     285              :         InputSchema(),
     286              :         Decoration(IconCode::Code::RHYTHM_ONLY, rcommand::Checkable::Yes)
     287              :     },
     288              :     CommandInfo{
     289              :         TOGGLE_NOTE_INPUT_REPITCH_COMMAND,
     290              :         TranslatableString("action", "Re-pitch existing notes"),
     291              :         TranslatableString("action", "Toggle note input mode: re-pitch existing notes"),
     292              :         InputSchema(),
     293              :         Decoration(IconCode::Code::RE_PITCH, rcommand::Checkable::Yes)
     294              :     },
     295              :     CommandInfo{
     296              :         TOGGLE_NOTE_INPUT_REALTIME_AUTO_COMMAND,
     297              :         TranslatableString("action", "Real-time (metronome)"),
     298              :         TranslatableString("action", "Toggle note input mode: real-time (metronome)"),
     299              :         InputSchema(),
     300              :         Decoration(IconCode::Code::METRONOME, rcommand::Checkable::Yes)
     301              :     },
     302              :     CommandInfo{
     303              :         TOGGLE_NOTE_INPUT_REALTIME_MANUAL_COMMAND,
     304              :         TranslatableString("action", "Real-time (foot pedal)"),
     305              :         TranslatableString("action", "Toggle note input mode: real-time (foot pedal)"),
     306              :         InputSchema(),
     307              :         Decoration(IconCode::Code::FOOT_PEDAL, rcommand::Checkable::Yes)
     308              :     },
     309              :     CommandInfo{
     310              :         TOGGLE_NOTE_INPUT_TIMEWISE_COMMAND,
     311              :         TranslatableString("action", "Insert"),
     312              :         TranslatableString("action", "Toggle note input mode: insert (increases measure duration)"),
     313              :         InputSchema(),
     314              :         Decoration(IconCode::Code::NOTE_PLUS, rcommand::Checkable::Yes)
     315              :     },
     316              :     CommandInfo{
     317              :         TOGGLE_INSERT_MODE_COMMAND,
     318              :         TranslatableString("action", "Insert/overwrite"),
     319              :         TranslatableString("action", "Toggle note input mode: insert/overwrite"),
     320              :         InputSchema(),
     321              :         Decoration()
     322              :     },
     323              :     CommandInfo{
     324              :         REALTIME_ADVANCE_COMMAND,
     325              :         TranslatableString("action", "Real-time advance"),
     326              :         TranslatableString("action", "Real-time advance"),
     327              :         InputSchema(),
     328              :         Decoration(IconCode::Code::METRONOME)
     329              :     },
     330              :     CommandInfo{
     331              :         SET_DURATION_LONGA_COMMAND,
     332              :         TranslatableString("action", "Longa"),
     333              :         TranslatableString("action", "Set duration: longa"),
     334              :         InputSchema(),
     335              :         Decoration(IconCode::Code::LONGO)
     336              :     },
     337              :     CommandInfo{
     338              :         SET_DURATION_BREVE_COMMAND,
     339              :         TranslatableString("action", "Breve"),
     340              :         TranslatableString("action", "Set duration: breve"),
     341              :         InputSchema(),
     342              :         Decoration(IconCode::Code::NOTE_WHOLE_DOUBLE)
     343              :     },
     344              :     CommandInfo{
     345              :         SET_DURATION_WHOLE_COMMAND,
     346              :         TranslatableString("action", "Whole note"),
     347              :         TranslatableString("action", "Set duration: whole note"),
     348              :         InputSchema(),
     349              :         Decoration(IconCode::Code::NOTE_WHOLE)
     350              :     },
     351              :     CommandInfo{
     352              :         SET_DURATION_HALF_COMMAND,
     353              :         TranslatableString("action", "Half note"),
     354              :         TranslatableString("action", "Set duration: half note"),
     355              :         InputSchema(),
     356              :         Decoration(IconCode::Code::NOTE_HALF)
     357              :     },
     358              :     CommandInfo{
     359              :         SET_DURATION_QUARTER_COMMAND,
     360              :         TranslatableString("action", "Quarter note"),
     361              :         TranslatableString("action", "Set duration: quarter note"),
     362              :         InputSchema(),
     363              :         Decoration(IconCode::Code::NOTE_QUARTER)
     364              :     },
     365              :     CommandInfo{
     366              :         SET_DURATION_EIGHTH_COMMAND,
     367              :         TranslatableString("action", "Eighth note"),
     368              :         TranslatableString("action", "Set duration: eighth note"),
     369              :         InputSchema(),
     370              :         Decoration(IconCode::Code::NOTE_8TH)
     371              :     },
     372              :     CommandInfo{
     373              :         SET_DURATION_16TH_COMMAND,
     374              :         TranslatableString("action", "16th note"),
     375              :         TranslatableString("action", "Set duration: 16th note"),
     376              :         InputSchema(),
     377              :         Decoration(IconCode::Code::NOTE_16TH)
     378              :     },
     379              :     CommandInfo{
     380              :         SET_DURATION_32ND_COMMAND,
     381              :         TranslatableString("action", "32nd note"),
     382              :         TranslatableString("action", "Set duration: 32nd note"),
     383              :         InputSchema(),
     384              :         Decoration(IconCode::Code::NOTE_32ND)
     385              :     },
     386              :     CommandInfo{
     387              :         SET_DURATION_64TH_COMMAND,
     388              :         TranslatableString("action", "64th note"),
     389              :         TranslatableString("action", "Set duration: 64th note"),
     390              :         InputSchema(),
     391              :         Decoration(IconCode::Code::NOTE_64TH)
     392              :     },
     393              :     CommandInfo{
     394              :         SET_DURATION_128TH_COMMAND,
     395              :         TranslatableString("action", "128th note"),
     396              :         TranslatableString("action", "Set duration: 128th note"),
     397              :         InputSchema(),
     398              :         Decoration(IconCode::Code::NOTE_128TH)
     399              :     },
     400              :     CommandInfo{
     401              :         SET_DURATION_256TH_COMMAND,
     402              :         TranslatableString("action", "256th note"),
     403              :         TranslatableString("action", "Set duration: 256th note"),
     404              :         InputSchema(),
     405              :         Decoration(IconCode::Code::NOTE_256TH)
     406              :     },
     407              :     CommandInfo{
     408              :         SET_DURATION_512TH_COMMAND,
     409              :         TranslatableString("action", "512th note"),
     410              :         TranslatableString("action", "Set duration: 512th note"),
     411              :         InputSchema(),
     412              :         Decoration(IconCode::Code::NOTE_512TH)
     413              :     },
     414              :     CommandInfo{
     415              :         SET_DURATION_1024TH_COMMAND,
     416              :         TranslatableString("action", "1024th note"),
     417              :         TranslatableString("action", "Set duration: 1024th note"),
     418              :         InputSchema(),
     419              :         Decoration(IconCode::Code::NOTE_1024TH)
     420              :     },
     421              : 
     422              :     CommandInfo{
     423              :         SET_DOUBLE_DURATION_COMMAND,
     424              :         TranslatableString("action", "Double duration"),
     425              :         TranslatableString("action", "Double selected duration"),
     426              :         InputSchema(),
     427              :         Decoration()
     428              :     },
     429              :     CommandInfo{
     430              :         SET_HALVE_DURATION_COMMAND,
     431              :         TranslatableString("action", "Halve duration"),
     432              :         TranslatableString("action", "Halve selected duration"),
     433              :         InputSchema(),
     434              :         Decoration()
     435              :     },
     436              :     CommandInfo{
     437              :         SET_DOUBLE_DURATION_DOTTED_COMMAND,
     438              :         TranslatableString("action", "Double selected duration (dotted)"),
     439              :         TranslatableString("action", "Double selected duration (includes dotted values)"),
     440              :         InputSchema(),
     441              :         Decoration()
     442              :     },
     443              :     CommandInfo{
     444              :         SET_HALVE_DURATION_DOTTED_COMMAND,
     445              :         TranslatableString("action", "Halve selected duration (dotted)"),
     446              :         TranslatableString("action", "Halve selected duration (includes dotted values)"),
     447              :         InputSchema(),
     448              :         Decoration()
     449              :     },
     450              :     CommandInfo{
     451              :         TOGGLE_DOT_COMMAND,
     452              :         TranslatableString("action", "Augmentation dot"),
     453              :         TranslatableString("action", "Toggle duration dot"),
     454              :         InputSchema(),
     455              :         Decoration(IconCode::Code::NOTE_DOTTED)
     456              :     },
     457              :     CommandInfo{
     458              :         TOGGLE_DOT2_COMMAND,
     459              :         TranslatableString("action", "Double augmentation dot"),
     460              :         TranslatableString("action", "Toggle duration dot: double"),
     461              :         InputSchema(),
     462              :         Decoration(IconCode::Code::NOTE_DOTTED_2)
     463              :     },
     464              :     CommandInfo{
     465              :         TOGGLE_DOT3_COMMAND,
     466              :         TranslatableString("action", "Triple augmentation dot"),
     467              :         TranslatableString("action", "Toggle duration dot: triple"),
     468              :         InputSchema(),
     469              :         Decoration(IconCode::Code::NOTE_DOTTED_3)
     470              :     },
     471              :     CommandInfo{
     472              :         TOGGLE_DOT4_COMMAND,
     473              :         TranslatableString("action", "Quadruple augmentation dot"),
     474              :         TranslatableString("action", "Toggle duration dot: quadruple"),
     475              :         InputSchema(),
     476              :         Decoration(IconCode::Code::NOTE_DOTTED_4)
     477              :     },
     478              :     CommandInfo{
     479              :         TOGGLE_REST_COMMAND,
     480              :         TranslatableString("action", "Rest"),
     481              :         TranslatableString("action", "Toggle rest"),
     482              :         InputSchema(),
     483              :         Decoration(IconCode::Code::REST)
     484              :     },
     485              :     CommandInfo{
     486              :         TOGGLE_FLAT2_COMMAND,
     487              :         TranslatableString("action", "Toggle double-flat"),
     488              :         TranslatableString("action", "Toggle accidental: double-flat"),
     489              :         InputSchema(),
     490              :         Decoration(IconCode::Code::FLAT_DOUBLE)
     491              :     },
     492              :     CommandInfo{
     493              :         TOGGLE_FLAT_COMMAND,
     494              :         TranslatableString("action", "Toggle flat"),
     495              :         TranslatableString("action", "Toggle accidental: flat"),
     496              :         InputSchema(),
     497              :         Decoration(IconCode::Code::FLAT)
     498              :     },
     499              :     CommandInfo{
     500              :         TOGGLE_NAT_COMMAND,
     501              :         TranslatableString("action", "Toggle natural"),
     502              :         TranslatableString("action", "Toggle accidental: natural"),
     503              :         InputSchema(),
     504              :         Decoration(IconCode::Code::NATURAL)
     505              :     },
     506              :     CommandInfo{
     507              :         TOGGLE_SHARP_COMMAND,
     508              :         TranslatableString("action", "Toggle sharp"),
     509              :         TranslatableString("action", "Toggle accidental: sharp"),
     510              :         InputSchema(),
     511              :         Decoration(IconCode::Code::SHARP)
     512              :     },
     513              :     CommandInfo{
     514              :         TOGGLE_SHARP2_COMMAND,
     515              :         TranslatableString("action", "Toggle double-sharp"),
     516              :         TranslatableString("action", "Toggle accidental: double-sharp"),
     517              :         InputSchema(),
     518              :         Decoration(IconCode::Code::SHARP_DOUBLE)
     519              :     },
     520              : 
     521              :     CommandInfo{
     522              :         ADD_SHARP2_COMMAND,
     523              :         TranslatableString("action", "Add double-sharp"),
     524              :         TranslatableString("action", "Add accidental: double-sharp"),
     525              :         InputSchema(),
     526              :         Decoration()
     527              :     },
     528              :     CommandInfo{
     529              :         ADD_SHARP_COMMAND,
     530              :         TranslatableString("action", "Add sharp"),
     531              :         TranslatableString("action", "Add accidental: sharp"),
     532              :         InputSchema(),
     533              :         Decoration()
     534              :     },
     535              :     CommandInfo{
     536              :         ADD_NAT_COMMAND,
     537              :         TranslatableString("action", "Add natural"),
     538              :         TranslatableString("action", "Add accidental: natural"),
     539              :         InputSchema(),
     540              :         Decoration()
     541              :     },
     542              :     CommandInfo{
     543              :         ADD_FLAT_COMMAND,
     544              :         TranslatableString("action", "Add flat"),
     545              :         TranslatableString("action", "Add accidental: flat"),
     546              :         InputSchema(),
     547              :         Decoration()
     548              :     },
     549              :     CommandInfo{
     550              :         ADD_FLAT2_COMMAND,
     551              :         TranslatableString("action", "Add double-flat"),
     552              :         TranslatableString("action", "Add accidental: double-flat"),
     553              :         InputSchema(),
     554              :         Decoration()
     555              :     },
     556              :     CommandInfo{
     557              :         TOGGLE_TIE_COMMAND,
     558              :         TranslatableString("action", "Tie"),
     559              :         TranslatableString("action", "Add tied note"),
     560              :         InputSchema(),
     561              :         Decoration(IconCode::Code::NOTE_TIE)
     562              :     },
     563              :     CommandInfo{
     564              :         ADD_SLUR_COMMAND,
     565              :         TranslatableString("action", "Slur"),
     566              :         TranslatableString("action", "Add slur"),
     567              :         InputSchema(),
     568              :         Decoration(IconCode::Code::NOTE_SLUR)
     569              :     },
     570              :     CommandInfo{
     571              :         TOGGLE_LV_COMMAND,
     572              :         TranslatableString("action", "Laissez vibrer"),
     573              :         TranslatableString("action", "Add laissez vibrer"),
     574              :         InputSchema(),
     575              :         Decoration(IconCode::Code::NOTE_LV)
     576              :     },
     577              :     CommandInfo{
     578              :         TOGGLE_MARCATO_COMMAND,
     579              :         TranslatableString("action", "Marcato"),
     580              :         TranslatableString("action", "Add articulation: marcato"),
     581              :         InputSchema(),
     582              :         Decoration(IconCode::Code::MARCATO)
     583              :     },
     584              :     CommandInfo{
     585              :         TOGGLE_SFORZATO_COMMAND,
     586              :         TranslatableString("action", "Accent"),
     587              :         TranslatableString("action", "Add articulation: accent"),
     588              :         InputSchema(),
     589              :         Decoration(IconCode::Code::ACCENT)
     590              :     },
     591              :     CommandInfo{
     592              :         TOGGLE_TENUTO_COMMAND,
     593              :         TranslatableString("action", "Tenuto"),
     594              :         TranslatableString("action", "Add articulation: tenuto"),
     595              :         InputSchema(),
     596              :         Decoration(IconCode::Code::TENUTO)
     597              :     },
     598              :     CommandInfo{
     599              :         TOGGLE_STACCATO_COMMAND,
     600              :         TranslatableString("action", "Staccato"),
     601              :         TranslatableString("action", "Add articulation: staccato"),
     602              :         InputSchema(),
     603              :         Decoration(IconCode::Code::STACCATO)
     604              :     },
     605              :     CommandInfo{
     606              :         USE_VOICE_1_COMMAND,
     607              :         TranslatableString("action", "Voice 1"),
     608              :         TranslatableString("action", "Use voice 1"),
     609              :         InputSchema(),
     610              :         Decoration(IconCode::Code::VOICE_1)
     611              :     },
     612              :     CommandInfo{
     613              :         USE_VOICE_2_COMMAND,
     614              :         TranslatableString("action", "Voice 2"),
     615              :         TranslatableString("action", "Use voice 2"),
     616              :         InputSchema(),
     617              :         Decoration(IconCode::Code::VOICE_2)
     618              :     },
     619              :     CommandInfo{
     620              :         USE_VOICE_3_COMMAND,
     621              :         TranslatableString("action", "Voice 3"),
     622              :         TranslatableString("action", "Use voice 3"),
     623              :         InputSchema(),
     624              :         Decoration(IconCode::Code::VOICE_3)
     625              :     },
     626              :     CommandInfo{
     627              :         USE_VOICE_4_COMMAND,
     628              :         TranslatableString("action", "Voice 4"),
     629              :         TranslatableString("action", "Use voice 4"),
     630              :         InputSchema(),
     631              :         Decoration(IconCode::Code::VOICE_4)
     632              :     },
     633              :     CommandInfo{
     634              :         SWAP_VOICE_X12_COMMAND,
     635              :         TranslatableString("action", "Exchange voice &1-2"),
     636              :         TranslatableString("action", "Exchange voice 1-2"),
     637              :         InputSchema(),
     638              :         Decoration()
     639              :     },
     640              :     CommandInfo{
     641              :         SWAP_VOICE_X13_COMMAND,
     642              :         TranslatableString("action", "Exchange voice 1-3"),
     643              :         TranslatableString("action", "Exchange voice 1-3"),
     644              :         InputSchema(),
     645              :         Decoration()
     646              :     },
     647              :     CommandInfo{
     648              :         SWAP_VOICE_X14_COMMAND,
     649              :         TranslatableString("action", "Exchange voice 1-&4"),
     650              :         TranslatableString("action", "Exchange voice 1-4"),
     651              :         InputSchema(),
     652              :         Decoration()
     653              :     },
     654              :     CommandInfo{
     655              :         SWAP_VOICE_X23_COMMAND,
     656              :         TranslatableString("action", "Exchange voice &2-3"),
     657              :         TranslatableString("action", "Exchange voice 2-3"),
     658              :         InputSchema(),
     659              :         Decoration()
     660              :     },
     661              :     CommandInfo{
     662              :         SWAP_VOICE_X24_COMMAND,
     663              :         TranslatableString("action", "Exchange voice 2-4"),
     664              :         TranslatableString("action", "Exchange voice 2-4"),
     665              :         InputSchema(),
     666              :         Decoration()
     667              :     },
     668              :     CommandInfo{
     669              :         SWAP_VOICE_X34_COMMAND,
     670              :         TranslatableString("action", "Exchange voice &3-4"),
     671              :         TranslatableString("action", "Exchange voice 3-4"),
     672              :         InputSchema(),
     673              :         Decoration()
     674              :     },
     675              : 
     676              :     CommandInfo{
     677              :         VOICE_ASSIGNMENT_ALL_IN_INSTR_COMMAND,
     678              :         TranslatableString("action", "All voices on instrument"),
     679              :         TranslatableString("action", "Use all voices on instrument"),
     680              :         InputSchema(),
     681              :         Decoration()
     682              :     },
     683              :     CommandInfo{
     684              :         VOICE_ASSIGNMENT_ALL_IN_STAFF_COMMAND,
     685              :         TranslatableString("action", "All voices on staff"),
     686              :         TranslatableString("action", "Use all voices on staff"),
     687              :         InputSchema(),
     688              :         Decoration()
     689              :     },
     690              : 
     691              :     makeCommandInfo<FlipCommand>(),
     692              :     CommandInfo{
     693              :         FLIP_HORIZONTALLY_COMMAND,
     694              :         TranslatableString("action", "Flip horizontally"),
     695              :         TranslatableString("action", "Flip horizontally"),
     696              :         InputSchema(),
     697              :         Decoration()
     698              :     },
     699              : 
     700              :     // note operation
     701              :     makeCommandInfo<AddNoteCommand>(),
     702              : 
     703              :     CommandInfo{
     704              :         ADD_DRUM_NOTE_COMMAND,
     705              :         TranslatableString("action", "Add drum note"),
     706              :         TranslatableString("action", "Add drum note"),
     707              :         InputSchema({
     708              :             { "pitch", Arg(DataType::Int, u"Drum pitch (e.g. 35, 36, 37, 38, 39, 40, 41)", Val(0), Val(127)) },
     709              :             { "mode", Arg(DataType::String, u"Adding mode (current, next, insert)") },
     710              :         }),
     711              :         Decoration()
     712              :     },
     713              :     CommandInfo{
     714              :         ENTER_NOTE_C_COMMAND,
     715              :         noteC,
     716              :         Enter_note_X.arg(noteC),
     717              :         InputSchema(),
     718              :         Decoration()
     719              :     },
     720              :     CommandInfo{
     721              :         ENTER_NOTE_D_COMMAND,
     722              :         noteD,
     723              :         Enter_note_X.arg(noteD),
     724              :         InputSchema(),
     725              :         Decoration()
     726              :     },
     727              :     CommandInfo{
     728              :         ENTER_NOTE_E_COMMAND,
     729              :         noteE,
     730              :         Enter_note_X.arg(noteE),
     731              :         InputSchema(),
     732              :         Decoration()
     733              :     },
     734              :     CommandInfo{
     735              :         ENTER_NOTE_F_COMMAND,
     736              :         noteF,
     737              :         Enter_note_X.arg(noteF),
     738              :         InputSchema(),
     739              :         Decoration()
     740              :     },
     741              :     CommandInfo{
     742              :         ENTER_NOTE_G_COMMAND,
     743              :         noteG,
     744              :         Enter_note_X.arg(noteG),
     745              :         InputSchema(),
     746              :         Decoration()
     747              :     },
     748              :     CommandInfo{
     749              :         ENTER_NOTE_A_COMMAND,
     750              :         noteA,
     751              :         Enter_note_X.arg(noteA),
     752              :         InputSchema(),
     753              :         Decoration()
     754              :     },
     755              :     CommandInfo{
     756              :         ENTER_NOTE_B_COMMAND,
     757              :         noteB,
     758              :         Enter_note_X.arg(noteB),
     759              :         InputSchema(),
     760              :         Decoration()
     761              :     },
     762              :     CommandInfo{
     763              :         ADD_NOTE_C_COMMAND,
     764              :         Add_X_to_chord.arg(noteC),
     765              :         Add_note_X_to_chord.arg(noteC),
     766              :         InputSchema(),
     767              :         Decoration()
     768              :     },
     769              :     CommandInfo{
     770              :         ADD_NOTE_D_COMMAND,
     771              :         Add_X_to_chord.arg(noteD),
     772              :         Add_note_X_to_chord.arg(noteD),
     773              :         InputSchema(),
     774              :         Decoration()
     775              :     },
     776              :     CommandInfo{
     777              :         ADD_NOTE_E_COMMAND,
     778              :         Add_X_to_chord.arg(noteE),
     779              :         Add_note_X_to_chord.arg(noteE),
     780              :         InputSchema(),
     781              :         Decoration()
     782              :     },
     783              :     CommandInfo{
     784              :         ADD_NOTE_F_COMMAND,
     785              :         Add_X_to_chord.arg(noteF),
     786              :         Add_note_X_to_chord.arg(noteF),
     787              :         InputSchema(),
     788              :         Decoration()
     789              :     },
     790              :     CommandInfo{
     791              :         ADD_NOTE_G_COMMAND,
     792              :         Add_X_to_chord.arg(noteG),
     793              :         Add_note_X_to_chord.arg(noteG),
     794              :         InputSchema(),
     795              :         Decoration()
     796              :     },
     797              :     CommandInfo{
     798              :         ADD_NOTE_A_COMMAND,
     799              :         Add_X_to_chord.arg(noteA),
     800              :         Add_note_X_to_chord.arg(noteA),
     801              :         InputSchema(),
     802              :         Decoration()
     803              :     },
     804              :     CommandInfo{
     805              :         ADD_NOTE_B_COMMAND,
     806              :         Add_X_to_chord.arg(noteB),
     807              :         Add_note_X_to_chord.arg(noteB),
     808              :         InputSchema(),
     809              :         Decoration()
     810              :     },
     811              :     CommandInfo{
     812              :         INSERT_NOTE_C_COMMAND,
     813              :         Insert_X.arg(noteC),
     814              :         Insert_X.arg(noteC),
     815              :         InputSchema(),
     816              :         Decoration()
     817              :     },
     818              :     CommandInfo{
     819              :         INSERT_NOTE_D_COMMAND,
     820              :         Insert_X.arg(noteD),
     821              :         Insert_X.arg(noteD),
     822              :         InputSchema(),
     823              :         Decoration()
     824              :     },
     825              :     CommandInfo{
     826              :         INSERT_NOTE_E_COMMAND,
     827              :         Insert_X.arg(noteE),
     828              :         Insert_X.arg(noteE),
     829              :         InputSchema(),
     830              :         Decoration()
     831              :     },
     832              :     CommandInfo{
     833              :         INSERT_NOTE_F_COMMAND,
     834              :         Insert_X.arg(noteF),
     835              :         Insert_X.arg(noteF),
     836              :         InputSchema(),
     837              :         Decoration()
     838              :     },
     839              :     CommandInfo{
     840              :         INSERT_NOTE_G_COMMAND,
     841              :         Insert_X.arg(noteG),
     842              :         Insert_X.arg(noteG),
     843              :         InputSchema(),
     844              :         Decoration()
     845              :     },
     846              :     CommandInfo{
     847              :         INSERT_NOTE_A_COMMAND,
     848              :         Insert_X.arg(noteA),
     849              :         Insert_X.arg(noteA),
     850              :         InputSchema(),
     851              :         Decoration()
     852              :     },
     853              :     CommandInfo{
     854              :         INSERT_NOTE_B_COMMAND,
     855              :         Insert_X.arg(noteB),
     856              :         Insert_X.arg(noteB),
     857              :         InputSchema(),
     858              :         Decoration()
     859              :     },
     860              : 
     861              :     CommandInfo{
     862              :         ENTER_REST_COMMAND,
     863              :         TranslatableString("action", "Rest"),
     864              :         TranslatableString("action", "Enter rest"),
     865              :         InputSchema(),
     866              :         Decoration(IconCode::Code::REST)
     867              :     },
     868              : 
     869              :     // tuplet
     870              :     CommandInfo{
     871              :         OPEN_TUPLET_CONFIGURE_COMMAND,
     872              :         TranslatableString("action", "Othe&r…"),
     873              :         TranslatableString("action", "Show tuplet configure"),
     874              :         InputSchema(),
     875              :         Decoration()
     876              :     },
     877              :     CommandInfo{
     878              :         ADD_TUPLET_COMMAND,
     879              :         TranslatableString("action", "Tuplet"),
     880              :         TranslatableString("action", "Enter tuplet"),
     881              :         InputSchema({
     882              :             { "ratio", Arg(DataType::String, u"Tuplet ratio (e.g. 3/2, 4/3, 5/4, 6/5, 7/6, 8/7, 9/8)") },
     883              :             { "number-type", Arg(DataType::String, u"Tuplet number type (number, relation, none)") },
     884              :             { "bracket-type", Arg(DataType::String, u"Tuplet bracket type (auto, show, none)") },
     885              :             { "auto-baselen", Arg(DataType::Bool, u"Auto base length") },
     886              :             { "selected-duration-as", Arg(DataType::String, u"Use selected duration as (subdivision, tuplet-length)") },
     887              :         }),
     888              :         Decoration()
     889              :     },
     890              :     CommandInfo{
     891              :         ADD_DUPLET_COMMAND,
     892              :         TranslatableString("action", "Duplet"),
     893              :         TranslatableString("action", "Enter tuplet: duplet"),
     894              :         InputSchema(),
     895              :         Decoration()
     896              :     },
     897              :     CommandInfo{
     898              :         ADD_TRIPLET_COMMAND,
     899              :         TranslatableString("action", "Triplet"),
     900              :         TranslatableString("action", "Enter tuplet: triplet"),
     901              :         InputSchema(),
     902              :         Decoration()
     903              :     },
     904              :     CommandInfo{
     905              :         ADD_QUADRUPLET_COMMAND,
     906              :         TranslatableString("action", "Quadruplet"),
     907              :         TranslatableString("action", "Enter tuplet: quadruplet"),
     908              :         InputSchema(),
     909              :         Decoration()
     910              :     },
     911              :     CommandInfo{
     912              :         ADD_QUINTUPLET_COMMAND,
     913              :         TranslatableString("action", "Quintuplet"),
     914              :         TranslatableString("action", "Enter tuplet: quintuplet"),
     915              :         InputSchema(),
     916              :         Decoration()
     917              :     },
     918              :     CommandInfo{
     919              :         ADD_SEXTUPLET_COMMAND,
     920              :         TranslatableString("action", "Sextuplet"),
     921              :         TranslatableString("action", "Enter tuplet: sextuplet"),
     922              :         InputSchema(),
     923              :         Decoration()
     924              :     },
     925              :     CommandInfo{
     926              :         ADD_SEPTUPLET_COMMAND,
     927              :         TranslatableString("action", "Septuplet"),
     928              :         TranslatableString("action", "Enter tuplet: septuplet"),
     929              :         InputSchema(),
     930              :         Decoration()
     931              :     },
     932              :     CommandInfo{
     933              :         ADD_OCTUPLET_COMMAND,
     934              :         TranslatableString("action", "Octuplet"),
     935              :         TranslatableString("action", "Enter tuplet: octuplet"),
     936              :         InputSchema(),
     937              :         Decoration()
     938              :     },
     939              :     CommandInfo{
     940              :         ADD_NONUPLET_COMMAND,
     941              :         TranslatableString("action", "Nonuplet"),
     942              :         TranslatableString("action", "Enter tuplet: nonuplet"),
     943              :         InputSchema(),
     944              :         Decoration()
     945              :     },
     946              : 
     947              :     // navigation and selection commands
     948              : 
     949              :     CommandInfo{
     950              :         SELECT_COMMAND,
     951              :         TranslatableString("action", "Select"),
     952              :         TranslatableString("action", "Select items by target"),
     953              :         InputSchema({
     954              :             { "target",
     955              :               Arg(DataType::String,
     956              :                   u"Selection target (first-item, last-item, next-item, prev-item, "
     957              :                   u"next-chord, prev-chord, next-measure, prev-measure, "
     958              :                   u"next-track, prev-track, next-frame, prev-frame, next-system, prev-system, "
     959              :                   u"up-note-in-chord, down-note-in-chord, top-note-in-chord, bottom-note-in-chord, notes-in-chord, "
     960              :                   u"similar, similar-in-staff, similar-in-range, all, section)") },
     961              :             { "play-mode", Arg(DataType::String, u"Play mode (none, note, chord)") },
     962              :         }),
     963              :         Decoration()
     964              :     },
     965              :     CommandInfo{
     966              :         OPEN_SELECTION_OPTIONS_COMMAND,
     967              :         TranslatableString("action", "Selection options"),
     968              :         TranslatableString("action", "Open selection options"),
     969              :         InputSchema(),
     970              :         Decoration()
     971              :     },
     972              :     CommandInfo{
     973              :         GOTO_FIRST_ELEMENT_COMMAND,
     974              :         TranslatableString("action", "First element"),
     975              :         TranslatableString("action", "Go to first element in score"),
     976              :         InputSchema(),
     977              :         Decoration()
     978              :     },
     979              :     CommandInfo{
     980              :         GOTO_LAST_ELEMENT_COMMAND,
     981              :         TranslatableString("action", "Last element"),
     982              :         TranslatableString("action", "Go to last element in score"),
     983              :         InputSchema(),
     984              :         Decoration()
     985              :     },
     986              :     CommandInfo{
     987              :         GOTO_NEXT_ELEMENT_COMMAND,
     988              :         TranslatableString("action", "Next element"),
     989              :         TranslatableString("action", "Select next element in score"),
     990              :         InputSchema(),
     991              :         Decoration()
     992              :     },
     993              :     CommandInfo{
     994              :         GOTO_PREV_ELEMENT_COMMAND,
     995              :         TranslatableString("action", "Previous element"),
     996              :         TranslatableString("action", "Select previous element in score"),
     997              :         InputSchema(),
     998              :         Decoration()
     999              :     },
    1000              :     CommandInfo{
    1001              :         GOTO_NEXT_SEGMENT_ELEMENT_COMMAND,
    1002              :         TranslatableString("action", "Next segment element"),
    1003              :         TranslatableString("action", "Select next segment element"),
    1004              :         InputSchema(),
    1005              :         Decoration()
    1006              :     },
    1007              :     CommandInfo{
    1008              :         GOTO_PREV_SEGMENT_ELEMENT_COMMAND,
    1009              :         TranslatableString("action", "Previous segment element"),
    1010              :         TranslatableString("action", "Select previous segment element"),
    1011              :         InputSchema(),
    1012              :         Decoration()
    1013              :     },
    1014              :     CommandInfo{
    1015              :         GOTO_NEXT_TRACK_COMMAND,
    1016              :         TranslatableString("action", "Next staff or voice"),
    1017              :         TranslatableString("action", "Go to next staff or voice"),
    1018              :         InputSchema(),
    1019              :         Decoration()
    1020              :     },
    1021              :     CommandInfo{
    1022              :         GOTO_PREV_TRACK_COMMAND,
    1023              :         TranslatableString("action", "Previous staff or voice"),
    1024              :         TranslatableString("action", "Go to previous staff or voice"),
    1025              :         InputSchema(),
    1026              :         Decoration()
    1027              :     },
    1028              :     CommandInfo{
    1029              :         GOTO_NEXT_FRAME_COMMAND,
    1030              :         TranslatableString("action", "Next frame"),
    1031              :         TranslatableString("action", "Go to next frame"),
    1032              :         InputSchema(),
    1033              :         Decoration()
    1034              :     },
    1035              :     CommandInfo{
    1036              :         GOTO_PREV_FRAME_COMMAND,
    1037              :         TranslatableString("action", "Previous frame"),
    1038              :         TranslatableString("action", "Go to previous frame"),
    1039              :         InputSchema(),
    1040              :         Decoration()
    1041              :     },
    1042              :     CommandInfo{
    1043              :         GOTO_NEXT_SYSTEM_COMMAND,
    1044              :         TranslatableString("action", "Next system"),
    1045              :         TranslatableString("action", "Go to next system"),
    1046              :         InputSchema(),
    1047              :         Decoration()
    1048              :     },
    1049              :     CommandInfo{
    1050              :         GOTO_PREV_SYSTEM_COMMAND,
    1051              :         TranslatableString("action", "Previous system"),
    1052              :         TranslatableString("action", "Go to previous system"),
    1053              :         InputSchema(),
    1054              :         Decoration()
    1055              :     },
    1056              :     CommandInfo{
    1057              :         GOTO_UPNOTE_IN_CHORD_COMMAND,
    1058              :         TranslatableString("action", "Up note in chord"),
    1059              :         TranslatableString("action", "Select note/rest above"),
    1060              :         InputSchema(),
    1061              :         Decoration()
    1062              :     },
    1063              :     CommandInfo{
    1064              :         GOTO_DOWNNOTE_IN_CHORD_COMMAND,
    1065              :         TranslatableString("action", "Down note in chord"),
    1066              :         TranslatableString("action", "Select note/rest below"),
    1067              :         InputSchema(),
    1068              :         Decoration()
    1069              :     },
    1070              :     CommandInfo{
    1071              :         GOTO_TOPNOTE_IN_CHORD_COMMAND,
    1072              :         TranslatableString("action", "Top note in chord"),
    1073              :         TranslatableString("action", "Select top note in chord"),
    1074              :         InputSchema(),
    1075              :         Decoration()
    1076              :     },
    1077              :     CommandInfo{
    1078              :         GOTO_BOTTOMNOTE_IN_CHORD_COMMAND,
    1079              :         TranslatableString("action", "Bottom note in chord"),
    1080              :         TranslatableString("action", "Select bottom note in chord"),
    1081              :         InputSchema(),
    1082              :         Decoration()
    1083              :     },
    1084              :     CommandInfo{
    1085              :         GOTO_TOP_STAFF_COMMAND,
    1086              :         TranslatableString("action", "Go to top staff"),
    1087              :         TranslatableString("action", "Go to top staff"),
    1088              :         InputSchema(),
    1089              :         Decoration()
    1090              :     },
    1091              :     CommandInfo{
    1092              :         GOTO_EMPTY_TRAILING_MEASURE_COMMAND,
    1093              :         TranslatableString("action", "Go to first empty trailing measure"),
    1094              :         TranslatableString("action", "Go to first empty trailing measure"),
    1095              :         InputSchema(),
    1096              :         Decoration()
    1097              :     },
    1098              : 
    1099              :     // selection commands
    1100              :     CommandInfo{
    1101              :         SELECT_SIMILAR_COMMAND,
    1102              :         TranslatableString("action", "Similar"),
    1103              :         TranslatableString("action", "Select similar elements"),
    1104              :         InputSchema(),
    1105              :         Decoration()
    1106              :     },
    1107              :     CommandInfo{
    1108              :         SELECT_SIMILAR_IN_STAFF_COMMAND,
    1109              :         TranslatableString("action", "Similar on this staff"),
    1110              :         TranslatableString("action", "Select similar elements on the same staff"),
    1111              :         InputSchema(),
    1112              :         Decoration()
    1113              :     },
    1114              :     CommandInfo{
    1115              :         SELECT_SIMILAR_IN_RANGE_COMMAND,
    1116              :         TranslatableString("action", "Similar in this range"),
    1117              :         TranslatableString("action", "Select similar elements in the selected range"),
    1118              :         InputSchema(),
    1119              :         Decoration()
    1120              :     },
    1121              :     CommandInfo{
    1122              :         SELECT_NOTES_IN_CHORD_COMMAND,
    1123              :         TranslatableString("action", "Notes in chord"),
    1124              :         TranslatableString("action", "Select notes in chord"),
    1125              :         InputSchema(),
    1126              :         Decoration()
    1127              :     },
    1128              :     CommandInfo{
    1129              :         SELECT_ALL_COMMAND,
    1130              :         TranslatableString("action", "Select &all"),
    1131              :         TranslatableString("action", "Select all"),
    1132              :         InputSchema(),
    1133              :         Decoration()
    1134              :     },
    1135              :     CommandInfo{
    1136              :         SELECT_SECTION_COMMAND,
    1137              :         TranslatableString("action", "Select sectio&n"),
    1138              :         TranslatableString("action", "Select section"),
    1139              :         InputSchema(),
    1140              :         Decoration()
    1141              :     },
    1142              :     CommandInfo{
    1143              :         GET_LOCATION_COMMAND,
    1144              :         TranslatableString("action", "Get location"),
    1145              :         TranslatableString("action", "Get location"),
    1146              :         InputSchema(),
    1147              :         Decoration()
    1148              :     },
    1149              : 
    1150              :     // text navigation commands
    1151              :     CommandInfo{
    1152              :         EDITTEXT_NEXT_WORD_COMMAND,
    1153              :         TranslatableString("action", "Edit next word"),
    1154              :         TranslatableString("action", "Go to edit next notation word"),
    1155              :         InputSchema(),
    1156              :         Decoration()
    1157              :     },
    1158              :     CommandInfo{
    1159              :         EDITTEXT_NEXT_ELEMENT_COMMAND,
    1160              :         TranslatableString("action", "Edit next text element"),
    1161              :         TranslatableString("action", "Go to edit next notation text element"),
    1162              :         InputSchema(),
    1163              :         Decoration()
    1164              :     },
    1165              :     CommandInfo{
    1166              :         EDITTEXT_PREV_ELEMENT_COMMAND,
    1167              :         TranslatableString("action", "Edit previous text element"),
    1168              :         TranslatableString("action", "Go to edit previous notation text element"),
    1169              :         InputSchema(),
    1170              :         Decoration()
    1171              :     },
    1172              :     CommandInfo{
    1173              :         EDITTEXT_NEXT_BEAT_COMMAND,
    1174              :         TranslatableString("action", "Advance cursor: next beat (chord symbols)"),
    1175              :         TranslatableString("action", "Advance cursor: next beat (chord symbols)"),
    1176              :         InputSchema(),
    1177              :         Decoration()
    1178              :     },
    1179              :     CommandInfo{
    1180              :         EDITTEXT_PREV_BEAT_COMMAND,
    1181              :         TranslatableString("action", "Advance cursor: previous beat (chord symbols)"),
    1182              :         TranslatableString("action", "Advance cursor: previous beat (chord symbols)"),
    1183              :         InputSchema(),
    1184              :         Decoration()
    1185              :     },
    1186              :     CommandInfo{
    1187              :         EDITTEXT_ADVANCE_LONGA_COMMAND,
    1188              :         TranslatableString("action", "Advance cursor: longa (chord symbols/figured bass)"),
    1189              :         TranslatableString("action", "Advance cursor: longa (chord symbols/figured bass)"),
    1190              :         InputSchema(),
    1191              :         Decoration()
    1192              :     },
    1193              :     CommandInfo{
    1194              :         EDITTEXT_ADVANCE_BREVE_COMMAND,
    1195              :         TranslatableString("action", "Advance cursor: breve (chord symbols/figured bass)"),
    1196              :         TranslatableString("action", "Advance cursor: breve (chord symbols/figured bass)"),
    1197              :         InputSchema(),
    1198              :         Decoration()
    1199              :     },
    1200              :     CommandInfo{
    1201              :         EDITTEXT_ADVANCE_1_COMMAND,
    1202              :         TranslatableString("action", "Advance cursor: whole note (chord symbols/figured bass)"),
    1203              :         TranslatableString("action", "Advance cursor: whole note (chord symbols/figured bass)"),
    1204              :         InputSchema(),
    1205              :         Decoration()
    1206              :     },
    1207              :     CommandInfo{
    1208              :         EDITTEXT_ADVANCE_2_COMMAND,
    1209              :         TranslatableString("action", "Advance cursor: half note (chord symbols/figured bass)"),
    1210              :         TranslatableString("action", "Advance cursor: half note (chord symbols/figured bass)"),
    1211              :         InputSchema(),
    1212              :         Decoration()
    1213              :     },
    1214              :     CommandInfo{
    1215              :         EDITTEXT_ADVANCE_4_COMMAND,
    1216              :         TranslatableString("action", "Advance cursor: quarter note (chord symbols/figured bass)"),
    1217              :         TranslatableString("action", "Advance cursor: quarter note (chord symbols/figured bass)"),
    1218              :         InputSchema(),
    1219              :         Decoration()
    1220              :     },
    1221              :     CommandInfo{
    1222              :         EDITTEXT_ADVANCE_8_COMMAND,
    1223              :         TranslatableString("action", "Advance cursor: eighth note (chord symbols/figured bass)"),
    1224              :         TranslatableString("action", "Advance cursor: eighth note (chord symbols/figured bass)"),
    1225              :         InputSchema(),
    1226              :         Decoration()
    1227              :     },
    1228              :     CommandInfo{
    1229              :         EDITTEXT_ADVANCE_16_COMMAND,
    1230              :         TranslatableString("action", "Advance cursor: 16th note (chord symbols/figured bass)"),
    1231              :         TranslatableString("action", "Advance cursor: 16th note (chord symbols/figured bass)"),
    1232              :         InputSchema(),
    1233              :         Decoration()
    1234              :     },
    1235              :     CommandInfo{
    1236              :         EDITTEXT_ADVANCE_32_COMMAND,
    1237              :         TranslatableString("action", "Advance cursor: 32nd note (chord symbols/figured bass)"),
    1238              :         TranslatableString("action", "Advance cursor: 32nd note (chord symbols/figured bass)"),
    1239              :         InputSchema(),
    1240              :         Decoration()
    1241              :     },
    1242              : 
    1243              :     CommandInfo{
    1244              :         EDITTEXT_ADVANCE_64_COMMAND,
    1245              :         TranslatableString("action", "Advance cursor: 64th note (chord symbols/figured bass)"),
    1246              :         TranslatableString("action", "Advance cursor: 64th note (chord symbols/figured bass)"),
    1247              :         InputSchema(),
    1248              :         Decoration()
    1249              :     },
    1250              :     CommandInfo{
    1251              :         EDITLYRIC_NEXT_VERSE_COMMAND,
    1252              :         TranslatableString("action", "Next lyric verse"),
    1253              :         TranslatableString("action", "Move text/go to next lyric verse"),
    1254              :         InputSchema(),
    1255              :         Decoration()
    1256              :     },
    1257              :     CommandInfo{
    1258              :         EDITLYRIC_PREV_VERSE_COMMAND,
    1259              :         TranslatableString("action", "Previous lyric verse"),
    1260              :         TranslatableString("action", "Move text/go to previous lyric verse"),
    1261              :         InputSchema(),
    1262              :         Decoration()
    1263              :     },
    1264              :     CommandInfo{
    1265              :         EDITLYRIC_NEXT_SYLLABLE_COMMAND,
    1266              :         TranslatableString("action", "Next syllable"),
    1267              :         TranslatableString("action", "Lyrics: enter hyphen"),
    1268              :         InputSchema(),
    1269              :         Decoration()
    1270              :     },
    1271              :     CommandInfo{
    1272              :         EDITLYRIC_ADD_MELISMA_COMMAND,
    1273              :         TranslatableString("action", "Add extension line"),
    1274              :         TranslatableString("action", "Lyrics: enter extension line"),
    1275              :         InputSchema(),
    1276              :         Decoration()
    1277              :     },
    1278              :     CommandInfo{
    1279              :         EDITLYRIC_ADD_VERSE_COMMAND,
    1280              :         TranslatableString("action", "Add lyrics verse"),
    1281              :         TranslatableString("action", "Add lyrics verse"),
    1282              :         InputSchema(),
    1283              :         Decoration()
    1284              :     },
    1285              : 
    1286              :     // properties commands
    1287              :     CommandInfo{
    1288              :         TOGGLE_VISIBLE_COMMAND,
    1289              :         TranslatableString("action", "Toggle visibility of elements"),
    1290              :         TranslatableString("action", "Toggle visibility of elements"),
    1291              :         InputSchema(),
    1292              :         Decoration()
    1293              :     },
    1294              : 
    1295              :     // snap commands
    1296              :     CommandInfo{
    1297              :         TOGGLE_SNAP_TO_PREV_COMMAND,
    1298              :         TranslatableString("action", "Snap to &previous"),
    1299              :         TranslatableString("action", "Snap to previous"),
    1300              :         InputSchema(),
    1301              :         Decoration(rcommand::Checkable::Yes)
    1302              :     },
    1303              :     CommandInfo{
    1304              :         TOGGLE_SNAP_TO_NEXT_COMMAND,
    1305              :         TranslatableString("action", "Snap to &next"),
    1306              :         TranslatableString("action", "Snap to next"),
    1307              :         InputSchema(),
    1308              :         Decoration(rcommand::Checkable::Yes)
    1309              :     },
    1310              : 
    1311              :     // layout commands
    1312              :     CommandInfo{
    1313              :         TOGGLE_SYSTEM_BREAK_COMMAND,
    1314              :         TranslatableString("action", "Add/remove system break"),
    1315              :         TranslatableString("action", "Add/remove system break"),
    1316              :         InputSchema(),
    1317              :         Decoration()
    1318              :     },
    1319              :     CommandInfo{
    1320              :         TOGGLE_PAGE_BREAK_COMMAND,
    1321              :         TranslatableString("action", "Add/remove page break"),
    1322              :         TranslatableString("action", "Add/remove page break"),
    1323              :         InputSchema(),
    1324              :         Decoration()
    1325              :     },
    1326              :     CommandInfo{
    1327              :         TOGGLE_SECTION_BREAK_COMMAND,
    1328              :         TranslatableString("action", "Add/remove section break"),
    1329              :         TranslatableString("action", "Add/remove section break"),
    1330              :         InputSchema(),
    1331              :         Decoration()
    1332              :     },
    1333              :     CommandInfo{
    1334              :         APPLY_SYSTEM_LOCK_COMMAND,
    1335              :         TranslatableString("action", "Add/remove system lock"),
    1336              :         TranslatableString("action", "Add/remove system lock"),
    1337              :         InputSchema(),
    1338              :         Decoration()
    1339              :     },
    1340              :     CommandInfo{
    1341              :         TOGGLE_SYSTEM_LOCK_COMMAND,
    1342              :         TranslatableString("action", "Lock/unlock selected system(s)"),
    1343              :         TranslatableString("action", "Lock/unlock selected system(s)"),
    1344              :         InputSchema(),
    1345              :         Decoration(IconCode::Code::SYSTEM_LOCK)
    1346              :     },
    1347              :     CommandInfo{
    1348              :         APPLY_PAGE_LOCK_COMMAND,
    1349              :         TranslatableString("action", "Add/remove page lock"),
    1350              :         TranslatableString("action", "Add/remove page lock"),
    1351              :         InputSchema(),
    1352              :         Decoration()
    1353              :     },
    1354              :     CommandInfo{
    1355              :         TOGGLE_PAGE_LOCK_COMMAND,
    1356              :         TranslatableString("action", "Lock/unlock selected page(s)"),
    1357              :         TranslatableString("action", "Lock/unlock selected page(s)"),
    1358              :         InputSchema(),
    1359              :         Decoration()
    1360              :     },
    1361              :     CommandInfo{
    1362              :         TOGGLE_SCORE_LOCK_COMMAND,
    1363              :         TranslatableString("action", "Lock/unlock all systems"),
    1364              :         TranslatableString("action", "Lock/unlock all systems"),
    1365              :         InputSchema(),
    1366              :         Decoration()
    1367              :     },
    1368              :     CommandInfo{
    1369              :         MAKE_INTO_SYSTEM_COMMAND,
    1370              :         TranslatableString("action", "Create system from selection"),
    1371              :         TranslatableString("action", "Create system from selection"),
    1372              :         InputSchema(),
    1373              :         Decoration()
    1374              :     },
    1375              :     CommandInfo{
    1376              :         MAKE_INTO_PAGE_COMMAND,
    1377              :         TranslatableString("action", "Create page from selection"),
    1378              :         TranslatableString("action", "Create page from selection"),
    1379              :         InputSchema(),
    1380              :         Decoration()
    1381              :     },
    1382              :     CommandInfo{
    1383              :         MOVE_MEASURE_TO_PREV_SYSTEM_COMMAND,
    1384              :         TranslatableString("action", "Move measure to previous system"),
    1385              :         TranslatableString("action", "Move measure to previous system"),
    1386              :         InputSchema(),
    1387              :         Decoration(IconCode::Code::ARROW_UP)
    1388              :     },
    1389              :     CommandInfo{
    1390              :         MOVE_MEASURE_TO_NEXT_SYSTEM_COMMAND,
    1391              :         TranslatableString("action", "Move measure to next system"),
    1392              :         TranslatableString("action", "Move measure to next system"),
    1393              :         InputSchema(),
    1394              :         Decoration(IconCode::Code::ARROW_DOWN)
    1395              :     },
    1396              :     CommandInfo{
    1397              :         MOVE_SYSTEM_TO_PREV_PAGE_COMMAND,
    1398              :         TranslatableString("action", "Move system to previous page"),
    1399              :         TranslatableString("action", "Move system to previous page"),
    1400              :         InputSchema(),
    1401              :         Decoration()
    1402              :     },
    1403              :     CommandInfo{
    1404              :         MOVE_SYSTEM_TO_NEXT_PAGE_COMMAND,
    1405              :         TranslatableString("action", "Move system to next page"),
    1406              :         TranslatableString("action", "Move system to next page"),
    1407              :         InputSchema(),
    1408              :         Decoration()
    1409              :     },
    1410              :     CommandInfo{
    1411              :         SPLIT_MEASURE_COMMAND,
    1412              :         TranslatableString("action", "&Split measure before selected note/rest"),
    1413              :         TranslatableString("action", "Split measure before selected note/rest"),
    1414              :         InputSchema(),
    1415              :         Decoration()
    1416              :     },
    1417              :     CommandInfo{
    1418              :         JOIN_MEASURES_COMMAND,
    1419              :         TranslatableString("action", "&Join selected measures"),
    1420              :         TranslatableString("action", "Join selected measures"),
    1421              :         InputSchema(),
    1422              :         Decoration()
    1423              :     },
    1424              :     CommandInfo{
    1425              :         INSERT_MEASURE_COMMAND,
    1426              :         TranslatableString("action", "&Insert one measure before selection"),
    1427              :         TranslatableString("action", "Insert one measure before selection"),
    1428              :         InputSchema(),
    1429              :         Decoration(IconCode::Code::INSERT_ONE_MEASURE)
    1430              :     },
    1431              :     CommandInfo{
    1432              :         INSERT_MEASURES_COMMAND,
    1433              :         TranslatableString("action", "Insert &before selection…"),
    1434              :         TranslatableString("action", "Insert measures before selection"),
    1435              :         InputSchema({
    1436              :             { "count", Arg(DataType::Int, u"Number of measures to insert") },
    1437              :         }),
    1438              :         Decoration()
    1439              :     },
    1440              :     CommandInfo{
    1441              :         INSERT_MEASURES_AFTER_SELECTION_COMMAND,
    1442              :         TranslatableString("action", "Insert &after selection…"),
    1443              :         TranslatableString("action", "Insert measures after selection"),
    1444              :         InputSchema({
    1445              :             { "count", Arg(DataType::Int, u"Number of measures to insert") },
    1446              :         }),
    1447              :         Decoration()
    1448              :     },
    1449              :     CommandInfo{
    1450              :         INSERT_MEASURES_AT_START_OF_SCORE_COMMAND,
    1451              :         TranslatableString("action", "Insert at &start of score…"),
    1452              :         TranslatableString("action", "Insert measures at start of score"),
    1453              :         InputSchema({
    1454              :             { "count", Arg(DataType::Int, u"Number of measures to insert") },
    1455              :         }),
    1456              :         Decoration()
    1457              :     },
    1458              :     CommandInfo{
    1459              :         APPEND_MEASURE_COMMAND,
    1460              :         TranslatableString("action", "Insert &one measure at end of score"),
    1461              :         TranslatableString("action", "Insert one measure at end of score"),
    1462              :         InputSchema(),
    1463              :         Decoration()
    1464              :     },
    1465              :     CommandInfo{
    1466              :         APPEND_MEASURES_COMMAND,
    1467              :         TranslatableString("action", "Insert at &end of score…"),
    1468              :         TranslatableString("action", "Insert measures at end of score"),
    1469              :         InputSchema({
    1470              :             { "count", Arg(DataType::Int, u"Number of measures to insert") },
    1471              :         }),
    1472              :         Decoration()
    1473              :     },
    1474              :     CommandInfo{
    1475              :         INSERT_HBOX_COMMAND,
    1476              :         TranslatableString("action", "Insert &horizontal frame"),
    1477              :         TranslatableString("action", "Insert horizontal frame"),
    1478              :         InputSchema(),
    1479              :         Decoration()
    1480              :     },
    1481              :     CommandInfo{
    1482              :         INSERT_VBOX_COMMAND,
    1483              :         TranslatableString("action", "Insert &vertical frame"),
    1484              :         TranslatableString("action", "Insert vertical frame"),
    1485              :         InputSchema(),
    1486              :         Decoration()
    1487              :     },
    1488              :     CommandInfo{
    1489              :         INSERT_TEXTFRAME_COMMAND,
    1490              :         TranslatableString("action", "Insert &text frame"),
    1491              :         TranslatableString("action", "Insert text frame"),
    1492              :         InputSchema(),
    1493              :         Decoration()
    1494              :     },
    1495              :     CommandInfo{
    1496              :         INSERT_FRETFRAME_COMMAND,
    1497              :         TranslatableString("action", "Insert &fretboard diagram legend"),
    1498              :         TranslatableString("action", "Insert fretboard diagram legend"),
    1499              :         InputSchema(),
    1500              :         Decoration()
    1501              :     },
    1502              :     CommandInfo{
    1503              :         APPEND_HBOX_COMMAND,
    1504              :         TranslatableString("action", "&Horizontal frame"),
    1505              :         TranslatableString("action", "Insert horizontal frame at end of score"),
    1506              :         InputSchema(),
    1507              :         Decoration()
    1508              :     },
    1509              :     CommandInfo{
    1510              :         APPEND_VBOX_COMMAND,
    1511              :         TranslatableString("action", "&Vertical frame"),
    1512              :         TranslatableString("action", "Insert vertical frame at end of score"),
    1513              :         InputSchema(),
    1514              :         Decoration()
    1515              :     },
    1516              :     CommandInfo{
    1517              :         APPEND_TEXTFRAME_COMMAND,
    1518              :         TranslatableString("action", "&Text frame"),
    1519              :         TranslatableString("action", "Insert text frame at end of score"),
    1520              :         InputSchema(),
    1521              :         Decoration()
    1522              :     },
    1523              :     CommandInfo{
    1524              :         APPEND_FRETFRAME_COMMAND,
    1525              :         TranslatableString("action", "&Fretboard diagram legend"),
    1526              :         TranslatableString("action", "Insert fretboard diagram legend at end of score"),
    1527              :         InputSchema(),
    1528              :         Decoration()
    1529              :     },
    1530              :     CommandInfo{
    1531              :         OPEN_EDIT_STYLE_COMMAND,
    1532              :         TranslatableString("action", "&Style…"),
    1533              :         TranslatableString("action", "Format style"),
    1534              :         InputSchema({
    1535              :             { "page_code", Arg(DataType::String, u"Page code") },
    1536              :             { "sub_page_code", Arg(DataType::String, u"Sub page code") },
    1537              :         }),
    1538              :         Decoration()
    1539              :     },
    1540              :     CommandInfo{
    1541              :         OPEN_PAGE_SETTINGS_COMMAND,
    1542              :         TranslatableString("action", "&Page settings…"),
    1543              :         TranslatableString("action", "Page settings"),
    1544              :         InputSchema(),
    1545              :         Decoration()
    1546              :     },
    1547              :     CommandInfo{
    1548              :         OPEN_STAFF_PROPERTIES_COMMAND,
    1549              :         TranslatableString("action", "Instrument / Staff properties…"),
    1550              :         TranslatableString("action", "Instrument / Staff properties"),
    1551              :         InputSchema(),
    1552              :         Decoration()
    1553              :     },
    1554              :     CommandInfo{
    1555              :         OPEN_EDIT_STRINGS_COMMAND,
    1556              :         TranslatableString("action", "Edit strings…"),
    1557              :         TranslatableString("action", "Edit strings"),
    1558              :         InputSchema(),
    1559              :         Decoration()
    1560              :     },
    1561              :     CommandInfo{
    1562              :         OPEN_BREAKS_COMMAND,
    1563              :         TranslatableString("action", "Measures per s&ystem…"),
    1564              :         TranslatableString("action", "Measures per system"),
    1565              :         InputSchema(),
    1566              :         Decoration()
    1567              :     },
    1568              :     CommandInfo{
    1569              :         OPEN_STAFF_TEXT_PROPERTIES_COMMAND,
    1570              :         TranslatableString("action", "Staff text properties…"),
    1571              :         TranslatableString("action", "Staff text properties"),
    1572              :         InputSchema(),
    1573              :         Decoration()
    1574              :     },
    1575              :     CommandInfo{
    1576              :         OPEN_SYSTEM_TEXT_PROPERTIES_COMMAND,
    1577              :         TranslatableString("action", "System text properties…"),
    1578              :         TranslatableString("action", "System text properties"),
    1579              :         InputSchema(),
    1580              :         Decoration()
    1581              :     },
    1582              :     CommandInfo{
    1583              :         OPEN_MEASURE_PROPERTIES_COMMAND,
    1584              :         TranslatableString("action", "Measure properties…"),
    1585              :         TranslatableString("action", "Measure properties"),
    1586              :         InputSchema(),
    1587              :         Decoration()
    1588              :     },
    1589              :     CommandInfo{
    1590              :         OPEN_TRANSPOSE_COMMAND,
    1591              :         TranslatableString("action", "&Transpose…"),
    1592              :         TranslatableString("action", "Transpose"),
    1593              :         InputSchema(),
    1594              :         Decoration()
    1595              :     },
    1596              :     CommandInfo{
    1597              :         OPEN_PARTS_COMMAND,
    1598              :         TranslatableString("action", "&Parts…"),
    1599              :         TranslatableString("action", "Parts"),
    1600              :         InputSchema(),
    1601              :         Decoration(IconCode::Code::PAGE)
    1602              :     },
    1603              :     CommandInfo{
    1604              :         OPEN_EDITGRIDSIZE_COMMAND,
    1605              :         TranslatableString("action", "&Grid size…"),
    1606              :         TranslatableString("action", "Grid size"),
    1607              :         InputSchema(),
    1608              :         Decoration()
    1609              :     },
    1610              :     CommandInfo{
    1611              :         OPEN_REALIZECHORDSYMBOLS_COMMAND,
    1612              :         TranslatableString("action", "Realize &chord symbols"),
    1613              :         TranslatableString("action", "Realize chord symbols"),
    1614              :         InputSchema(),
    1615              :         Decoration()
    1616              :     },
    1617              : 
    1618              :     // style commands
    1619              :     CommandInfo{
    1620              :         LOAD_STYLE_COMMAND,
    1621              :         TranslatableString("action", "&Load style…"),
    1622              :         TranslatableString("action", "Load style"),
    1623              :         InputSchema(),
    1624              :         Decoration()
    1625              :     },
    1626              :     CommandInfo{
    1627              :         SAVE_STYLE_COMMAND,
    1628              :         TranslatableString("action", "S&ave style…"),
    1629              :         TranslatableString("action", "Save style"),
    1630              :         InputSchema(),
    1631              :         Decoration()
    1632              :     },
    1633              : 
    1634              :     // fretboard diagram commands
    1635              :     CommandInfo{
    1636              :         ADD_FRETBOARD_DIAGRAM_COMMAND,
    1637              :         TranslatableString("action", "Add &fretboard diagram"),
    1638              :         TranslatableString("action", "Add fretboard diagram"),
    1639              :         InputSchema(),
    1640              :         Decoration()
    1641              :     },
    1642              : 
    1643              :     CommandInfo{
    1644              :         ADD_OTTAVA_8VA_COMMAND,
    1645              :         TranslatableString("action", "Ottava 8va &alta"),
    1646              :         TranslatableString("action", "Add ottava 8va alta"),
    1647              :         InputSchema(),
    1648              :         Decoration()
    1649              :     },
    1650              :     CommandInfo{
    1651              :         ADD_OTTAVA_8VB_COMMAND,
    1652              :         TranslatableString("action", "Ottava 8va &bassa"),
    1653              :         TranslatableString("action", "Add ottava 8va bassa"),
    1654              :         InputSchema(),
    1655              :         Decoration()
    1656              :     },
    1657              :     CommandInfo{
    1658              :         ADD_DYNAMIC_COMMAND,
    1659              :         TranslatableString("action", "&Dynamic"),
    1660              :         TranslatableString("action", "Add dynamic"),
    1661              :         InputSchema(),
    1662              :         Decoration()
    1663              :     },
    1664              :     CommandInfo{
    1665              :         ADD_HAIRPIN_COMMAND,
    1666              :         TranslatableString("action", "&Crescendo"),
    1667              :         TranslatableString("action", "Add hairpin: crescendo"),
    1668              :         InputSchema(),
    1669              :         Decoration()
    1670              :     },
    1671              :     CommandInfo{
    1672              :         ADD_HAIRPIN_REVERSE_COMMAND,
    1673              :         TranslatableString("action", "&Diminuendo"),
    1674              :         TranslatableString("action", "Add hairpin: diminuendo"),
    1675              :         InputSchema(),
    1676              :         Decoration()
    1677              :     },
    1678              :     CommandInfo{
    1679              :         INCREASE_DYNAMIC_COMMAND,
    1680              :         TranslatableString("action", "Increase dynamics"),
    1681              :         TranslatableString("action", "Increase selected dynamics"),
    1682              :         InputSchema(),
    1683              :         Decoration()
    1684              :     },
    1685              :     CommandInfo{
    1686              :         DECREASE_DYNAMIC_COMMAND,
    1687              :         TranslatableString("action", "Decrease dynamics"),
    1688              :         TranslatableString("action", "Decrease selected dynamics"),
    1689              :         InputSchema(),
    1690              :         Decoration()
    1691              :     },
    1692              :     CommandInfo{
    1693              :         ADD_NOTELINE_COMMAND,
    1694              :         TranslatableString("action", "&Note-anchored line"),
    1695              :         TranslatableString("action", "Add note-anchored line"),
    1696              :         InputSchema(),
    1697              :         Decoration()
    1698              :     },
    1699              :     CommandInfo{
    1700              :         ADD_IMAGE_COMMAND,
    1701              :         TranslatableString("action", "Image"),
    1702              :         TranslatableString("action", "Add image"),
    1703              :         InputSchema(),
    1704              :         Decoration()
    1705              :     },
    1706              : 
    1707              :     // add text commands
    1708              :     CommandInfo{
    1709              :         ADD_TITLE_TEXT_COMMAND,
    1710              :         TranslatableString("action", "&Title"),
    1711              :         TranslatableString("action", "Add text: title"),
    1712              :         InputSchema(),
    1713              :         Decoration()
    1714              :     },
    1715              :     CommandInfo{
    1716              :         ADD_SUBTITLE_TEXT_COMMAND,
    1717              :         TranslatableString("action", "&Subtitle"),
    1718              :         TranslatableString("action", "Add text: subtitle"),
    1719              :         InputSchema(),
    1720              :         Decoration()
    1721              :     },
    1722              :     CommandInfo{
    1723              :         ADD_COMPOSER_TEXT_COMMAND,
    1724              :         TranslatableString("action", "&Composer"),
    1725              :         TranslatableString("action", "Add text: composer"),
    1726              :         InputSchema(),
    1727              :         Decoration()
    1728              :     },
    1729              :     CommandInfo{
    1730              :         ADD_LYRICIST_TEXT_COMMAND,
    1731              :         TranslatableString("action", "&Lyricist"),
    1732              :         TranslatableString("action", "Add text: lyricist"),
    1733              :         InputSchema(),
    1734              :         Decoration()
    1735              :     },
    1736              :     CommandInfo{
    1737              :         ADD_PART_TEXT_COMMAND,
    1738              :         TranslatableString("action", "&Part name"),
    1739              :         TranslatableString("action", "Add text: part name"),
    1740              :         InputSchema(),
    1741              :         Decoration()
    1742              :     },
    1743              :     CommandInfo{
    1744              :         ADD_FRAME_TEXT_COMMAND,
    1745              :         TranslatableString("action", "Text"),
    1746              :         TranslatableString("action", "Add frame text"),
    1747              :         InputSchema(),
    1748              :         Decoration()
    1749              :     },
    1750              :     CommandInfo{
    1751              :         ADD_SYSTEM_TEXT_COMMAND,
    1752              :         TranslatableString("action", "Syst&em text"),
    1753              :         TranslatableString("action", "Add text: system text"),
    1754              :         InputSchema(),
    1755              :         Decoration()
    1756              :     },
    1757              :     CommandInfo{
    1758              :         ADD_STAFF_TEXT_COMMAND,
    1759              :         TranslatableString("action", "St&aff text"),
    1760              :         TranslatableString("action", "Add text: staff text"),
    1761              :         InputSchema(),
    1762              :         Decoration()
    1763              :     },
    1764              :     CommandInfo{
    1765              :         ADD_EXPRESSION_TEXT_COMMAND,
    1766              :         TranslatableString("action", "E&xpression text"),
    1767              :         TranslatableString("action", "Add text: expression text"),
    1768              :         InputSchema(),
    1769              :         Decoration()
    1770              :     },
    1771              :     CommandInfo{
    1772              :         ADD_REHEARSALMARK_TEXT_COMMAND,
    1773              :         TranslatableString("action", "&Rehearsal mark"),
    1774              :         TranslatableString("action", "Add text: rehearsal mark"),
    1775              :         InputSchema(),
    1776              :         Decoration()
    1777              :     },
    1778              :     CommandInfo{
    1779              :         ADD_INSTRUMENT_CHANGE_TEXT_COMMAND,
    1780              :         TranslatableString("action", "&Instrument change"),
    1781              :         TranslatableString("action", "Add text: instrument change"),
    1782              :         InputSchema(),
    1783              :         Decoration()
    1784              :     },
    1785              :     CommandInfo{
    1786              :         ADD_FINGERING_TEXT_COMMAND,
    1787              :         TranslatableString("action", "&Fingering"),
    1788              :         TranslatableString("action", "Add text: fingering"),
    1789              :         InputSchema(),
    1790              :         Decoration()
    1791              :     },
    1792              :     CommandInfo{
    1793              :         ADD_STICKING_TEXT_COMMAND,
    1794              :         TranslatableString("action", "Stic&king"),
    1795              :         TranslatableString("action", "Add text: sticking"),
    1796              :         InputSchema(),
    1797              :         Decoration()
    1798              :     },
    1799              :     CommandInfo{
    1800              :         ADD_CHORD_TEXT_COMMAND,
    1801              :         TranslatableString("action", "C&hord symbol"),
    1802              :         TranslatableString("action", "Add text: chord symbol"),
    1803              :         InputSchema(),
    1804              :         Decoration()
    1805              :     },
    1806              :     CommandInfo{
    1807              :         ADD_ROMAN_NUMERAL_TEXT_COMMAND,
    1808              :         TranslatableString("action", "R&oman numeral analysis"),
    1809              :         TranslatableString("action", "Add text: Roman numeral analysis"),
    1810              :         InputSchema(),
    1811              :         Decoration()
    1812              :     },
    1813              :     CommandInfo{
    1814              :         ADD_NASHVILLE_NUMBER_TEXT_COMMAND,
    1815              :         TranslatableString("action", "&Nashville number"),
    1816              :         TranslatableString("action", "Add text: Nashville number"),
    1817              :         InputSchema(),
    1818              :         Decoration()
    1819              :     },
    1820              :     CommandInfo{
    1821              :         ADD_LYRICS_COMMAND,
    1822              :         TranslatableString("action", "L&yrics"),
    1823              :         TranslatableString("action", "Add text: lyrics"),
    1824              :         InputSchema(),
    1825              :         Decoration()
    1826              :     },
    1827              :     CommandInfo{
    1828              :         ADD_FIGURED_BASS_COMMAND,
    1829              :         TranslatableString("action", "Figured &bass"),
    1830              :         TranslatableString("action", "Add text: figured bass"),
    1831              :         InputSchema(),
    1832              :         Decoration()
    1833              :     },
    1834              :     CommandInfo{
    1835              :         ADD_TEMPO_COMMAND,
    1836              :         TranslatableString("action", "Tempo &marking"),
    1837              :         TranslatableString("action", "Add text: tempo marking"),
    1838              :         InputSchema(),
    1839              :         Decoration()
    1840              :     },
    1841              : 
    1842              :     // layout commands: stretch
    1843              :     CommandInfo{
    1844              :         STRETCH_DECREASE_COMMAND,
    1845              :         TranslatableString("action", "&Decrease layout stretch"),
    1846              :         TranslatableString("action", "Decrease layout stretch"),
    1847              :         InputSchema(),
    1848              :         Decoration()
    1849              :     },
    1850              :     CommandInfo{
    1851              :         STRETCH_INCREASE_COMMAND,
    1852              :         TranslatableString("action", "&Increase layout stretch"),
    1853              :         TranslatableString("action", "Increase layout stretch"),
    1854              :         InputSchema(),
    1855              :         Decoration()
    1856              :     },
    1857              :     CommandInfo{
    1858              :         STRETCH_RESET_COMMAND,
    1859              :         TranslatableString("action", "&Reset layout stretch"),
    1860              :         TranslatableString("action", "Reset layout stretch"),
    1861              :         InputSchema(),
    1862              :         Decoration()
    1863              :     },
    1864              :     CommandInfo{
    1865              :         RESET_TEXT_STYLE_OVERRIDES_COMMAND,
    1866              :         TranslatableString("action", "Reset &text style overrides"),
    1867              :         TranslatableString("action", "Reset all text style overrides to default"),
    1868              :         InputSchema(),
    1869              :         Decoration()
    1870              :     },
    1871              :     CommandInfo{
    1872              :         RESET_BEAMS_COMMAND,
    1873              :         TranslatableString("action", "Reset &beams"),
    1874              :         TranslatableString("action", "Reset beams to default grouping"),
    1875              :         InputSchema(),
    1876              :         Decoration()
    1877              :     },
    1878              :     CommandInfo{
    1879              :         RESET_SHAPES_AND_POSITIONS_COMMAND,
    1880              :         TranslatableString("action", "Reset s&hapes and positions"),
    1881              :         TranslatableString("action", "Reset shapes and positions"),
    1882              :         InputSchema(),
    1883              :         Decoration()
    1884              :     },
    1885              :     CommandInfo{
    1886              :         RESET_TO_DEFAULT_LAYOUT_COMMAND,
    1887              :         TranslatableString("action", "Reset entire score to &default layout"),
    1888              :         TranslatableString("action", "Reset entire score to default layout"),
    1889              :         InputSchema(),
    1890              :         Decoration()
    1891              :     },
    1892              : 
    1893              :     // appearance commands
    1894              :     CommandInfo{
    1895              :         FREEZE_CURRENT_PLACEMENT_COMMAND,
    1896              :         TranslatableString("action", "Freeze current placement"),
    1897              :         TranslatableString("action", "Turn off auto-place and freeze the selection’s current position"),
    1898              :         InputSchema(),
    1899              :         Decoration()
    1900              :     },
    1901              : 
    1902              :     // show commands
    1903              :     CommandInfo{
    1904              :         SHOW_INVISIBLE_COMMAND,
    1905              :         TranslatableString("action", "Show &invisible"),
    1906              :         TranslatableString("action", "Show/hide invisible elements"),
    1907              :         InputSchema(),
    1908              :         Decoration(rcommand::Checkable::Yes)
    1909              :     },
    1910              :     CommandInfo{
    1911              :         SHOW_UNPRINTABLE_COMMAND,
    1912              :         TranslatableString("action", "Show f&ormatting"),
    1913              :         TranslatableString("action", "Show/hide formatting"),
    1914              :         InputSchema(),
    1915              :         Decoration(rcommand::Checkable::Yes)
    1916              :     },
    1917              :     CommandInfo{
    1918              :         SHOW_FRAMES_COMMAND,
    1919              :         TranslatableString("action", "Show &frames"),
    1920              :         TranslatableString("action", "Show/hide frames"),
    1921              :         InputSchema(),
    1922              :         Decoration(rcommand::Checkable::Yes)
    1923              :     },
    1924              :     CommandInfo{
    1925              :         SHOW_PAGEBORDERS_COMMAND,
    1926              :         TranslatableString("action", "Show page &margins"),
    1927              :         TranslatableString("action", "Show/hide page margins"),
    1928              :         InputSchema(),
    1929              :         Decoration(rcommand::Checkable::Yes)
    1930              :     },
    1931              :     CommandInfo{
    1932              :         SHOW_SOUNDFLAGS_COMMAND,
    1933              :         TranslatableString("action", "Show sound flags"), // todo &
    1934              :         TranslatableString("action", "Show/hide sound flags"),
    1935              :         InputSchema(),
    1936              :         Decoration(rcommand::Checkable::Yes)
    1937              :     },
    1938              :     CommandInfo{
    1939              :         SHOW_IRREGULAR_COMMAND,
    1940              :         TranslatableString("action", "Mark i&rregular measures"),
    1941              :         TranslatableString("action", "Mark irregular measures"),
    1942              :         InputSchema(),
    1943              :         Decoration(rcommand::Checkable::Yes)
    1944              :     },
    1945              :     CommandInfo{
    1946              :         TOGGLE_CONCERT_PITCH_COMMAND,
    1947              :         TranslatableString("action", "Concert pitch"),
    1948              :         TranslatableString("action", "Toggle concert pitch"),
    1949              :         InputSchema(),
    1950              :         Decoration(IconCode::Code::TUNING_FORK, rcommand::Checkable::Yes)
    1951              :     },
    1952              :     CommandInfo{
    1953              :         STAFF_EXPLODE_COMMAND,
    1954              :         TranslatableString("action", "&Explode"),
    1955              :         TranslatableString("action", "Explode"),
    1956              :         InputSchema(),
    1957              :         Decoration()
    1958              :     },
    1959              :     CommandInfo{
    1960              :         STAFF_IMPLODE_COMMAND,
    1961              :         TranslatableString("action", "&Implode"),
    1962              :         TranslatableString("action", "Implode"),
    1963              :         InputSchema(),
    1964              :         Decoration()
    1965              :     },
    1966              : 
    1967              :     // add grace notes commands
    1968              :     CommandInfo{
    1969              :         ADD_ACCIACCATURA_COMMAND,
    1970              :         TranslatableString("action", "Acciaccatura"),
    1971              :         TranslatableString("action", "Add grace note: acciaccatura"),
    1972              :         InputSchema(),
    1973              :         Decoration(IconCode::Code::ACCIACCATURA)
    1974              :     },
    1975              :     CommandInfo{
    1976              :         ADD_APPOGGIATURA_COMMAND,
    1977              :         TranslatableString("action", "Appoggiatura"),
    1978              :         TranslatableString("action", "Add grace note: appoggiatura"),
    1979              :         InputSchema(),
    1980              :         Decoration(IconCode::Code::APPOGGIATURA)
    1981              :     },
    1982              :     CommandInfo{
    1983              :         ADD_GRACE4_COMMAND,
    1984              :         TranslatableString("action", "Grace: quarter"),
    1985              :         TranslatableString("action", "Add grace note: quarter"),
    1986              :         InputSchema(),
    1987              :         Decoration(IconCode::Code::GRACE4)
    1988              :     },
    1989              :     CommandInfo{
    1990              :         ADD_GRACE16_COMMAND,
    1991              :         TranslatableString("action", "Grace: 16th"),
    1992              :         TranslatableString("action", "Add grace note: 16th"),
    1993              :         InputSchema(),
    1994              :         Decoration(IconCode::Code::GRACE16)
    1995              :     },
    1996              :     CommandInfo{
    1997              :         ADD_GRACE32_COMMAND,
    1998              :         TranslatableString("action", "Grace: 32nd"),
    1999              :         TranslatableString("action", "Add grace note: 32nd"),
    2000              :         InputSchema(),
    2001              :         Decoration(IconCode::Code::GRACE32)
    2002              :     },
    2003              :     CommandInfo{
    2004              :         ADD_GRACE8_AFTER_COMMAND,
    2005              :         TranslatableString("action", "Grace: 8th after"),
    2006              :         TranslatableString("action", "Add grace note: eighth after"),
    2007              :         InputSchema(),
    2008              :         Decoration(IconCode::Code::GRACE8_AFTER)
    2009              :     },
    2010              :     CommandInfo{
    2011              :         ADD_GRACE16_AFTER_COMMAND,
    2012              :         TranslatableString("action", "Grace: 16th after"),
    2013              :         TranslatableString("action", "Add grace note: 16th after"),
    2014              :         InputSchema(),
    2015              :         Decoration(IconCode::Code::GRACE16_AFTER)
    2016              :     },
    2017              :     CommandInfo{
    2018              :         ADD_GRACE32_AFTER_COMMAND,
    2019              :         TranslatableString("action", "Grace: 32nd after"),
    2020              :         TranslatableString("action", "Add grace note: 32nd after"),
    2021              :         InputSchema(),
    2022              :         Decoration(IconCode::Code::GRACE32_AFTER)
    2023              :     },
    2024              : 
    2025              :     // add beam commands
    2026              :     CommandInfo{
    2027              :         ADD_BEAM_AUTO_COMMAND,
    2028              :         TranslatableString("action", "Auto beam"),
    2029              :         TranslatableString("action", "Add beam: auto"),
    2030              :         InputSchema(),
    2031              :         Decoration(IconCode::Code::AUTO_TEXT)
    2032              :     },
    2033              :     CommandInfo{
    2034              :         ADD_BEAM_NONE_COMMAND,
    2035              :         TranslatableString("action", "No beam"),
    2036              :         TranslatableString("action", "Add beam: none"),
    2037              :         InputSchema(),
    2038              :         Decoration(IconCode::Code::BEAM_NONE)
    2039              :     },
    2040              :     CommandInfo{
    2041              :         ADD_BEAM_BEGIN_COMMAND,
    2042              :         TranslatableString("action", "Break beam left"),
    2043              :         TranslatableString("action", "Break beam left"),
    2044              :         InputSchema(),
    2045              :         Decoration(IconCode::Code::BEAM_BREAK_LEFT)
    2046              :     },
    2047              :     CommandInfo{
    2048              :         ADD_BEAM_BEGIN16_COMMAND,
    2049              :         TranslatableString("action", "Break inner beams (8th)"),
    2050              :         TranslatableString("action", "Break inner beams (eighth)"),
    2051              :         InputSchema(),
    2052              :         Decoration(IconCode::Code::BEAM_BREAK_INNER_8TH)
    2053              :     },
    2054              :     CommandInfo{
    2055              :         ADD_BEAM_BEGIN32_COMMAND,
    2056              :         TranslatableString("action", "Break inner beams (16th)"),
    2057              :         TranslatableString("action", "Break inner beams (16th)"),
    2058              :         InputSchema(),
    2059              :         Decoration(IconCode::Code::BEAM_BREAK_INNER_16TH)
    2060              :     },
    2061              :     CommandInfo{
    2062              :         ADD_BEAM_MID_COMMAND,
    2063              :         TranslatableString("action", "Join beams"),
    2064              :         TranslatableString("action", "Join beams"),
    2065              :         InputSchema(),
    2066              :         Decoration(IconCode::Code::BEAM_JOIN)
    2067              :     },
    2068              :     CommandInfo{
    2069              :         ADD_BEAM_SELECTED_RANGE_COMMAND,
    2070              :         TranslatableString("action", "Beam selected range"),
    2071              :         TranslatableString("action", "Beam selected range"),
    2072              :         InputSchema(),
    2073              :         Decoration()
    2074              :     },
    2075              : 
    2076              :     // add brackets commands
    2077              :     CommandInfo{
    2078              :         ADD_BRACKETS_COMMAND,
    2079              :         TranslatableString("action", "Add brackets to accidental"),
    2080              :         TranslatableString("action", "Add brackets to accidental"),
    2081              :         InputSchema(),
    2082              :         Decoration(IconCode::Code::BRACKET_PARENTHESES_SQUARE)
    2083              :     },
    2084              :     CommandInfo{
    2085              :         ADD_BRACES_COMMAND,
    2086              :         TranslatableString("action", "Add braces to element"),
    2087              :         TranslatableString("action", "Add braces to element"),
    2088              :         InputSchema(),
    2089              :         Decoration(IconCode::Code::BRACE)
    2090              :     },
    2091              :     CommandInfo{
    2092              :         ADD_PARENTHESES_COMMAND,
    2093              :         TranslatableString("action", "Add parentheses to element"),
    2094              :         TranslatableString("action", "Add parentheses to element"),
    2095              :         InputSchema(),
    2096              :         Decoration(IconCode::Code::BRACKET_PARENTHESES)
    2097              :     },
    2098              : 
    2099              :     // add ornament commands
    2100              :     CommandInfo{
    2101              :         ADD_TURN_COMMAND,
    2102              :         TranslatableString("action", "Toggle turn"),
    2103              :         TranslatableString("action", "Add ornament: turn"),
    2104              :         InputSchema(),
    2105              :         Decoration()
    2106              :     },
    2107              :     CommandInfo{
    2108              :         ADD_TURN_INVERTED_COMMAND,
    2109              :         TranslatableString("action", "Toggle inverted turn"),
    2110              :         TranslatableString("action", "Add ornament: inverted turn"),
    2111              :         InputSchema(),
    2112              :         Decoration()
    2113              :     },
    2114              :     CommandInfo{
    2115              :         ADD_TURN_SLASH_COMMAND,
    2116              :         TranslatableString("action", "Toggle turn with slash"),
    2117              :         TranslatableString("action", "Add ornament: turn with slash"),
    2118              :         InputSchema(),
    2119              :         Decoration()
    2120              :     },
    2121              : 
    2122              :     CommandInfo{
    2123              :         ADD_TURN_UP_COMMAND,
    2124              :         TranslatableString("action", "Toggle turn up"),
    2125              :         TranslatableString("action", "Add ornament: turn up"),
    2126              :         InputSchema(),
    2127              :         Decoration()
    2128              :     },
    2129              :     CommandInfo{
    2130              :         ADD_TURN_INVERTED_UP_COMMAND,
    2131              :         TranslatableString("action", "Toggle vertical inverted turn"),
    2132              :         TranslatableString("action", "Add ornament: vertical inverted turn"),
    2133              :         InputSchema(),
    2134              :         Decoration()
    2135              :     },
    2136              :     CommandInfo{
    2137              :         ADD_TRILL_COMMAND,
    2138              :         TranslatableString("action", "Toggle trill"),
    2139              :         TranslatableString("action", "Add ornament: trill"),
    2140              :         InputSchema(),
    2141              :         Decoration()
    2142              :     },
    2143              :     CommandInfo{
    2144              :         ADD_SHORT_TRILL_COMMAND,
    2145              :         TranslatableString("action", "Toggle short trill"),
    2146              :         TranslatableString("action", "Add ornament: short trill"),
    2147              :         InputSchema(),
    2148              :         Decoration()
    2149              :     },
    2150              :     CommandInfo{
    2151              :         ADD_MORDENT_COMMAND,
    2152              :         TranslatableString("action", "Toggle mordent"),
    2153              :         TranslatableString("action", "Add ornament: mordent"),
    2154              :         InputSchema(),
    2155              :         Decoration()
    2156              :     },
    2157              :     CommandInfo{
    2158              :         ADD_HAYDN_COMMAND,
    2159              :         TranslatableString("action", "Toggle Haydn ornament"),
    2160              :         TranslatableString("action", "Add ornament: Haydn ornament"),
    2161              :         InputSchema(),
    2162              :         Decoration()
    2163              :     },
    2164              :     CommandInfo{
    2165              :         ADD_TREMBLEMENT_COMMAND,
    2166              :         TranslatableString("action", "Toggle tremblement"),
    2167              :         TranslatableString("action", "Add ornament: tremblement"),
    2168              :         InputSchema(),
    2169              :         Decoration()
    2170              :     },
    2171              :     CommandInfo{
    2172              :         ADD_PRALL_MORDENT_COMMAND,
    2173              :         TranslatableString("action", "Toggle prall mordent"),
    2174              :         TranslatableString("action", "Add ornament: prall mordent"),
    2175              :         InputSchema(),
    2176              :         Decoration()
    2177              :     },
    2178              :     CommandInfo{
    2179              :         ADD_SHAKE_COMMAND,
    2180              :         TranslatableString("action", "Toggle shake"),
    2181              :         TranslatableString("action", "Add ornament: shake"),
    2182              :         InputSchema(),
    2183              :         Decoration()
    2184              :     },
    2185              :     CommandInfo{
    2186              :         ADD_SHAKE_MUFFAT_COMMAND,
    2187              :         TranslatableString("action", "Toggle shake (Muffat)"),
    2188              :         TranslatableString("action", "Add ornament: shake (Muffat)"),
    2189              :         InputSchema(),
    2190              :         Decoration()
    2191              :     },
    2192              :     CommandInfo{
    2193              :         ADD_TREMBLEMENT_COUPERIN_COMMAND,
    2194              :         TranslatableString("action", "Toggle tremblement appuyé (Couperin)"),
    2195              :         TranslatableString("action", "Add ornament: tremblement appuyé (Couperin)"),
    2196              :         InputSchema(),
    2197              :         Decoration()
    2198              :     },
    2199              : 
    2200              :     // text editing commands
    2201              :     CommandInfo{
    2202              :         EDITTEXT_TOGGLE_BOLD_COMMAND,
    2203              :         TranslatableString("action", "Toggle bold"),
    2204              :         TranslatableString("action", "Toggle bold"),
    2205              :         InputSchema(),
    2206              :         Decoration()
    2207              :     },
    2208              :     CommandInfo{
    2209              :         EDITTEXT_TOGGLE_ITALIC_COMMAND,
    2210              :         TranslatableString("action", "Toggle italic"),
    2211              :         TranslatableString("action", "Toggle italic"),
    2212              :         InputSchema(),
    2213              :         Decoration()
    2214              :     },
    2215              :     CommandInfo{
    2216              :         EDITTEXT_TOGGLE_UNDERLINE_COMMAND,
    2217              :         TranslatableString("action", "Toggle underline"),
    2218              :         TranslatableString("action", "Toggle underline"),
    2219              :         InputSchema(),
    2220              :         Decoration()
    2221              :     },
    2222              :     CommandInfo{
    2223              :         EDITTEXT_TOGGLE_STRIKE_COMMAND,
    2224              :         TranslatableString("action", "Toggle strike"),
    2225              :         TranslatableString("action", "Toggle strike"),
    2226              :         InputSchema(),
    2227              :         Decoration()
    2228              :     },
    2229              :     CommandInfo{
    2230              :         EDITTEXT_TOGGLE_SUBSCRIPT_COMMAND,
    2231              :         TranslatableString("action", "Toggle subscript"),
    2232              :         TranslatableString("action", "Toggle subscript"),
    2233              :         InputSchema(),
    2234              :         Decoration()
    2235              :     },
    2236              :     CommandInfo{
    2237              :         EDITTEXT_TOGGLE_SUPERSCRIPT_COMMAND,
    2238              :         TranslatableString("action", "Toggle superscript"),
    2239              :         TranslatableString("action", "Toggle superscript"),
    2240              :         InputSchema(),
    2241              :         Decoration()
    2242              :     },
    2243              : 
    2244              :     // add to selection commands
    2245              :     CommandInfo{
    2246              :         ADD_TO_SELECTION_NEXT_CHORD_COMMAND,
    2247              :         TranslatableString("action", "Add next chord to selection"),
    2248              :         TranslatableString("action", "Add to selection: next note/rest"),
    2249              :         InputSchema(),
    2250              :         Decoration()
    2251              :     },
    2252              :     CommandInfo{
    2253              :         ADD_TO_SELECTION_PREV_CHORD_COMMAND,
    2254              :         TranslatableString("action", "Add previous chord to selection"),
    2255              :         TranslatableString("action", "Add to selection: previous note/rest"),
    2256              :         InputSchema(),
    2257              :         Decoration()
    2258              :     },
    2259              :     CommandInfo{
    2260              :         ADD_TO_SELECTION_NEXT_MEASURE_COMMAND,
    2261              :         TranslatableString("action", "Add next measure to selection"),
    2262              :         TranslatableString("action", "Add to selection: next measure"),
    2263              :         InputSchema(),
    2264              :         Decoration()
    2265              :     },
    2266              :     CommandInfo{
    2267              :         ADD_TO_SELECTION_PREV_MEASURE_COMMAND,
    2268              :         TranslatableString("action", "Add previous measure to selection"),
    2269              :         TranslatableString("action", "Add to selection: previous measure"),
    2270              :         InputSchema(),
    2271              :         Decoration()
    2272              :     },
    2273              :     CommandInfo{
    2274              :         ADD_TO_SELECTION_ABOVE_STAFF_COMMAND,
    2275              :         TranslatableString("action", "Add staff above to selection"),
    2276              :         TranslatableString("action", "Add to selection: staff above"),
    2277              :         InputSchema(),
    2278              :         Decoration()
    2279              :     },
    2280              :     CommandInfo{
    2281              :         ADD_TO_SELECTION_BELOW_STAFF_COMMAND,
    2282              :         TranslatableString("action", "Add staff below to selection"),
    2283              :         TranslatableString("action", "Add to selection: staff below"),
    2284              :         InputSchema(),
    2285              :         Decoration()
    2286              :     },
    2287              :     CommandInfo{
    2288              :         ADD_TO_SELECTION_BEGIN_SYSTEM_COMMAND,
    2289              :         TranslatableString("action", "Select to beginning of system"),
    2290              :         TranslatableString("action", "Add to selection: beginning of system"),
    2291              :         InputSchema(),
    2292              :         Decoration()
    2293              :     },
    2294              :     CommandInfo{
    2295              :         ADD_TO_SELECTION_END_SYSTEM_COMMAND,
    2296              :         TranslatableString("action", "Select to end of system"),
    2297              :         TranslatableString("action", "Add to selection: end of system"),
    2298              :         InputSchema(),
    2299              :         Decoration()
    2300              :     },
    2301              :     CommandInfo{
    2302              :         ADD_TO_SELECTION_BEGIN_SCORE_COMMAND,
    2303              :         TranslatableString("action", "Select to beginning of score"),
    2304              :         TranslatableString("action", "Add to selection: beginning of score"),
    2305              :         InputSchema(),
    2306              :         Decoration()
    2307              :     },
    2308              :     CommandInfo{
    2309              :         ADD_TO_SELECTION_END_SCORE_COMMAND,
    2310              :         TranslatableString("action", "Select to end of score"),
    2311              :         TranslatableString("action", "Add to selection: end of score"),
    2312              :         InputSchema(),
    2313              :         Decoration()
    2314              :     },
    2315              :     CommandInfo{
    2316              :         EXTEND_TO_NEXT_NOTE_COMMAND,
    2317              :         TranslatableString("action", "Extend to next note"),
    2318              :         TranslatableString("action", "Extend to next note"),
    2319              :         InputSchema(),
    2320              :         Decoration()
    2321              :     },
    2322              :     CommandInfo{
    2323              :         REMOVE_SELECTED_RANGE_COMMAND,
    2324              :         TranslatableString("action", "Remove selected ran&ge"),
    2325              :         TranslatableString("action", "Delete selected measures"),
    2326              :         InputSchema(),
    2327              :         Decoration(IconCode::Code::DELETE_TANK)
    2328              :     },
    2329              :     CommandInfo{
    2330              :         REMOVE_EMPTY_TRAILING_MEASURES_COMMAND,
    2331              :         TranslatableString("action", "Remove empty trailing meas&ures"),
    2332              :         TranslatableString("action", "Remove empty trailing measures"),
    2333              :         InputSchema(),
    2334              :         Decoration()
    2335              :     },
    2336              :     CommandInfo{
    2337              :         SLASH_FILL_COMMAND,
    2338              :         TranslatableString("action", "Fill with &slashes"),
    2339              :         TranslatableString("action", "Fill with slashes"),
    2340              :         InputSchema(),
    2341              :         Decoration()
    2342              :     },
    2343              :     CommandInfo{
    2344              :         SLASH_RHYTHM_COMMAND,
    2345              :         TranslatableString("action", "Toggle rhythmic sl&ash notation"),
    2346              :         TranslatableString("action", "Toggle rhythmic slash notation"),
    2347              :         InputSchema(),
    2348              :         Decoration()
    2349              :     },
    2350              :     CommandInfo{
    2351              :         PITCH_SPELL_COMMAND,
    2352              :         TranslatableString("action", "&Optimize enharmonic spelling"),
    2353              :         TranslatableString("action", "Optimize enharmonic spelling"),
    2354              :         InputSchema(),
    2355              :         Decoration()
    2356              :     },
    2357              :     CommandInfo{
    2358              :         PITCH_SPELL_SHARPS_COMMAND,
    2359              :         TranslatableString("action", "Respell pitches with &sharps"),
    2360              :         TranslatableString("action", "Respell pitches with sharps"),
    2361              :         InputSchema(),
    2362              :         Decoration()
    2363              :     },
    2364              :     CommandInfo{
    2365              :         PITCH_SPELL_FLATS_COMMAND,
    2366              :         TranslatableString("action", "Respell pitches with &flats"),
    2367              :         TranslatableString("action", "Respell pitches with flats"),
    2368              :         InputSchema(),
    2369              :         Decoration()
    2370              :     },
    2371              :     CommandInfo{
    2372              :         ENHARMONIC_SPELL_BOTH_COMMAND,
    2373              :         TranslatableString("action", "Change enharmonic spelling (concert and transposed &pitch)"),
    2374              :         TranslatableString("action", "Change enharmonic spelling (concert and transposed pitch)"),
    2375              :         InputSchema(),
    2376              :         Decoration()
    2377              :     },
    2378              :     CommandInfo{
    2379              :         ENHARMONIC_SPELL_CURRENT_COMMAND,
    2380              :         TranslatableString("action", "Change enharmonic spelling (&current pitch mode only)"),
    2381              :         TranslatableString("action", "Change enharmonic spelling (current pitch mode only)"),
    2382              :         InputSchema(),
    2383              :         Decoration()
    2384              :     },
    2385              : 
    2386              :     CommandInfo{
    2387              :         REGROUP_RHYTHMS_COMMAND,
    2388              :         TranslatableString("action", "Regroup &rhythms"),
    2389              :         TranslatableString("action", "Regroup rhythms"),
    2390              :         InputSchema(),
    2391              :         Decoration()
    2392              :     },
    2393              :     CommandInfo{
    2394              :         RESEQUENCE_REHEARSAL_MARKS_COMMAND,
    2395              :         TranslatableString("action", "Resequence re&hearsal marks"),
    2396              :         TranslatableString("action", "Resequence rehearsal marks"),
    2397              :         InputSchema(),
    2398              :         Decoration()
    2399              :     },
    2400              :     CommandInfo{
    2401              :         UNROLL_REPEATS_COMMAND,
    2402              :         TranslatableString("action", "U&nroll repeats"),
    2403              :         TranslatableString("action", "Unroll repeats"),
    2404              :         InputSchema(),
    2405              :         Decoration()
    2406              :     },
    2407              :     CommandInfo{
    2408              :         COPY_LYRICS_COMMAND,
    2409              :         TranslatableString("action", "Copy &lyrics to clipboard"),
    2410              :         TranslatableString("action", "Copy lyrics"),
    2411              :         InputSchema(),
    2412              :         Decoration()
    2413              :     },
    2414              :     CommandInfo{
    2415              :         REPEAT_SELECTION_COMMAND,
    2416              :         TranslatableString("action", "Repeat selection"),
    2417              :         TranslatableString("action", "Repeat selection"),
    2418              :         InputSchema(),
    2419              :         Decoration()
    2420              :     },
    2421              : 
    2422              :     CommandInfo{
    2423              :         ADD_UP_BOW_COMMAND,
    2424              :         TranslatableString("action", "Toggle up bow"),
    2425              :         TranslatableString("action", "Add bowing: up bow"),
    2426              :         InputSchema(),
    2427              :         Decoration()
    2428              :     },
    2429              :     CommandInfo{
    2430              :         ADD_DOWN_BOW_COMMAND,
    2431              :         TranslatableString("action", "Toggle down bow"),
    2432              :         TranslatableString("action", "Add bowing: down bow"),
    2433              :         InputSchema(),
    2434              :         Decoration()
    2435              :     },
    2436              :     CommandInfo{
    2437              :         TRANSPOSE_UP_COMMAND,
    2438              :         TranslatableString("action", "Transpose up"),
    2439              :         TranslatableString("action", "Transpose up a semitone"),
    2440              :         InputSchema(),
    2441              :         Decoration()
    2442              :     },
    2443              :     CommandInfo{
    2444              :         TRANSPOSE_DOWN_COMMAND,
    2445              :         TranslatableString("action", "Transpose down"),
    2446              :         TranslatableString("action", "Transpose down a semitone"),
    2447              :         InputSchema(),
    2448              :         Decoration()
    2449              :     },
    2450              :     CommandInfo{
    2451              :         TOGGLE_MMREST_COMMAND,
    2452              :         TranslatableString("action", "Toggle multimeasure rests"),
    2453              :         TranslatableString("action", "Toggle multimeasure rests"),
    2454              :         InputSchema(),
    2455              :         Decoration()
    2456              :     },
    2457              :     CommandInfo{
    2458              :         TOGGLE_HIDE_EMPTY_COMMAND,
    2459              :         TranslatableString("action", "Toggle empty staves"),
    2460              :         TranslatableString("action", "Show/hide empty staves"),
    2461              :         InputSchema(),
    2462              :         Decoration()
    2463              :     },
    2464              :     CommandInfo{
    2465              :         MIRROR_NOTEHEAD_COMMAND,
    2466              :         TranslatableString("action", "Mirror notehead"),
    2467              :         TranslatableString("action", "Mirror notehead"),
    2468              :         InputSchema(),
    2469              :         Decoration()
    2470              :     },
    2471              : 
    2472              :     // clef commands
    2473              :     CommandInfo{
    2474              :         ADD_CLEF_VIOLIN_COMMAND,
    2475              :         TranslatableString("action", "Add treble clef"),
    2476              :         TranslatableString("action", "Add clef: treble"),
    2477              :         InputSchema(),
    2478              :         Decoration()
    2479              :     },
    2480              :     CommandInfo{
    2481              :         ADD_CLEF_BASS_COMMAND,
    2482              :         TranslatableString("action", "Add bass clef"),
    2483              :         TranslatableString("action", "Add clef: bass"),
    2484              :         InputSchema(),
    2485              :         Decoration()
    2486              :     },
    2487              : 
    2488              :     CommandInfo{
    2489              :         SET_VISIBLE_COMMAND,
    2490              :         TranslatableString("action", "Set visible"),
    2491              :         TranslatableString("action", "Make selected element(s) visible"),
    2492              :         InputSchema(),
    2493              :         Decoration()
    2494              :     },
    2495              :     CommandInfo{
    2496              :         UNSET_VISIBLE_COMMAND,
    2497              :         TranslatableString("action", "Set invisible"),
    2498              :         TranslatableString("action", "Make selected element(s) invisible"),
    2499              :         InputSchema(),
    2500              :         Decoration()
    2501              :     },
    2502              :     CommandInfo{
    2503              :         TOGGLE_AUTOPLACE_COMMAND,
    2504              :         TranslatableString("action", "Toggle automatic placement for selected elements"),
    2505              :         TranslatableString("action", "Toggle automatic placement for selected elements"),
    2506              :         InputSchema(),
    2507              :         Decoration()
    2508              :     },
    2509              :     CommandInfo{
    2510              :         AUTOPLACE_ENABLED_COMMAND,
    2511              :         TranslatableString("action", "Toggle automatic placement for entire score"),
    2512              :         TranslatableString("action", "Toggle automatic placement for entire score"),
    2513              :         InputSchema(),
    2514              :         Decoration()
    2515              :     },
    2516              :     CommandInfo{
    2517              :         ADD_FULL_MEASURE_REST_COMMAND,
    2518              :         TranslatableString("action", "Full measure rest"),
    2519              :         TranslatableString("action", "Insert full measure rest"),
    2520              :         InputSchema(),
    2521              :         Decoration()
    2522              :     },
    2523              : 
    2524              :     // interval commands
    2525              :     CommandInfo{
    2526              :         ADD_INTERVAL_PLUS_1_COMMAND,
    2527              :         TranslatableString("action", "&Unison"),
    2528              :         TranslatableString("action", "Enter interval: unison"),
    2529              :         InputSchema(),
    2530              :         Decoration()
    2531              :     },
    2532              :     CommandInfo{
    2533              :         ADD_INTERVAL_PLUS_2_COMMAND,
    2534              :         TranslatableString("action", "Se&cond above"),
    2535              :         TranslatableString("action", "Enter interval: second above"),
    2536              :         InputSchema(),
    2537              :         Decoration()
    2538              :     },
    2539              :     CommandInfo{
    2540              :         ADD_INTERVAL_PLUS_3_COMMAND,
    2541              :         TranslatableString("action", "Thir&d above"),
    2542              :         TranslatableString("action", "Enter interval: third above"),
    2543              :         InputSchema(),
    2544              :         Decoration()
    2545              :     },
    2546              :     CommandInfo{
    2547              :         ADD_INTERVAL_PLUS_4_COMMAND,
    2548              :         TranslatableString("action", "Fou&rth above"),
    2549              :         TranslatableString("action", "Enter interval: fourth above"),
    2550              :         InputSchema(),
    2551              :         Decoration()
    2552              :     },
    2553              :     CommandInfo{
    2554              :         ADD_INTERVAL_PLUS_5_COMMAND,
    2555              :         TranslatableString("action", "Fift&h above"),
    2556              :         TranslatableString("action", "Enter interval: fifth above"),
    2557              :         InputSchema(),
    2558              :         Decoration()
    2559              :     },
    2560              :     CommandInfo{
    2561              :         ADD_INTERVAL_PLUS_6_COMMAND,
    2562              :         TranslatableString("action", "Si&xth above"),
    2563              :         TranslatableString("action", "Enter interval: sixth above"),
    2564              :         InputSchema(),
    2565              :         Decoration()
    2566              :     },
    2567              :     CommandInfo{
    2568              :         ADD_INTERVAL_PLUS_7_COMMAND,
    2569              :         TranslatableString("action", "Seve&nth above"),
    2570              :         TranslatableString("action", "Enter interval: seventh above"),
    2571              :         InputSchema(),
    2572              :         Decoration()
    2573              :     },
    2574              :     CommandInfo{
    2575              :         ADD_INTERVAL_PLUS_8_COMMAND,
    2576              :         TranslatableString("action", "Octave &above"),
    2577              :         TranslatableString("action", "Enter interval: octave above"),
    2578              :         InputSchema(),
    2579              :         Decoration()
    2580              :     },
    2581              :     CommandInfo{
    2582              :         ADD_INTERVAL_PLUS_9_COMMAND,
    2583              :         TranslatableString("action", "Ninth abov&e"),
    2584              :         TranslatableString("action", "Enter interval: ninth above"),
    2585              : 
    2586              :         InputSchema(),
    2587              :         Decoration()
    2588              :     },
    2589              :     CommandInfo{
    2590              :         ADD_INTERVAL_PLUS_10_COMMAND,
    2591              :         TranslatableString("action", "Tenth above"),
    2592              :         TranslatableString("action", "Enter interval: tenth above"),
    2593              :         InputSchema(),
    2594              :         Decoration()
    2595              :     },
    2596              :     CommandInfo{
    2597              :         ADD_INTERVAL_MINUS_2_COMMAND,
    2598              :         TranslatableString("action", "&Second below"),
    2599              :         TranslatableString("action", "Enter interval: second below"),
    2600              :         InputSchema(),
    2601              :         Decoration()
    2602              :     },
    2603              :     CommandInfo{
    2604              :         ADD_INTERVAL_MINUS_3_COMMAND,
    2605              :         TranslatableString("action", "&Third below"),
    2606              :         TranslatableString("action", "Enter interval: third below"),
    2607              :         InputSchema(),
    2608              :         Decoration()
    2609              :     },
    2610              :     CommandInfo{
    2611              :         ADD_INTERVAL_MINUS_4_COMMAND,
    2612              :         TranslatableString("action", "F&ourth below"),
    2613              :         TranslatableString("action", "Enter interval: fourth below"),
    2614              :         InputSchema(),
    2615              :         Decoration()
    2616              :     },
    2617              :     CommandInfo{
    2618              :         ADD_INTERVAL_MINUS_5_COMMAND,
    2619              :         TranslatableString("action", "&Fifth below"),
    2620              :         TranslatableString("action", "Enter interval: fifth below"),
    2621              :         InputSchema(),
    2622              :         Decoration()
    2623              :     },
    2624              :     CommandInfo{
    2625              :         ADD_INTERVAL_MINUS_6_COMMAND,
    2626              :         TranslatableString("action", "S&ixth below"),
    2627              :         TranslatableString("action", "Enter interval: sixth below"),
    2628              :         InputSchema(),
    2629              :         Decoration()
    2630              :     },
    2631              :     CommandInfo{
    2632              :         ADD_INTERVAL_MINUS_7_COMMAND,
    2633              :         TranslatableString("action", "Se&venth below"),
    2634              :         TranslatableString("action", "Enter interval: seventh below"),
    2635              :         InputSchema(),
    2636              :         Decoration()
    2637              :     },
    2638              :     CommandInfo{
    2639              :         ADD_INTERVAL_MINUS_8_COMMAND,
    2640              :         TranslatableString("action", "Octave &below"),
    2641              :         TranslatableString("action", "Enter interval: octave below"),
    2642              :         InputSchema(),
    2643              :         Decoration()
    2644              :     },
    2645              :     CommandInfo{
    2646              :         ADD_INTERVAL_MINUS_9_COMMAND,
    2647              :         TranslatableString("action", "Ninth belo&w"),
    2648              :         TranslatableString("action", "Enter interval: ninth below"),
    2649              :         InputSchema(),
    2650              :         Decoration()
    2651              :     },
    2652              :     CommandInfo{
    2653              :         ADD_INTERVAL_MINUS_10_COMMAND,
    2654              :         TranslatableString("action", "Tenth below"),
    2655              :         TranslatableString("action", "Enter interval: tenth below"),
    2656              :         InputSchema(),
    2657              :         Decoration()
    2658              :     },
    2659              : 
    2660              :     // TAB commands
    2661              :     CommandInfo {
    2662              :         SET_DURATION_WHOLE_TAB_COMMAND,
    2663              :         X_TAB.arg(TranslatableString("action", "Whole note")),
    2664              :         X_TAB.arg(TranslatableString("action", "Set duration: whole note")),
    2665              :         InputSchema(),
    2666              :         Decoration(IconCode::Code::NOTE_WHOLE)
    2667              :     },
    2668              :     CommandInfo {
    2669              :         SET_DURATION_HALF_TAB_COMMAND,
    2670              :         X_TAB.arg(TranslatableString("action", "Half note")),
    2671              :         X_TAB.arg(TranslatableString("action", "Set duration: half note")),
    2672              :         InputSchema(),
    2673              :         Decoration(IconCode::Code::NOTE_HALF)
    2674              :     },
    2675              :     CommandInfo {
    2676              :         SET_DURATION_QUARTER_TAB_COMMAND,
    2677              :         X_TAB.arg(TranslatableString("action", "Quarter note")),
    2678              :         X_TAB.arg(TranslatableString("action", "Set duration: quarter note")),
    2679              :         InputSchema(),
    2680              :         Decoration(IconCode::Code::NOTE_QUARTER)
    2681              :     },
    2682              :     CommandInfo {
    2683              :         SET_DURATION_EIGHTH_TAB_COMMAND,
    2684              :         X_TAB.arg(TranslatableString("action", "Eighth note")),
    2685              :         X_TAB.arg(TranslatableString("action", "Set duration: eighth note")),
    2686              :         InputSchema(),
    2687              :         Decoration(IconCode::Code::NOTE_8TH)
    2688              :     },
    2689              :     CommandInfo {
    2690              :         SET_DURATION_16TH_TAB_COMMAND,
    2691              :         X_TAB.arg(TranslatableString("action", "16th note")),
    2692              :         X_TAB.arg(TranslatableString("action", "Set duration: 16th note")),
    2693              :         InputSchema(),
    2694              :         Decoration(IconCode::Code::NOTE_16TH)
    2695              :     },
    2696              :     CommandInfo {
    2697              :         SET_DURATION_32ND_TAB_COMMAND,
    2698              :         X_TAB.arg(TranslatableString("action", "32nd note")),
    2699              :         X_TAB.arg(TranslatableString("action", "Set duration: 32nd note")),
    2700              :         InputSchema(),
    2701              :         Decoration(IconCode::Code::NOTE_32ND)
    2702              :     },
    2703              :     CommandInfo {
    2704              :         SET_DURATION_64TH_TAB_COMMAND,
    2705              :         X_TAB.arg(TranslatableString("action", "64th note")),
    2706              :         X_TAB.arg(TranslatableString("action", "Set duration: 64th note")),
    2707              :         InputSchema(),
    2708              :         Decoration(IconCode::Code::NOTE_64TH)
    2709              :     },
    2710              :     CommandInfo {
    2711              :         SET_DURATION_128TH_TAB_COMMAND,
    2712              :         X_TAB.arg(TranslatableString("action", "128th note")),
    2713              :         X_TAB.arg(TranslatableString("action", "Set duration: 128th note")),
    2714              :         InputSchema(),
    2715              :         Decoration(IconCode::Code::NOTE_128TH)
    2716              :     },
    2717              :     CommandInfo {
    2718              :         SET_DURATION_256TH_TAB_COMMAND,
    2719              :         X_TAB.arg(TranslatableString("action", "256th note")),
    2720              :         X_TAB.arg(TranslatableString("action", "Set duration: 256th note")),
    2721              :         InputSchema(),
    2722              :         Decoration(IconCode::Code::NOTE_256TH)
    2723              :     },
    2724              :     CommandInfo {
    2725              :         SET_DURATION_512TH_TAB_COMMAND,
    2726              :         X_TAB.arg(TranslatableString("action", "512th note")),
    2727              :         X_TAB.arg(TranslatableString("action", "Set duration: 512th note")),
    2728              :         InputSchema(),
    2729              :         Decoration(IconCode::Code::NOTE_512TH)
    2730              :     },
    2731              :     CommandInfo {
    2732              :         SET_DURATION_1024TH_TAB_COMMAND,
    2733              :         X_TAB.arg(TranslatableString("action", "1024th note")),
    2734              :         X_TAB.arg(TranslatableString("action", "Set duration: 1024th note")),
    2735              :         InputSchema(),
    2736              :         Decoration(IconCode::Code::NOTE_1024TH)
    2737              :     },
    2738              :     CommandInfo {
    2739              :         ENTER_REST_TAB_COMMAND,
    2740              :         X_TAB.arg(TranslatableString("action", "Rest")),
    2741              :         X_TAB.arg(TranslatableString("action", "Enter rest")),
    2742              :         InputSchema(),
    2743              :         Decoration()
    2744              :     },
    2745              : 
    2746              :     CommandInfo {
    2747              :         ENTER_FRET_0_COMMAND,
    2748              :         fret_X_TAB.arg(0),
    2749              :         enter_TAB_fret_X.arg(0),
    2750              :         InputSchema(),
    2751              :         Decoration()
    2752              :     },
    2753              :     CommandInfo {
    2754              :         ENTER_FRET_1_COMMAND,
    2755              :         fret_X_TAB.arg(1),
    2756              :         enter_TAB_fret_X.arg(1),
    2757              :         InputSchema(),
    2758              :         Decoration()
    2759              :     },
    2760              :     CommandInfo {
    2761              :         ENTER_FRET_2_COMMAND,
    2762              :         fret_X_TAB.arg(2),
    2763              :         enter_TAB_fret_X.arg(2),
    2764              :         InputSchema(),
    2765              :         Decoration()
    2766              :     },
    2767              :     CommandInfo {
    2768              :         ENTER_FRET_3_COMMAND,
    2769              :         fret_X_TAB.arg(3),
    2770              :         enter_TAB_fret_X.arg(3),
    2771              :         InputSchema(),
    2772              :         Decoration()
    2773              :     },
    2774              :     CommandInfo {
    2775              :         ENTER_FRET_4_COMMAND,
    2776              :         fret_X_TAB.arg(4),
    2777              :         enter_TAB_fret_X.arg(4),
    2778              :         InputSchema(),
    2779              :         Decoration()
    2780              :     },
    2781              :     CommandInfo {
    2782              :         ENTER_FRET_5_COMMAND,
    2783              :         fret_X_TAB.arg(5),
    2784              :         enter_TAB_fret_X.arg(5),
    2785              :         InputSchema(),
    2786              :         Decoration()
    2787              :     },
    2788              :     CommandInfo {
    2789              :         ENTER_FRET_6_COMMAND,
    2790              :         fret_X_TAB.arg(6),
    2791              :         enter_TAB_fret_X.arg(6),
    2792              :         InputSchema(),
    2793              :         Decoration()
    2794              :     },
    2795              :     CommandInfo {
    2796              :         ENTER_FRET_7_COMMAND,
    2797              :         fret_X_TAB.arg(7),
    2798              :         enter_TAB_fret_X.arg(7),
    2799              :         InputSchema(),
    2800              :         Decoration()
    2801              :     },
    2802              :     CommandInfo {
    2803              :         ENTER_FRET_8_COMMAND,
    2804              :         fret_X_TAB.arg(8),
    2805              :         enter_TAB_fret_X.arg(8),
    2806              :         InputSchema(),
    2807              :         Decoration()
    2808              :     },
    2809              :     CommandInfo {
    2810              :         ENTER_FRET_9_COMMAND,
    2811              :         fret_X_TAB.arg(9),
    2812              :         enter_TAB_fret_X.arg(9),
    2813              :         InputSchema(),
    2814              :         Decoration()
    2815              :     },
    2816              :     CommandInfo {
    2817              :         ENTER_FRET_10_COMMAND,
    2818              :         fret_X_TAB.arg(10),
    2819              :         enter_TAB_fret_X.arg(10),
    2820              :         InputSchema(),
    2821              :         Decoration()
    2822              :     },
    2823              :     CommandInfo {
    2824              :         ENTER_FRET_11_COMMAND,
    2825              :         fret_X_TAB.arg(11),
    2826              :         enter_TAB_fret_X.arg(11),
    2827              :         InputSchema(),
    2828              :         Decoration()
    2829              :     },
    2830              :     CommandInfo {
    2831              :         ENTER_FRET_12_COMMAND,
    2832              :         fret_X_TAB.arg(12),
    2833              :         enter_TAB_fret_X.arg(12),
    2834              :         InputSchema(),
    2835              :         Decoration()
    2836              :     },
    2837              :     CommandInfo {
    2838              :         ENTER_FRET_13_COMMAND,
    2839              :         fret_X_TAB.arg(13),
    2840              :         enter_TAB_fret_X.arg(13),
    2841              :         InputSchema(),
    2842              :         Decoration()
    2843              :     },
    2844              :     CommandInfo {
    2845              :         ENTER_FRET_14_COMMAND,
    2846              :         fret_X_TAB.arg(14),
    2847              :         enter_TAB_fret_X.arg(14),
    2848              :         InputSchema(),
    2849              :         Decoration()
    2850              :     },
    2851              : 
    2852              :     CommandInfo {
    2853              :         ADD_STANDARD_BEND_COMMAND,
    2854              :         TranslatableString("action", "Standard bend"),
    2855              :         TranslatableString("action", "Add standard bend"),
    2856              :         InputSchema(),
    2857              :         Decoration(IconCode::Code::GUITAR_BEND_REGULAR)
    2858              :     },
    2859              :     CommandInfo {
    2860              :         ADD_PRE_BEND_COMMAND,
    2861              :         TranslatableString("action", "Pre-bend"),
    2862              :         TranslatableString("action", "Add pre-bend"),
    2863              :         InputSchema(),
    2864              :         Decoration(IconCode::Code::GUITAR_PRE_BEND)
    2865              :     },
    2866              :     CommandInfo {
    2867              :         ADD_GRACE_NOTE_BEND_COMMAND,
    2868              :         TranslatableString("action", "Grace note bend"),
    2869              :         TranslatableString("action", "Add grace note bend"),
    2870              :         InputSchema(),
    2871              :         Decoration(IconCode::Code::GUITAR_GRACE_NOTE_BEND)
    2872              :     },
    2873              :     CommandInfo {
    2874              :         ADD_SLIGHT_BEND_COMMAND,
    2875              :         TranslatableString("action", "Slight bend"),
    2876              :         TranslatableString("action", "Add slight bend"),
    2877              :         InputSchema(),
    2878              :         Decoration(IconCode::Code::GUITAR_SLIGHT_BEND)
    2879              :     },
    2880              :     CommandInfo {
    2881              :         ADD_DIVE_COMMAND,
    2882              :         //: Standard guitar dive, i.e. a movement of the tremolo bar between two pitches
    2883              :         TranslatableString("action", "Dive"),
    2884              :         TranslatableString("action", "Add dive"),
    2885              :         InputSchema(),
    2886              :         Decoration(IconCode::Code::GUITAR_DIVE_REGULAR)
    2887              :     },
    2888              :     CommandInfo {
    2889              :         ADD_PRE_DIVE_COMMAND,
    2890              :         //: Pre-dive, i.e. a movement of the tremolo bar prepared before picking the note
    2891              :         TranslatableString("action", "Pre-dive"),
    2892              :         TranslatableString("action", "Add pre-dive"),
    2893              :         InputSchema(),
    2894              :         Decoration(IconCode::Code::GUITAR_PRE_DIVE)
    2895              :     },
    2896              :     CommandInfo {
    2897              :         ADD_DIP_COMMAND,
    2898              :         //: Dip, i.e. a quick touch of the tremolo bar after the note is picked
    2899              :         TranslatableString("action", "Dip"),
    2900              :         TranslatableString("action", "Add dip"),
    2901              :         InputSchema(),
    2902              :         Decoration(IconCode::Code::GUITAR_DIP_DOWN)
    2903              :     },
    2904              :     CommandInfo {
    2905              :         ADD_SCOOP_COMMAND,
    2906              :         //: Scoop, i.e. a quick movement of the tremolo bar at the start of the note
    2907              :         TranslatableString("action", "Scoop"),
    2908              :         TranslatableString("action", "Add scoop"),
    2909              :         InputSchema(),
    2910              :         Decoration(IconCode::Code::GUITAR_SCOOP)
    2911              :     },
    2912              :     CommandInfo {
    2913              :         ADD_HAMMER_ON_PULL_OFF_COMMAND,
    2914              :         TranslatableString("action", "Hammer-on/pull-off"),
    2915              :         TranslatableString("action", "Add hammer-on/pull-off"),
    2916              :         InputSchema(),
    2917              :         Decoration()
    2918              :     },
    2919              : 
    2920              :     CommandInfo {
    2921              :         GOTO_STRING_ABOVE_COMMAND,
    2922              :         TranslatableString("action", "String above (TAB)"),
    2923              :         TranslatableString("action", "Go to string above (TAB)"),
    2924              :         InputSchema(),
    2925              :         Decoration()
    2926              :     },
    2927              :     CommandInfo {
    2928              :         GOTO_STRING_BELOW_COMMAND,
    2929              :         TranslatableString("action", "String below (TAB)"),
    2930              :         TranslatableString("action", "Go to string below (TAB)"),
    2931              :         InputSchema(),
    2932              :         Decoration()
    2933              :     },
    2934              : 
    2935              :     CommandInfo {
    2936              :         TOGGLE_AUTOMATION_COMMAND,
    2937              :         TranslatableString("action", "Automation"),
    2938              :         TranslatableString("action", "Toggle automation"),
    2939              :         InputSchema(),
    2940              :         Decoration(IconCode::Code::AUTOMATION, rcommand::Checkable::Yes)
    2941              :     },
    2942              :     CommandInfo {
    2943              :         SELECT_AUTOMATION_TYPE_COMMAND,
    2944              :         TranslatableString::untranslatable("Automation type"),
    2945              :         TranslatableString::untranslatable("Select automation type"),
    2946              :         InputSchema({
    2947              :             { "type", Arg(DataType::String, u"Automation type (dynamics, volume, pan)") },
    2948              :         }),
    2949              :         Decoration(rcommand::Checkable::Yes)
    2950              :     },
    2951              : 
    2952              :     // screen commands
    2953              : 
    2954              :     CommandInfo{
    2955              :         SCREEN_PUT_NOTE_COMMAND,
    2956              :         TranslatableString("action", "Put note"),
    2957              :         TranslatableString("action", "Put note"),
    2958              :         InputSchema({
    2959              :             { "pos_x", Arg(DataType::Float, u"X position") },
    2960              :             { "pos_y", Arg(DataType::Float, u"Y position") },
    2961              :             { "replace", Arg(DataType::Bool, u"Replace") },
    2962              :             { "insert", Arg(DataType::Bool, u"Insert") },
    2963              :         }),
    2964              :         Decoration()
    2965              :     },
    2966              :     CommandInfo{
    2967              :         SCREEN_REMOVE_NOTE_COMMAND,
    2968              :         TranslatableString("action", "Remove note"),
    2969              :         TranslatableString("action", "Remove note"),
    2970              :         InputSchema({
    2971              :             { "pos_x", Arg(DataType::Float, u"X position") },
    2972              :             { "pos_y", Arg(DataType::Float, u"Y position") },
    2973              :         }),
    2974              :         Decoration()
    2975              :     },
    2976              :     CommandInfo{
    2977              :         SCREEN_EDIT_TEXT_COMMAND,
    2978              :         TranslatableString("action", "Edit text"),
    2979              :         TranslatableString("action", "Edit text"),
    2980              :         InputSchema({
    2981              :             { "pos_x", Arg(DataType::Float, u"X cursor position") },
    2982              :             { "pos_y", Arg(DataType::Float, u"Y cursor position") },
    2983              :         }),
    2984              :         Decoration()
    2985              :     },
    2986              :     CommandInfo{
    2987              :         EDIT_ELEMENT_COMMAND,
    2988              :         TranslatableString("action", "Edit element"),
    2989              :         TranslatableString("action", "Edit current element"),
    2990              :         InputSchema(),
    2991              :         Decoration()
    2992              :     },
    2993              :     CommandInfo{
    2994              :         SCREEN_EDIT_ELEMENT_COMMAND,
    2995              :         TranslatableString("action", "Edit element"),
    2996              :         TranslatableString("action", "Edit screen element"),
    2997              :         InputSchema({
    2998              :             { "pos_x", Arg(DataType::Float, u"X cursor position") },
    2999              :             { "pos_y", Arg(DataType::Float, u"Y cursor position") },
    3000              :         }),
    3001              :         Decoration(),
    3002              :         Availability::Dispatch  // only dispatch from view
    3003              :     },
    3004              : 
    3005              :     // view commands
    3006              :     CommandInfo {
    3007              :         ZOOM_IN_COMMAND,
    3008              :         TranslatableString("action", "Zoom in"),
    3009              :         TranslatableString("action", "Zoom in"),
    3010              :         InputSchema(),
    3011              :         Decoration(IconCode::Code::ZOOM_IN)
    3012              :     },
    3013              :     CommandInfo {
    3014              :         ZOOM_OUT_COMMAND,
    3015              :         TranslatableString("action", "Zoom out"),
    3016              :         TranslatableString("action", "Zoom out"),
    3017              :         InputSchema(),
    3018              :         Decoration(IconCode::Code::ZOOM_OUT)
    3019              :     },
    3020              :     CommandInfo {
    3021              :         ZOOM_TO_100_COMMAND,
    3022              :         TranslatableString("action", "Zoom to 100%"),
    3023              :         TranslatableString("action", "Zoom to 100%"),
    3024              :         InputSchema(),
    3025              :         Decoration()
    3026              :     },
    3027              :     CommandInfo {
    3028              :         ZOOM_TO_PAGE_WIDTH_COMMAND,
    3029              :         TranslatableString("action", "Zoom to page width"),
    3030              :         TranslatableString("action", "Zoom to page width"),
    3031              :         InputSchema(),
    3032              :         Decoration()
    3033              :     },
    3034              :     CommandInfo {
    3035              :         ZOOM_TO_WHOLE_PAGE_COMMAND,
    3036              :         TranslatableString("action", "Zoom to whole page"),
    3037              :         TranslatableString("action", "Zoom to whole page"),
    3038              :         InputSchema(),
    3039              :         Decoration()
    3040              :     },
    3041              :     CommandInfo {
    3042              :         ZOOM_TO_TWO_PAGES_COMMAND,
    3043              :         TranslatableString("action", "Zoom to two pages"),
    3044              :         TranslatableString("action", "Zoom to two pages"),
    3045              :         InputSchema(),
    3046              :         Decoration()
    3047              :     },
    3048              :     CommandInfo {
    3049              :         ZOOM_TO_PERCENT_COMMAND,
    3050              :         TranslatableString("action", "Zoom to percent"),
    3051              :         TranslatableString("action", "Zoom to percent"),
    3052              :         InputSchema({
    3053              :             { "percent", Arg(DataType::Int, u"Percent") },
    3054              :         }),
    3055              :         Decoration()
    3056              :     },
    3057              : 
    3058              :     CommandInfo {
    3059              :         VIEW_MODE_PAGE_COMMAND,
    3060              :         TranslatableString("action", "Page view"),
    3061              :         TranslatableString("action", "Display page view"),
    3062              :         InputSchema(),
    3063              :         Decoration(IconCode::Code::PAGE_VIEW)
    3064              :     },
    3065              :     CommandInfo {
    3066              :         VIEW_MODE_FLOAT_COMMAND,
    3067              :         TranslatableString("action", "Floating"),
    3068              :         TranslatableString("action", "Display floating view"),
    3069              :         InputSchema(),
    3070              :         Decoration()
    3071              :     },
    3072              :     CommandInfo {
    3073              :         VIEW_MODE_CONTINUOUS_COMMAND,
    3074              :         TranslatableString("action", "Continuous view (horizontal)"),
    3075              :         TranslatableString("action", "Display continuous view (horizontal)"),
    3076              :         InputSchema(),
    3077              :         Decoration(IconCode::Code::CONTINUOUS_VIEW)
    3078              :     },
    3079              :     CommandInfo {
    3080              :         VIEW_MODE_SINGLE_COMMAND,
    3081              :         TranslatableString("action", "Continuous view (vertical)"),
    3082              :         TranslatableString("action", "Display continuous view (vertical)"),
    3083              :         InputSchema(),
    3084              :         Decoration(IconCode::Code::CONTINUOUS_VIEW_VERTICAL)
    3085              :     },
    3086              : 
    3087              :     CommandInfo {
    3088              :         NEXT_SCREEN_COMMAND,
    3089              :         TranslatableString("action", "Screen: Next"),
    3090              :         TranslatableString("action", "Jump to next screen"),
    3091              :         InputSchema(),
    3092              :         Decoration()
    3093              :     },
    3094              :     CommandInfo {
    3095              :         PREV_SCREEN_COMMAND,
    3096              :         TranslatableString("action", "Screen: Previous"),
    3097              :         TranslatableString("action", "Jump to previous screen"),
    3098              :         InputSchema(),
    3099              :         Decoration()
    3100              :     },
    3101              :     CommandInfo {
    3102              :         NEXT_PAGE_COMMAND,
    3103              :         TranslatableString("action", "Page: Next"),
    3104              :         TranslatableString("action", "Jump to next page"),
    3105              :         InputSchema(),
    3106              :         Decoration()
    3107              :     },
    3108              :     CommandInfo {
    3109              :         PREV_PAGE_COMMAND,
    3110              :         TranslatableString("action", "Page: Previous"),
    3111              :         TranslatableString("action", "Jump to previous page"),
    3112              :         InputSchema(),
    3113              :         Decoration()
    3114              :     },
    3115              :     CommandInfo {
    3116              :         TOP_OF_FIRST_PAGE_COMMAND,
    3117              :         TranslatableString("action", "Page: Top of first"),
    3118              :         TranslatableString("action", "Jump to top of first page"),
    3119              :         InputSchema(),
    3120              :         Decoration()
    3121              :     },
    3122              :     CommandInfo {
    3123              :         BOTTOM_OF_LAST_PAGE_COMMAND,
    3124              :         TranslatableString("action", "Page: Bottom of last"),
    3125              :         TranslatableString("action", "Jump to bottom of last page"),
    3126              :         InputSchema(),
    3127              :         Decoration()
    3128              :     },
    3129              : 
    3130              :     CommandInfo {
    3131              :         CONTEXT_MENU_OF_SELECTION_COMMAND,
    3132              :         TranslatableString("action", "Context menu of selection"),
    3133              :         TranslatableString("action", "Open context menu of selection"),
    3134              :         InputSchema(),
    3135              :         Decoration()
    3136              :     },
    3137              : 
    3138              :     CommandInfo {
    3139              :         SHOW_SEARCH_COMMAND,
    3140              :         TranslatableString("action", "Show search"),
    3141              :         TranslatableString("action", "Show search"),
    3142              :         InputSchema(),
    3143              :         Decoration()
    3144              :     },
    3145              : 
    3146              :     // piano keyboard commands
    3147              :     CommandInfo {
    3148              :         PIANO_KEYBOARD_SET_NUMBER_OF_KEYS_COMMAND,
    3149              :         TranslatableString("action", "Piano keyboard: Set number of keys"),
    3150              :         TranslatableString("action", "Set number of keys for piano keyboard"),
    3151              :         InputSchema({
    3152              :             { "keys", Arg(DataType::Int, u"Number of keys") },
    3153              :         }),
    3154              :         Decoration()
    3155              :     },
    3156              : 
    3157              :     // diagnostic commands
    3158              :     CommandInfo {
    3159              :         DIAGNOSTIC_VIEW_REDRAW_COMMAND,
    3160              :         TranslatableString("action", "View redraw"),
    3161              :         TranslatableString("action", "Diagnostic: Redraw the view"),
    3162              :         InputSchema(),
    3163              :         Decoration()
    3164              :     },
    3165              :     CommandInfo {
    3166              :         SHOW_ELEMENT_BOUNDING_RECTS_COMMAND,
    3167              :         TranslatableString("action", "Show element bounding rects"),
    3168              :         TranslatableString("action", "Diagnostic: Show element bounding rects"),
    3169              :         InputSchema(),
    3170              :         Decoration()
    3171              :     },
    3172              :     CommandInfo {
    3173              :         COLOR_ELEMENT_SHAPES_COMMAND,
    3174              :         TranslatableString("action", "Color element shapes"),
    3175              :         TranslatableString("action", "Diagnostic: Color element shapes"),
    3176              :         InputSchema(),
    3177              :         Decoration()
    3178              :     },
    3179              :     CommandInfo {
    3180              :         SHOW_SEGMENT_SHAPES_COMMAND,
    3181              :         TranslatableString("action", "Show segment shapes"),
    3182              :         TranslatableString("action", "Diagnostic: Show segment shapes"),
    3183              :         InputSchema(),
    3184              :         Decoration()
    3185              :     },
    3186              :     CommandInfo {
    3187              :         COLOR_SEGMENT_SHAPES_COMMAND,
    3188              :         TranslatableString("action", "Color segment shapes"),
    3189              :         TranslatableString("action", "Diagnostic: Color segment shapes"),
    3190              :         InputSchema(),
    3191              :         Decoration()
    3192              :     },
    3193              :     CommandInfo {
    3194              :         SHOW_SKYLINES_COMMAND,
    3195              :         TranslatableString("action", "Show Skylines"),
    3196              :         TranslatableString("action", "Diagnostic: Show Skylines"),
    3197              :         InputSchema(),
    3198              :         Decoration()
    3199              :     },
    3200              :     CommandInfo {
    3201              :         SHOW_SYSTEM_BOUNDING_RECTS_COMMAND,
    3202              :         TranslatableString("action", "Show system bounding rects"),
    3203              :         TranslatableString("action", "Diagnostic: Show system bounding rects"),
    3204              :         InputSchema(),
    3205              :         Decoration()
    3206              :     },
    3207              :     CommandInfo {
    3208              :         SHOW_ELEMENT_MASKS_COMMAND,
    3209              :         TranslatableString("action", "Show element masks"),
    3210              :         TranslatableString("action", "Diagnostic: Show element masks"),
    3211              :         InputSchema(),
    3212              :         Decoration()
    3213              :     },
    3214              :     CommandInfo {
    3215              :         SHOW_LINE_ATTACH_POINTS_COMMAND,
    3216              :         TranslatableString("action", "Show line attach points"),
    3217              :         TranslatableString("action", "Diagnostic: Show line attach points"),
    3218              :         InputSchema(),
    3219              :         Decoration()
    3220              :     },
    3221              :     CommandInfo {
    3222              :         MARK_EMPTY_STAFF_COMMAND,
    3223              :         TranslatableString("action", "Mark empty staff"),
    3224              :         TranslatableString("action", "Diagnostic: Mark empty staff"),
    3225              :         InputSchema(),
    3226              :         Decoration()
    3227              :     },
    3228              :     CommandInfo {
    3229              :         MARK_CORRUPTED_MEASURES_COMMAND,
    3230              :         TranslatableString("action", "Mark corrupted measures"),
    3231              :         TranslatableString("action", "Diagnostic: Mark corrupted measures"),
    3232              :         InputSchema(),
    3233              :         Decoration()
    3234              :     },
    3235              :     CommandInfo {
    3236              :         SHOW_GAP_RESTS_COMMAND,
    3237              :         TranslatableString("action", "Show gap rests"),
    3238              :         TranslatableString("action", "Diagnostic: Show gap rests"),
    3239              :         InputSchema(),
    3240              :         Decoration()
    3241              :     },
    3242              :     CommandInfo {
    3243              :         SHOW_ORIGIN_AND_COMBINED_COMMAND,
    3244              :         TranslatableString("action", "Show origin and combined"),
    3245              :         TranslatableString("action", "Diagnostic: Show origin and combined"),
    3246              :         InputSchema(),
    3247              :         Decoration()
    3248              :     },
    3249              :     CommandInfo {
    3250              :         CHECK_FOR_SCORE_CORRUPTIONS_COMMAND,
    3251              :         TranslatableString("action", "Check for score corruptions"),
    3252              :         TranslatableString("action", "Diagnostic: Check for score corruptions"),
    3253              :         InputSchema(),
    3254              :         Decoration()
    3255              :     },
    3256              : 
    3257              :     makeCommandInfo<GetNoteInputStateCommand>()
    3258              : };
    3259              : 
    3260            0 : std::string NotationCommandsRegister::moduleName() const
    3261              : {
    3262            0 :     return "notation";
    3263              : }
    3264              : 
    3265            0 : const std::vector<Command>& NotationCommandsRegister::commandList() const
    3266              : {
    3267            0 :     static std::vector<Command> commands;
    3268            0 :     if (commands.empty()) {
    3269            0 :         commands.reserve(s_commandInfos.size());
    3270            0 :         for (const auto& info : s_commandInfos) {
    3271            0 :             commands.push_back(info.command);
    3272              :         }
    3273              :     }
    3274            0 :     return commands;
    3275              : }
    3276              : 
    3277            0 : const std::vector<CommandInfo>& NotationCommandsRegister::commandInfoList() const
    3278              : {
    3279            0 :     return s_commandInfos;
    3280              : }
        

Generated by: LCOV version 2.0-1