10 August 2014

The past week I have been been fixing voice copy paste issues and adding a voice filter.

Voice copy paste

I have fixed most of the issues with copy and paste of notes with optional voices. The only thing left that could be changed is cleaning up rests after a paste. A paste with rests in voice 2 can fragment the whole rest which could stay a whole rest. Sometimes this might be expected so this is open for discussion.

Voice filter

I have added the filter of voices for both copy and delete operations. The fix to copy paste helped incredibly, all the filter had to do was not include the voice in the mime xml. One can use the filter by checking or unchecking the 4 checkboxes in the Selection Filter tab. By default all checkboxes are checked meaning that all voices are copied and removed.

We can now remove a single voice by unchecking all voices that should stay, making a range selection to be deleted and pressing delete. The PR is tested and ready to be merged.

It looks like this PR partially solves the following issues:

Selection range ending

This PR fixed the picking the end of the range selection. Before next1MM or nextCR was called which sometimes returned segments not right after the end of a chordrest. I have written a new function nextSegmentAfterCR which replaces those calls when necessary.

Transition from single to range selection

I have also fixed the transition from a single selection to a range one. The previous code only worked correctly for rests, giving a wrong result for notes and other element types.

Tasks in the upcoming week

In the last week I will be adding any comments, correcting style issues with the code I have written. I will also finish up the Selection document which can be found here.