GSoC'22 - Week #7: Global Shortcuts
Palette Shortcuts
In the seventh week, I primarily focused on palette shortcuts. Initially, there were some issues with my implementation of these shortcuts, and some issues persisted, and a few still persist.
In the past, palette cells could only be assigned keyboard shortcuts if their names remained constant. Obviously, this was not the correct solution; thus, it was rectified. Although keyboard shortcuts may be set from palettes, they should also be assignable from the preferences for keyboard shortcuts. If they are assigned after a score has been opened, this was simple (because, the cells have been initialized in the palette hence the code-flow can remain pretty similar). However, work began this week to make it function regardless of whether a score was accessed or not (such as on the launch screen). A great deal of work has been done on this section, which technically works, but the code must be improved and beautified.
A presently unresolved problem is that the cells added to the user palette are not assigned action names; thus, the program must be restarted after adding a palette to the sidebar palettes before the cells may be assigned any shortcut.
Here, you can see how the palette shortcuts now appear in the list. This nomenclature is for debugging reasons and will undoubtedly be changed after discussing it with the team.
I will continue to work actively on this feature and keep you informed!
Missing Shortcuts Issue Resolution
I am pleased to report that the PR #12414 has been merged. This week, I have developed hotfixes for a few bugs introduced by this PR. These are PRs #12551 and #12611. First PR was a key hotfix for a crash that occurred when an action that did not exist in the CPP code was called. One case where this can happen is if the action names of any shortcuts in the shortcuts XML files had a typo. This has been merged. The latter is a correction for the names of playback settings context menu items.
Shortcuts Categorization and Toolbar shortcuts
Apart from the abovementioned features, I also had to incorporate the recently made changes of the UI Actions Constructors into these branches, which was also done this week.