GSoC : Week 5

Posted 3 years ago

Hello,
As mentioned in the last post, I've finished the implementation for the text annotation and begun with the other types this week. Inheriting from Element class was leading to the Text annotation not ending up being drawn, hence we decided to try another approach, with the TextAnnotation class deriving from Text. This solved the problem of the annotation not being drawn. You can find the implementation in this PR : http://github.com/musescore/MuseScore/pull/2687 :

I also enabled layer support for the text annotations, and now the annotations can be viewed/hidden depending upon the tags and layers assigned to each of them. Talking about layers, the UI for layers needs to be improved considerably. There is actually no need to have "Layers" AND "Tags" separately.
Just having tags should suffice, and then one could tag a given element and select the tags which are to be shown/hidden. Also the annotations could be tagged automatically according to their type. Here type could either be the type of the annotation, and could also be the purpose of the annotation (for eg: collaboration vs. review) Although layer improvement will help better annotation support, we will be focusing more on the annotation functionality for now.
This week I also resolved some technical issues I was facing (so did my mentor), hence we can expect the pace of the project to pick up :)

The next step for annotations is to create a range annotation, i.e. a rectangle around a phrase/range.
This annotation would be similar to the existing frame for text, except it might extend for several measures / systems / pages. It would also be an interesting challenge to get it to draw correctly across system/line breaks. Right now, we are starting on a single system.

I've created a new class RangeAnnotation for this for now, but we can perhaps extend the TextAnnotation class and have an empty text member as well. You can find the code for this in the latest commit in the existing PR. The tricky part will be to implement the drawing function for the same. This shall be worked upon this week.

Until later,
shredpub