GSoC 2020 Week 7 Recap: Keeping It Together

Posted 3 years ago

Hello! For this week, I made a longer video:

Update from last week

I made the bond between the measures of a MeasureRepeat group much stronger, disallowing or adding special handling for as many scenarios as I could think of that would interfere with them. Among those scenarios:

  • Copying and pasting measures within a group (disallowed, unless the whole group is selected)
  • Pasting anything into a group (allowed, removes the MeasureRepeat and resets associated measures)
  • Note input within a group (allowed, removes the MeasureRepeat and resets associated measures, with warning)
  • Using the "repeat" command from just before a group (allowed, removes the MeasureRepeat and resets associated measures)
  • Adding a new MeasureRepeat within a group (allowed, removes the MeasureRepeat and resets associated measures, with warning)
  • Inserting measures within a group (disallowed, even if on another staff)
  • Joining measures within a group (disallowed, even if on another staff, unless the whole group is selected)
  • Deleting measures from a group (disallowed, even if on another staff, unless the whole group is selected)
  • Deleting time/shortening a measure which is in a group on another staff (disallowed, even if on another staff)
  • Splitting a measure which is in a group (disallowed, even if on another staff)
  • Adding a repeat barline within a group (disallowed, even if on another staff)
  • Adding a measure repeat that would span a repeat barline (allowed, removes the barline, with warning)
  • Adding a time signature to the beginning or middle of a group (allowed, removes the MeasureRepeat and resets associated measures)

All references to "a group" include only MeasureRepeat-related groups. I also did a lot of refactoring along the way, and a couple of other things.

Looking forward to this week

As can be seen towards the end of that video, while the ability to copy a MeasureRepeat group is there, it is currently not possible to paste what has been copied (unless it is a single-measure repeat). I actually implemented copying and pasting very nicely, and then broke this when I implemented handling of pasting into a MeasureRepeat group... because the second measure gets pasted into what was already made into a group by the pasting of the first measure, and hence it gets deleted. I'll see what I can come up with for that. Then I'll refocus on the appearance controls for the numbers and extenders, and test my QML skills to create a MeasureRepeat Inspector.

Also, if PR #6211 is merged, I'll open a new PR with my MeasureRepeat-related work.

Previous post Next post

Comments

Really nice job thinking through all these details! Usually, that's the stuff that doesn't get cleaned up until much later - sometimes not even until after release :-)

Fixing the paste issue will be good although to me also not a deal-breaker, we could just disallow it for now and come back to it later. Similarly, don't sweat the polish on the appearance or Inspector too much right now - as long as it does what is needed for further development and debugging, it will do. I'm just trying to keep an eye on the "clock" and be sure you are allowing yourself enough time to get playback working, and if that turns up to uncover any unforeseen design changes, time for them as well!