..
   Artemis document is copyright 2016 Bruce Ravel and released under
   The Creative Commons Attribution-ShareAlike License
   http://creativecommons.org/licenses/by-sa/3.0/


Managing preferences
====================

:demeter:`demeter` has a mountain of preferences available for the
user to tinker with.  This may, I suppose, be a problem.  There is a
school of thought in user interface design that asserts that a program
should be simple, offering the user a small number of carefully
considered configurable options, all of which have sensible defaults.
That sort of thing is usually considered :quoted:`user friendly`,
while a dizzying array of configrable options is considered to be
hostile to the user.

I don't disagree with that.  However, I am not so lucky as to have
teams dedicated to user interface design and product testing.  I don't
have the luxury of testing design decisions to determine if they are
successful.

Unfortunately, there are a lot of aspects of the software that need
sensible default values. In general, I have a good idea what a
sensible value might be, but I am rarely certain. My solution for any
option or parameter whose sensible default is open to interpretation
is to make it configurable.  As a result, there are 100s of aspects of
:demeter:`demeter` that can be configured, ranging from default
parameter values to the colors of things that get plotted.

.. _fig-prefsart:
.. figure:: ../_images/prefsart.png
   :target: _images/prefsart.png
   :align: center

   The preferences dialog in Artemis.


:demeter:`artemis` presents all of :demeter:`demeter`'s configuration
options in the Preferences window, which can be displayed from the
File Menu.  Shown here, the :guilabel:`artemis` group has been opened
and the :configparam:`Artemis,plot_after_fit` option has been
selected. Since it takes one of predefined list of possible values,
you are presented with an option menu for selecting among the
possibilities. The default value can be restored by pressing the
button labeled as :demeter:`demeter`'s default. In the text area, the
option is described. Once you change an option, you can apply it to
the current session or apply it and save its value to
:demeter:`demeter`'s initialization file.

Different configuration options take different kinds of values. For
example, some are filenames, strings, real numbers, integers, colors,
and so on. Controls appropriate to the value type will be provided when
the option is clicked on.
