Hi! On 3/2/20 15:26, Ancor Gonzalez Sosa wrote: > This started as a discussion in > https://bugzilla.suse.com/show_bug.cgi?id=1161460 which leads me to > realize we have the same "hack" repeated in dozens of YaST modules. > > The point is that there is a function called `Popup::ReallyAbort` that > all YaST modules call when asked to quit. The only argument of that > function is a boolean saying whether something has changed. If nothing > has changed, the function displays a "Really abort?" pop-up. But if some > change has been made (i.e. the argument is true), it will add "All > changes will be lost!" > > So we have a common API used by all modules to show a consistent > behavior. So far, so good... Or not? Of course, not. This was surely > conceived to be used like this: > > Popup.ReallyAbort(TheModule.modified?) > > But in practice most modules (all except 4 or 5, as far as I can say) > use that function like this: > > def ReallyAbort > !TheModule.modified? || Popup.ReallyAbort(true) > end > > Which actually invalidates the logic of the function and simply shows > nothing when quiting without changes. And that very same code is > repeated over and over in a dozen of YaST modules. See [1]. > > Did we at some point decided that quiting without changes should not ask > for confirmation? If so, why did we implement the very same bypass for > the `Popup.ReallyAbort` logic in dozens of modules instead of changing > the behavior of the function (or providing an alternative function)? > > We should agreed on which is the desired behavior
As user, I prefer to see confirmation popups only when needed. If I did not any change, there is nothing to worry about if I quit the module by mistake. I just need to run the module again. So, I vote for not displaying the "Really abort?" pop up if nothing changed. > and then implement it > by using whatever common function (ReallyAbort or a new one) in an > honest way. I created a card for that[2] but I wanted to start the > discussion here first. Thanks > > Cheers > > [1] https://github.com/search?q=org%3Ayast+reallyabort&type=Code > [2] https://trello.com/c/UlVLiDTU/ > -- David Díaz González YaST Team at SUSE Linux GmbH -- To unsubscribe, e-mail: yast-devel+unsubscr...@opensuse.org To contact the owner, e-mail: yast-devel+ow...@opensuse.org