musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.29k stars 2.66k forks source link

"reset shapes and positions"/"reset entire score to default layout" doesn't always trigger a re-layout of the score in continuous view. #24849

Open Ash-86 opened 1 month ago

Ash-86 commented 1 month ago

Issue type

UX/Interaction bug (incorrect behaviour)

Description with steps to reproduce

Note to devs: see @bkunda comment below

As the title explains, "reset shapes and positions" doesnt reset staves spacings in horizontal view. "reset entire score to default layout" doesn't work either.

Supporting files, videos and screenshots

https://github.com/user-attachments/assets/1636a10b-63db-4509-bb8e-1495c8d4fd41

What is the latest version of MuseScore Studio where this issue is present?

4.4.2

Regression

I was unable to check

Operating system

windows 11

Additional context

No response

Checklist

MarcSabatella commented 1 month ago

If I understand correctly, you are observing that if you'd done something to your score that causes extra space to be allocated in horizontal view, then reset that adjustment, the space is not reclaimed. This is true, by design - having to recalculate the entire layout of the score (which is necessary in order to calculate the required spacing) would be unnecessarily expensive, making editing in continuous view slow.

But, it is true that it would be nice if there were a way to force it. I wouldn't nominate "reset shapes and positions" since it works on an element basis, not on a full score. But there is no reason "reset entire score" couldn't have this as a side effect. I find that it does in some cases but not in others. In particular, in the case shown of dragging a hairpin and then resetting its position, subsequently running the reset entire score command does not reclaim the space. But if I transpose a note down a couple of octaves then raise it again, that space is reclaimed. Not sure what the difference is, except one involves spanners and the other doesn't/

Ash-86 commented 1 month ago

I see. I noticed that the actions in question do work in page view. Furthermore, if, after one of these actions is applied, you switch to page view then back to horizontal view, the reset will now have taken effect and the spacing between staves would be indeed restored.

MarcSabatella commented 1 month ago

The difference is that in page view, the layout is always performed system by system as you edit, no separate reset step is required to reclaim extra space. But in continuous view, because there is only one system, does not do this reclaiming of space automatically on every edit as it would be far too slow. So it's only done when really necessary - operations that require a full relayout of the entire score. And "reset score to default layout" certainly seems like it should be one of them. Not sure why it has this effect sometimes but not other times, but definitely worth investigating.

bkunda commented 1 month ago

I think this bug is a little more nuanced than what's described in the title.

The following processes work for me:

Manually offsetting a hairpin when in continuous view, then resetting entire score to default layout, does indeed fail to reset the staff position. The staff position is, however, reset when in page view.

It's obviously a layout recalculation issue though, and a fairly benign one at that. Simply toggling from continuous --> page --> continuous view modes resolves the problem. As does toggling multimeasure rests on and off.

I can confirm this is also true of pedal marks and dynamics.

So this issue should be rescoped. "Reset entire score to default layout" should, IMO, function the same in continuous view as it does in page view. It's acceptable to wait for the entire score to re-layout because this is kind of sledgehammer-style operation anyway.

Ash-86 commented 1 month ago

Pasting a section where many ledger lines are needed distorts the system spacing even in page view. Reset shapes and positions doesnt work and the only way to make it recalculate positions is by switching back and forth to another view (horizontal or vertical).

https://github.com/user-attachments/assets/6e21be47-3a5b-40b4-8348-9c92c5d7934d