GSoC 2019: Week 9
This week I've been working on finishing and stabilising the instrument change warning system. I started off the week by fixing the undo/redo functionality for all the different aspects of the system, such as deleting an instrument change, deleting a warning, and deleting the note underneath a warning. After this, I started work on making sure that files with instrument changes saved correctly. After talking about this in the developers chat, we decided that the best way to do this would be to adjust the way the objects associated with the instrument change interact with each other, so that they did not have pointers between each other, but instead used utility functions to find the associated elements. While this took a bit of work to implement, I think it was the right decision, as many things are now simpler to understand, if maybe a little more inefficient, and the whole system is much more maintainable. After doing this I made sure that things such as saving and undo work correctly, although there is still some testing to do. I also added a checkbox to the instrument change inspector panel to allow the user to choose whether to show an instrument change warning or not, and stopped warnings showing at the same position as the actual instrument change.
This next week, I will finish testing instrument change warnings, and will start work on allowing instrument changes between 5-line-staff instruments and 1-line-staff instruments.