Summary: Client's server options "Save" button unintuitive
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sunday 11/21/10 at 16:47
                Category: client-gtk-2.0
                Severity: 1 - Wish
                Priority: 1 - Later
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
                 Release: S2_3 r18553
         Discussion Lock: Any
        Operating System: None
         Planned Release: 



I just ran into a behaviour in the Gtk client's server options dialog which
had me confused for a while. However, I don't have a good counter-proposal.

In S2_2 (where the choices were Cancel/Apply/Save), when you hit "Save", the
0 applied the settings currently in the dialog to the running server;
0 wrote a new .freeciv-client-rc-2.2 file containing those same settings;
0 closed the dialog.

In S2_3 (where the choices are Cancel/Save/Refresh/Reset/Apply/OK), hitting
0 doesn't apply the settings currently in the dialog to the running server;
0 writes a new rc file containing the settings *currently on the server* (not
the ones in the dialog);
0 doesn't close the dialog.

I find this a bit unintuitive -- I'd expect "Apply", "OK", and "Save" all to
take the values from the dialog and put them somewhere.

This means that if you want to change a setting for this game and all future
games, you have to remember to hit all of Apply, Save, OK, in that order --
the more natural Save, OK sequence won't save it for future games.

I think I'd prefer it if "Save" came with an implicit "Apply". This would
mean that "Reset" would stop working after hitting "Save", but I think I
could live with that. (It would perhaps be better for the button to
explicitly say "Save & Apply", but (a) there's no GTK_STOCK_x for that, (b)
the buttons take up enough room as it is, (c) string freeze.)

Unfortunately, it's not trivial to implement this, as the loop is now closed
on the server; in S2_3, when "Apply" is pressed, all that happens is that the
client sends new settings to the server; it immediately doesn't update its own
idea of the settings. I think that's correct, as the server may reject or
defer settings (e.g., votes) (but S2_2 did do this, see
settable_options_processing()). The client's idea of the options only gets
updated once the server confirms the new setting, which could take some time.
With this design, it's not really practical to implement a "Save & Apply"

Alternatively, the means of saving the server settings to the rc-file could
be moved off the server options dialog. I'm not sure where to, unless it
becomes implicit in the client "Save Options Now" / "Save Options on Exit"
(bug #17122 would need fixing first).

I think this came in with patch #1485; I don't see rationale there one way or
the other.

(The other clients don't seem to have ways of saving server settings.)


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to