@@ -32,7 +32,7 @@ try : TextButtonAligned{CommandSet::UnassignedTranslated()}, command_set_(comman
3232}
3333
3434catch (const std::exception& e) {
35- MIDI2LR_E_RESPONSE ;
35+ rsj::ExceptionResponse (e) ;
3636 throw ;
3737}
3838
@@ -72,18 +72,13 @@ void CommandMenu::ShowDialogBasedOnMessageType() const
7272}
7373
7474void CommandMenu::AddSubMenuItems (juce::PopupMenu& sub_menu, const juce::String& command,
75- size_t index, bool & ticked) const
75+ size_t index, bool & ticked) const
7676{
7777 if (profile_.CommandHasAssociatedMessage (command_set_.CommandAbbrevAt (index - 1 ))) {
78- if (index == selected_item_) {
79- ticked = true ;
80- sub_menu.addColouredItem (gsl::narrow_cast<int >(index), command, juce::Colours::red, true ,
81- true );
82- }
83- else {
84- sub_menu.addColouredItem (gsl::narrow_cast<int >(index), command, juce::Colours::red, true ,
85- false );
86- }
78+ const auto is_selected_item = (index == selected_item_);
79+ ticked |= is_selected_item;
80+ sub_menu.addColouredItem (gsl::narrow_cast<int >(index), command, juce::Colours::red, true ,
81+ is_selected_item);
8782 }
8883 else {
8984 sub_menu.addItem (gsl::narrow_cast<int >(index), command, true , false );
@@ -107,29 +102,26 @@ void CommandMenu::ProcessUserSelection(juce::PopupMenu& main_menu)
107102 }
108103}
109104
110- void CommandMenu::AddSubMenusToMainMenu (juce::PopupMenu& main_menu, size_t & index) const
105+ void CommandMenu::AddSubMenusToMainMenu (juce::PopupMenu& main_menu, size_t index) const
111106{
112- size_t submenu_number {0 }; // to track name for submenu
113- for (const auto & submenus : command_set_.GetMenuEntries ()) {
107+ const auto & menus {command_set_.GetMenus ()};
108+ const auto & menu_entries {command_set_.GetMenuEntries ()};
109+ const auto menu_entries_size = menu_entries.size ();
110+ for (size_t submenu_number = 0 ; submenu_number < menu_entries_size; ++submenu_number) {
114111 juce::PopupMenu sub_menu;
115112 auto ticked {false };
116- for (const auto & command : submenus) {
117- AddSubMenuItems (sub_menu, command, index, ticked);
118- index++;
113+ for (const auto & command : menu_entries[submenu_number]) {
114+ AddSubMenuItems (sub_menu, command, index++, ticked);
119115 }
120- main_menu.addSubMenu (command_set_.GetMenus ().at (submenu_number++), sub_menu, true , nullptr ,
121- ticked);
116+ main_menu.addSubMenu (menus[submenu_number], sub_menu, true , nullptr , ticked);
122117 }
123118}
124119
125120void CommandMenu::ProcessMenuItems ()
126121{
127- size_t index {1 };
128122 juce::PopupMenu main_menu;
129- main_menu.addItem (gsl::narrow_cast<int >(index), CommandSet::UnassignedTranslated (), true ,
130- index == selected_item_);
131- index++;
132- AddSubMenusToMainMenu (main_menu, index);
123+ main_menu.addItem (1 , CommandSet::UnassignedTranslated (), true , 1 == selected_item_);
124+ AddSubMenusToMainMenu (main_menu, 2 );
133125 ProcessUserSelection (main_menu);
134126}
135127
@@ -142,7 +134,7 @@ void CommandMenu::clicked(const juce::ModifierKeys& modifiers)
142134 }
143135 }
144136 catch (const std::exception& e) {
145- MIDI2LR_E_RESPONSE ;
137+ rsj::ExceptionResponse (e) ;
146138 throw ;
147139 }
148140}
0 commit comments