GSoC 2018 - Beginner Mode and Tutorial Creation - Week 6
This is my weekly update on my Google Summer of Code project. There will be three parts of this blog post: what I did, what had issues, and what is next. Then, I will end it with a question that I need answered for part of the project.
What I did
Started a PR
- I started a PR for my workspace expansion but I am having some trouble passing the travis CI tests. So, I was unable to finish my PR, but once the dust of 2.3 settles, I should be able to get it done.
Began planning for the tour
- As with any new framework, I've spent most of my time planning its structure rather than making obvious progress. We've decided on using just in time teaching (JITT) to assist users as they learn Musescore. This means, the tour of features will happen as the user is about to use those features (e.g. if a user attempts to add an item from the palette with a single click, it may say "To add an element, double click it. Make sure something is selected in the score first!"). As for the current idea for framework, I've tracked down how to catch the user's actions (both mouse presses and shortcuts) and am now figuring out how to best display the tour.
What had issues
- As mentioned above, my PR kept failing the test cases because the tests use preferences.cpp, which use workspace.cpp, which use musescore.cpp which adds a whole host of things. So, I'm stuck on what to do next.
What is next
Merging the PR
- After some code review and passing the tests, I believe my PR will be merged in.
Finalizing and building the framework
- The framework is close to being figured out. I'll make sure to document it to make it obvious and attempt to minimize the developers job when adding tours. Then, I will begin integrating the framework into musescore.
Question for the Week
- I need some examples of tours to test with. Also, i need to make sure these tests cover a range of functionality from mouse presses to keyboard shortcuts, as well as dialogs and score view. So, what are some ideas for JITT that you think would be useful? (e.g. teaching how to use slurs, walking through the preferences dialog, etc.)