GSoC 2017 Final Work Product Submission

Posted 2 years ago

The project that I worked on for MuseScore over the summer had two main parts: a shortcut management system and a startup wizard.

Shortcut Management:
The key issue that MuseScore faced was that multiple users with different operating systems, locales and keyboard layouts experiences various keyboard shortcut conflicts which prevented them from using all the shortcuts while creating musical scores. To overcome this problem, the shortcut management detects the user’s keyboard layout and automatically selects an appropriate list of shortcuts for the user to avoid conflicts. The key developer challenge here is to have appropriate shortcut lists for each keyboard layout to ensure that this problem is solve for every user. The shortcut management system also provides the user the functionality to save and load customized shortcut lists as xml files on their computers. Using this functionality, the MuseScore community can share shortcut lists created for different keyboard layouts and these lists can be included in the project to solve this problem.

Startup Wizard:
The startup wizard I created is designed to help MuseScore users configure the software to better suit their needs. The wizard currently has three pages that asks the user their locale, keyboard layout and workspace choice. Along with the wizard, I also added the functionality of toolbar customization because it is closely linked with choice of workspace. The startup wizard can easily be extended to add more pages and ask the user different questions.

Moving Forward:
Both the shortcut management system and the startup wizard are ready and merged. The only work that remains to be done is maintenance work, that is, bug fixes as and when new bugs are found.

The following are links to all pull requests that were successfully merged on github:
https://github.com/musescore/MuseScore/pull/3233
https://github.com/musescore/MuseScore/pull/3244
https://github.com/musescore/MuseScore/pull/3255
https://github.com/musescore/MuseScore/pull/3264
https://github.com/musescore/MuseScore/pull/3271