[Trunk] Continuous View issues
Continuous view is very nice, but it needs some tweaks as you can see in these pics:
In this pic the measure numbers are only partially visible, and the key/timesig get overlaid after a key change that produces naturals/accidentals, in this case, going from 3 flats to 1 flat. (This might be related to a recently-reported bug about all systems now showing naturals/accidentals following a key change.
Also, not all timesig changes are reflected. In this pic you can see a 4/4 underneath but the header still says 6/4.
Attachment | Size |
---|---|
clip100.png | 13.21 KB |
clip101.png | 11.71 KB |
Comments
Ok, I'll have a look at that. Thanks for integrating my ContinuousPanel PR.
For the naturals/accidentals, yes, it could be related to issue #26776 : Naturals in key signatures display on all systems rather than just at point of change
For the timesig changes not showing up, I'm not able to reproduce. Do you have a sample score?
After investigation, the first issue (where time signature gets drawn over the naturals in key signature) simply comes from "newKs->width()" not returning the correct width. The key signature width returns only the width of the new key signature, excluding the width of the natural symbols.
From my point of view, the Continuous view panel is correct and it's the the width() function that should include the width of the naturals. Am I right?
Not sure about the width function but I think the panel should never display the naturals.
For the timesig changes not showing up, a possible example is the Promenade Example score: if you look at the timeSig change at measure 5 (i.e. the one just after a line break) it doesn't show in the continuous view overlay.
If the line break is deleted, after saving and reloading the problem disappears for this time change, but it appears for the following one which has shifted to the next system.
Could the bug be related to the fact that the timeSig change is placed at the beginning of a new system?
ABL, I think you found the issue with the timesig display. The score I was testing had almost continuously alternating 6/4 and 4/4 measures. Continuous view would not show the timesig change every few measures but I couldn't see why.
The problem is still with timesigs. If we put a breakpoint in function Staff::timeSig line 257 in staff.cpp, we see that the list timesigs doesn't contain all timesigs (not those at the beginning of systems).
You're right Laconic! No need to show naturals in the continuous panel. Though, with the actual functions in KeySig class, I'm facing a problem to get the key signature without the naturals.
Here the code :
newKs->setKeySigEvent(currentKeySigEvent);
newKs->setParent(_score->tick2segment(_currentMeasureTick));
newKs->setTrack(e->track());
newKs->layout();
If I DON'T SET the Parent and the Track, I get the key signature without the naturals, but it doesn't take into account the clef for the layout. So symbols are on the wrong line.
If I SET the Parent and the Track, I get the correct key signature, correct line, but with the naturals.
We might need to tweak layout() to do the layout without considering the score style (naturalsOn).
The width issue is a different issue solved (if forgot to set the parent and track in the function that find the width).
Initial patch #1012 applied, keysig spacing better and measure numbers also showing good.
Still to fix: naturals in keysig and timesig not always updating.
Another fix to consider: if the short instrument name is not defined, but the long name is, can you use the long name?
PR submitted for hidding naturals and to use long name if no show name is defined.
For the timesig not always updated, it's not related to ContinuousPanel. The problem comes from the class TimeSig. The timesigs list doesn't contains all the time signature. So ContinousPanel just can't update if those time signature are missing.
An new issue that pop up is the positioning of the time signature when the denominator is larger than the numerator (ie 8/19). The problem seems to come from the time signature layout() that centers the time signature based on the numerator. This is a bug I think.
See PR #1014
It's better with the fix for the spurious naturals, but it still seems tight - the key signature is very close to the clef.
PR 1014 is merged.
The problem with the key signature change on new systems not showing in the Continuous View layer is still open. See comment #6 and #9 by vgStef.
Re-opening for reference.
Could be I'm not testing correctly, but I am not seeing problems with key or time signature changes regardless of whether they are at the beginning of the system or not. For time signatures, perhaps the recent change to not add courtesy signatures to the map helped?
The formatting issue when denominator is larger than numerator is still present, but that's relatively minor and could perhaps be filed separately so this issue can be closed if it is in fact fixed.
Indeed I can't reproduce the time sig issue anymore. So it has been fixed together with #25368: Note Groups define in time signature dialog has no effect in note entry
I fixed the time sign alignment problem in 010d3957f0
For me the last thing to make it perfect is to integrate the spacing between the barline and the clef, the clef and the keysig, the keysig and the timesig.
Yes indeed, the timesig display updatses correctly now.
Wonderful!
Spacing : my idea at first was to make the panel as narrow as possible, so I did not consider the spacing between elements. But I can look at that if you think it's important.
I agree narrow is good. This isn't for printing, and the less space taken on screen the better. But it is pretty darned tight at the moment. Worth looking at, but I persoanlly would judge it minor, amd I'm still inclined to say this issue should be closed and perhaps a new one opened for spacing.
Done #28151: Apply some spacing to continuous panel
Automatically closed -- issue fixed for 2 weeks with no activity.