Descendants of MuseScoreView class override its member functions incorrectly
Not sure whether this should be a bug report or a task since it doesn't currently affect any visible behavior of MuseScore. So I marked it a task, feel free to correct this.
The problem I would like to describe is the following.
MuseScoreView class has some number of member functions which can be overridden in its descendants.
ExampleView as well as
ScoreView are descendants of
MuseScoreView and apparently try to override some of its member functions. However these overriding functions are not marked with
override keyword and some of them have wrong signatures so that they effectively override nothing. One example of this is
cmdAddSlur function which has different signatures in
PianoRoll. The only reason it doesn't affect anything is that those overrides are actually doing nothing. However it doesn't seem to be a good decision to leave this situation as it is.
ScoreView also has some functions overridden from
MuseScoreView which are not marked with
override keyword but I didn't see any wrong signatures in those functions.
So I would propose to:
1) Correct signatures of those incorrect overrides or remove those overrides which are not really necessary.
2) Mark those functions with
override keyword to ensure that this situation will not repeat again.
Feel free to correct me if I am wrong in this.
I guess at least part of that code pre-dates C++11 (in which override was introduced).
But yes, adding it where appropriate (overriding virtual functions) will indeed prevent signature mismatches at compile time, so that's definitely a good thing to do!