Re: ANNOUNCE: PonG 0.11 "Ni"



On Fri, Apr 13, 2001 at 01:21:49PM -0700, Loban Amaan Rahman wrote:
> You are mostly right in that a lot of things can get applied immediately, but
> not *everything*. For example, suppose I use a rangebar or a spin button to
> choose a number between 1 and 100.

Absolutely.

It's also important to distinguish between preferences that apply
to the current wndow, to all windows, and preferences to be saved for
future use.

A general model of a preference box (I don't know how well this compares
with PONG) is... well, what follows is a mini-rant :-) because
preferences are hard to do well, and I think a general model of how
preferences work is needed, as well as how they interact with the
user and the environment.

preferences are really like object properties, e.g. for an application of
for a document or session.

A dialogue box for preferences/properties might work like this:

* display a set of values, controls to manipulate them, and a preview
* as the values change, update the preview
* optionally update the main window/model as values are changed
* an Apply button applies the values in the preferences box to the
  main application, or the selected object, as appropriate
* a "revert" or "reset" button resets all values to the value they had
  when the box was opened, or when Apply was lassed pressed, whichever
  is more recent
* a "revert to factory defaults" sets default values
* a "save" button saves preferences for next time
* a "try" button applies the preferences without saving for next time
* a "load" button might load preferences from a specific file
* a "save as" button might save specific preference sets

In gnome, "save" and "apply" are the same, and there is usually no
thought given to "reset to factory defaults".  Not all applications
have a "try" button, and I don't think I have seen load/save.  There's
not usually a way to have multiple active preferences -- e.g. in
gnome-terminal, all terminals have the same background colour, even
though I'd rather have a different background colour depending on the
computer I connect to.  I could hack that, but there's no easy way
as there is with xterm's preferences, say.

The lack of a specific "save" button is part of why it's so hard to
save preferences in gnome apps. For example, run 3 or 4 gnome sessions,
change the background colour in one of them, and now tell me what
colour the background will be next time you start gnome. It's random
whether it's saved or not, although usually settings are lost, because
each terminal saves its values when it exists (I think).  You have
to run a single terminal, change settings, then exit, for it to work
reliably.

I'm picking on gnome-terminal, but I am not sure that these are all
gnome-terminal bugs so much as a problenm with the preferences model.

The KDE UI guide suggests that users should not be aware of the mapping
between windows and unix processes, and that seems sensible. But if
there is significance to the mapping between preferences and windows,
that matters a lot.  Not knowing which gnome terminal will be affected
is a problem, of course, as is not knowing whether the preferences
will be saved.

We also need more consistency.  For example, the "global preferences"
in the Panel is confusing to people, at least judging by questions
on IRC.  Some applets have preferences (e.g. screen lock) and some
have properties.  There's even one with an "all properties" menu
that brings up a dlog with only 2 categories, and individual
submenus that are not in the "all properties" box!  So it's a mess
right now, and I am hoping PONG is a move towards ending that mess.

The gnome ui style guide work will help a lot here, and support
for multiple types of preferences/properties dialogues might also
come out of that I expect.

Lee

-- 
Liam Quin - Barefoot in Toronto - liam holoweb net - http://www.holoweb.net/
Ankh: irc.sorcery.net www.valinor.sorcery.net irc.gnome.org www.advogato.org
author, The Open Source XML Database Toolkit, Wiley, August 2000
Co-author, The XML Specification Guide, Wiley, 1999




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]