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.1k stars 2.62k forks source link

Certain score elements cannot be shift-clicked for a list selection #19865

Open KleinkMusic opened 10 months ago

KleinkMusic commented 10 months ago

Issue type

UI bug

Bug description

Whenever I try to shift-click a select few types of score elements (most notably hairpins, caesuras, or other pause types) those elements get de-selected.

Steps to reproduce

  1. Create a range of hairpins, caesuras, etc.
  2. Select one of the type of element you intend to select
  3. Shift click another type of element in a given range
  4. See result (element de-selected)

Screenshots/Screen recordings

https://github.com/musescore/MuseScore/assets/104653161/55afc135-369b-4e39-8689-22f88b5c077d

MuseScore Version

4.1.1

Regression

I don't know

Operating system

Windows 11

Additional context

No response

MarcSabatella commented 10 months ago

There is no such thing as a range selection of just hairpins - by definition, they include all content of a selected range. What you are trying to create is a list selection. And indeed, the click / shift+click method of creating such selections is only supported for certain types of elements - basically, those for which it was really easy to implement.

In principle it would be possible to extend this to work for more element types, and that would indeed be a nice enhancement.

KleinkMusic commented 10 months ago

There is no such thing as a range selection of just hairpins - by definition, they include all content of a selected range. What you are trying to create is a list selection. And indeed, the click / shift+click method of creating such selections is only supported for certain types of elements - basically, those for which it was really easy to implement.

In principle it would be possible to extend this to work for more element types, and that would indeed be a nice enhancement.

Ah, yes. Thanks for the clarification. List selection is indeed what I meant.

MarcSabatella commented 9 months ago

Came up again in https://github.com/musescore/MuseScore/issues/20664. I don't see how a new design is needed. The design model of click / shift+click is well established; it's just not currently supported for lines.

It is probably just a small tweak to the existing code to handle Shift+click in https://github.com/musescore/MuseScore/blob/22edc527d01c7667b43cf34e56129ebc6ed6c657/src/engraving/dom/score.cpp#L3574 (like maybe checking start tick and end tick explicitly). Unless somehow the click action is intercepting this earlier.

bkunda commented 1 month ago

Ok surprise for me was that shift+click even created a list selection.

I had always understood it to be a range selection control, while cmd/ctrl is what you'd usually use for list selections.

In effect, shift+click can perform a list selection of a certain type of element. This is useful...if you even know this function exists (and you'd have to either discover it via documentation or accidentally when clicking on the right kind of object).

As for line objects, shift now performs an additional function w.r.to the new anchors system. I fear that adding mass list-selection capabilities to this will result in quite awkward UX.

But there's obviously a real problem to be solved still: I.e. how to enable a list selection of line objects en masse in a way that's discoverable and doesn't conflict with any other interaction.

That's why I think this needs design.

FWIW we will have a new selection filter coming soon, which should make it much easier to quickly filter items such as hairpins/dynamics/lines, etc.

MarcSabatella commented 1 month ago

FWIW, the click / Shift+click method of creating list selections was a "relatively" recent addition to MuseScore - maybe around 3.4 or so. But it was a pretty popular recurring request - lots of people seemed to think it was a very natural way of making these selections and were surprised when it didn't work previously. And it is quite handy. But yeah, I get that it could be a little complicated with respect to lines.