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

Reply via email to