Closed ahall41 closed 8 months ago
Default
also applies the changes without clicking Apply
. In this case it is only 1 change, but should require Apply
(as Cancel
doesn't revert to the original setting).
Now all buttons Distribute audio groups
, Default
, Default for All
, Reset
and Apply
change settings immediately to the running organ, so they can not be undone with Cancel
.
So I'd replace the buttons Cancel
and OK
with the single button Close
. @larspalo @rousseldenis do you agree?
You need a Cancel
to ignore any changes you've made in the settings.
Two other connected issues I've noticed:
Reset
- nothing happens. This should perhaps clear the display? You have to either click Apply
or Cancel
to continue.Apply
. Gain then gets applied as 0.00000 (which is perhaps undesirable). If you clear out the box, it should be ignored?@oleg68 I agree with replacing Cancel and OK with a single Close button.
However, I see some bad UI design in this dialog that we eventually need fixing. The buttons currently activate whenever an element in the tree is selected. They should activate/de-activate depending on context. For instance it's pointless to have Apply active when no change has occured. Also, I noted that the behaviour of the buttons are not really (explicitly) documented in the help section which should be another TODO.
@larspalo what is you opinion about adding a confirmation box to Default
and Default to All
?
Default
is OK because it only affects one element (which you should then be able to Reset
?). But Default All
can undo everything you have just done, and needs to be applied with caution.
Seems, the name Default All
is not clear. It affects the selected element and all it's subelements. Might Default with subs
be better.
@oleg68 I was under the impression that "Default to All" was intended to revert all the settings to the odf (or combined odf plus bundled .cmb), not only the selected element(s). That might indeed need a confirmation. But I've not checked that code recently so I cannot say for sure.
The selected element(s) "Default" without any confirmation is no problem, I think.
What exactly was the purpose of "Reset"? If that is what I thought "Default to All" to be, then it should be renamed to "Revert to Odf".
Reset
puts the current values back as they were displayed (so if you change the wrong attribute or change your mind you can go back). It works OK for single elements, but (as identified) not for multiple.
Default for all
currently does apply to the selected items, being recursive down the tree. So if you click the top level, you can do the entire organ, but you could do just a rank - which I found quite useful yesterday making some adjustments. On a large organ (and a slowish PC) it takes a long time for the entire organ. I thought at first GO had started looping (so really needs a progress bar too)!
I was under the impression that "Default to All" was intended to revert all the settings to the odf (or combined odf plus bundled .cmb), not only the selected element(s)
No, not all. It reverts only the selected elements and all their subelements recursively. So the word 'All' is not precise.
I'd change it to Default with subs
.
I'm not sure that Default with subs
is all that helpful - what exactly do you mean by "subs"?
I'm not sure that
Default with subs
is all that helpful - what exactly do you mean by "subs"?
All subelements of selected elements, all subelements of the subelements and so on.
I'd change it to Default with subs
"Default recursively" might be a better description. But I'm starting to wonder if we really need so many default options at all...
"Default recursively" might be a better description. But I'm starting to wonder if we really need so many default options at all...
What is your idea? To get rid of the 'Default' button?
What is your idea? To get rid of the 'Default' button?
I think that a single button for all defaulting should really be enough if it's sensible enough to differ between what is currently selected in the tree (possibly with some kind of confirmation if multiple elements are selected or could be affected in unexpected ways). I'm not too concerned about the exact wording as long as it's behaviour is well documented. Also, the "Reset" button is somewhat ambiguous to me in this context and I personally don't find much use for it anyway as it's much too limited.
What we possibly end up with could be: "Distribute audio groups", "Default value(s)", "Apply" and then a "Close" like you suggested.
There is a subtle difference between setting the default for (say) a rank, and setting it for all the pipes in that rank. And a bug difference for setting the default for the organ and all its windchests, ranks and pipes. The current functionality is fine, except that it isn't clear that Default for All
is applied immediately - a simple 'Are you sure' popup would suffice.
Reset
is useful if you've changed something and want to reset the display because you changed the wrong thing, wiothout having to Cancel
and go back in to find the pipe you were changing.
There is a subtle difference between setting the default for (say) a rank
Yes, but a single default button with a message dialog for elements that have children asking if values should be defaulted recursively could still be enough, I think. If no children exist then the change(s) could be applied immediately to the selected elements.
Though I personally don't find any use for the "Reset", and I've been working with GrandOrgue for some 14 years and never used it except for testing now, I won't mind if it is kept but both the "Reset" and "Apply" must get some logic to really detect if they should be activated or not - like: are there changes that can be Reset, are there any changes that can be applied? A sure sign of bad UI design is if there are buttons that can be clicked that does nothing...
I'm starting working on this issue now.
I'm going to do the following change:
Reset
button to Discard
#1689Discard
and Apply
buttons depending on existance of unapplied changes #1689Cancel
and the OK
buttons with a single Close
button what will do the same as OK
earlier. Pressing on Discard
and then on Close
will do the same as did Cancel
before #1692Default for All
button #1693Default
button left to the Distribute audio groups
#1697Default
button when the selected items have subitems, then a message box will appear with the text Some of selected objects have subobjects. Do you want to reset also subobjects to default values?
with three buttons Cancel
, Yes
, No
with dthe default No
.
Yes
- reset the selected objects and all subobjects recursivelyNo
- reset only the the selected objectsCancel
- don't change anything #1693 @ahall41 @larspalo @rousseldenis do you agree with this approach?
Can I get back in a few days? I need to think about it but am tied up at the moment.
@ahall41 @larspalo @rousseldenis do you agree with this approach?
I think it looks very promising! The help file of course will need to be updated accordingly as some aspects weren't even covered before.
My only comment (and relates to the my initial "complaint") is to make it clear when you select Yes
there is no going back (and also that it might take some time).
@ahall41 @larspalo @rousseldenis
What layout is better: the first or the second?
The second. There is less wasted space at the bottom of the page (and it might all fit on my - by modern standards - low resolution monitor!). Perhaps a spacer between Distribute
and Default
?
Common practice these days seems to have Apply
, OK
and Cancel
. Apply
makes the changes and keeps the dialogue open, OK
makes the changes and closes it. And Cancel
closes without making any changes. Perhaps this de facto standard could be applied?
Common practice these days seems to have
Apply
,OK
andCancel
.Apply
makes the changes and keeps the dialogue open,OK
makes the changes and closes it. AndCancel
closes without making any changes. Perhaps this de facto standard could be applied?
No, it cann't. Because Discard and Apply relates only to the selected element(s) and it is intended to make changes to many elements before closing this dialog. So the OK
and Cancel
buttons were replaced with Close
.
@oleg68 I think the second. But I'd like just a little distance between the buttons sideways even within the groups.
@larspalo @ahall41 Is this all right?
@oleg68 Yes, I approve!
Thank you, @larspalo and @ahall41.
The new version of the dialog including the help changes will be available at https://github.com/oleg68/GrandOrgue-official/actions/runs/6677799862
But I cann't make a PR with them untill #1689, #1692, #1693 are merged. So approve them at first.
OK ... there's a small problem here. Select multiple items and change a value. Discard
doesn't do anything, and you can't Close
until you've pressed Apply
(except you can use the close button (X)
on the window). I also tried using Default
to reset, but you still have to Apply
before Close
. Discard
should clear the dialogue and disable Apply
.
BTW I'm not convinced that Discard
is any less confusing than Reset
... might it be possible to use tool tips to make it clear exactly what we are trying to achieve (
Please add a warning that setting the Default
for multiple objects may take (quite) some time.
There's a typo in the Help - should read changes not hanges after Close. And the image for Default is somewhat mangled?
After #1695 I managed to make the dialog a little bit smaller:
Fixed with #1689, #1692, #1693, #1697 and #1701
Thanks @oleg68. There's just one thing I noticed - the image in the help for Default
doesn't quite match the current dialogue?
@ahall41 Have you tried this intermediate build?
@oleg68 - yes. Its the bit under Default
, which reads (in the Help)
Some selected objects have subobjects
Do you want the subobjects also to be reset to defaults?
Note resetting cann't be undone.
And in the dialogue
Some selected objects have subobjects
Do you want the subobjects also to be reset to to defaults?
Note: resetting cannot be undone.
Note: resetting all subobjects may take some time.
Thank you, @ahall41. I submitted #1711
Default for All (
understandably) applies the changes immediately. If you click Cancel, then the defaults have already been set. In which case you should not need to clickApply
.It might be helpful to give a warning that this is going to happen, and also maybe a progress bar?
(Incidentally, I find it quite annoying to have to click on
Apply
then OK to get out of this dialog. Standard behaviour should beApply
makes the changes and leave the dialog open,OK
makes the changes and closes it,Cancel
closes without saving?)