Inspector: min distance and offset values do not update immediately when moving into the skyline using Inspector controls

• May 30, 2019 - 10:58
Reported version
3.1
Priority
P2 - Medium
Type
Graphical (UI)
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project

OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.1.0.7080, revision: 5136e5c

  1. Open the attached 2.x score but don't reset it. Observe the position of the hairpin in measure 8 compared to the same hairpin in MS 2.x.
    Result: The hairpin in 3.x is much further from the notebeam.
  2. Click on the hairpin in measure 8 and note the offset values and Minimum distance (Inspector).
    Result: Min. dist. = 0.7; x= 0; y = 5.
  3. Click once on the y offset down-spinner and read the Inspector again.
    Result: As expected. Min. dist. = 0.7; x= 0; y = 4.5.
  4. Click off the hairpin, then select it again.
    Result: The Min. dist. and Y-offset readings in the Inspector have unexpectedly changed. Min. dist. = 0.2; x= 0; y = 6.71.
  5. Click the y offset down-spinner until the y-offset reads 4.71. The hairpin should be just below the beamed notes.
    Result: Min. dist. = 0.2; x= 0; y = 4.71.
  6. Click off the hairpin and click on again.
    Result: The Min. dist. unexpectedly changes. Min. dist. = -1.8; x= 0; y = 4.71;

Conclusion: After moving a hairpin using the Inspector Y-offset, if you click off the hairpin then reselect it, the Min. dist. and Y offset change for no apparent reason, even though the position of the hairpin is unaltered.

Attachment Size
hairpin_offsets.mscz 18.46 KB

Comments

Severity S3 - Major S4 - Minor
Type Functional Graphical (UI)
Priority P2 - Medium

The result on clicking off then on again is correct. The originally reported value is not updated because the Inspector does not allow the layout code to change the values while you actively using it. That is, the act of clicking the down arrow on the hairpin - thus moving it up - moves it into the skyline and thus forces the conversion to an absolute offset with a modified min distance, but even though this really has happened, the Inspector doesn't show the change until you click off and on again. So, a minor visual glitch with the Inspector display only; the actual behavior is correct.

It would presumably be possible to remove the code in the Inspector that prevents its values from being updated while it is operation, but I'm not sure what might break if we did.

Some more odd behaviour:

  1. Open the attached 2.x score but don't reset it.
  2. Click on the hairpin in measure 8 and note the offset values and Minimum distance (Inspector).
    Result: Min. dist. = 0.7; x= 0; y = 5.
  3. Click twice on the Y-offset down-spinner.
    Result: On the second click, the hairpin jumps unexpectedly upwards.
  4. Click off and on the hairpin.
    Result: The Inspector readings are: Min. dist. = -2.51; x= 0; y = 4. The Min. dist. has unexpectedly changed.

And again:

  1. Open the attached 2.x score but don't reset it.
  2. Click on the hairpin in measure 8 and press the Offset "Reset to style default".
  3. Click off the hairpin and on again.
    Result: The Inspector reads: Min. dist. = -0.8; x= 0; y = 5.71. This doesn't appears to make sense because the hairpin default Y-offset is 3.5. Therefore you would expect this to be the reading in the Inspector.
Title Inspector: Minimum distance and and Y Offset are not reading true Inspector: min distance and offset values do not update immediately when moving into the skyline using Inspector contros

The first behavior above is another a side effect of what I described previously. The offset starts out showing you the style value even though autoplace has adjusted it - this for compatibility with 3.0, but also because it ends up being a useful behavior for consistency when moving multiple elements at once. Then, as mentioned above, when you move it into the skyline using the Inspector, the new faciity kicks in and converts that to an absolute offset, but the Inspector doesn't allow itself to be updated in mid-operation. So now, when you click the arrow button again, you're really setting the wrong value. The hairpin response to the numeric value you are setting in the Inspector. Again, if you clicked off then reclicked, you'd get what you expect.

So this is all still due to the Inspector not allowing its value to be updated while it is still in control.

The second is the same, really. Resetting to style default moves into the skyline, so it too involves converting the default autoplaced offset into an absolute one. The value changes immediately but the Inpsector won't show you this until you click off and on again.

Title Inspector: min distance and offset values do not update immediately when moving into the skyline using Inspector contros Inspector: min distance and offset values do not update immediately when moving into the skyline using Inspector controls

For an example involving String Numbers, see attached file.

  1. Open without taking a reset.
  2. Click on the first string number and press the Offset "Reset to style default" button.
  3. Click on and off the string number and note the change in the Min. dist. and Y-offset readings.
    Result: Readings change unexpectedly from 0.5/0 to 0.25/-4.56.
  4. Now press Ctrl + R to reset.
    Result: The String number unexpectedly shifts its vertical position a little.
  5. Click on and off the string number and note the change in the Min. dist. and Y-offset readings.
    Result: As expected, the readings remain the same at 0.5/0.

Conclusion: The Inspector readings behave as expected when you press Reset, but unexpectedly when you use the "Reset to style default" button.

Attachment Size
string_numbers.mscz 12.26 KB

Exactly, as I said, the Inspector does not allow itself to be updated externally while you are using it. So if you are using the Inspector to make a change, then its display is locked while you are still using it. But it updates normally if you change values any other way - Ctrl+R, drag, arrow keys, etc.