Holehan’s Patterns

About

Settings Patterns


(:toc Pattern Overview:)

The Advanced Preferences pattern is work in progress.
Discuss or login to edit Advanced Preferences!

Advanced Preferences

Summary

Separate advanced preferences from frequently used ones. However make sure to present the advanced preferences in context.

Illustration


In a pop up window

Unfold button

Advanced preferences in an extra tab


Context

You have set up the settings pages. You found out that some settings are only used by more experienced users. You have the feeling that these settings may irritate your main user group and are looking for a way to still provide these settings where they are fit.

Problem

Some settings are less important to your main target users. But still they can be of great value to a smaller portion of your user base - the portion that likes to tweak your application and get the maximum out of it.

In order to not irritate your main users and at the same time alienate the more advanced ones it is best to not present these settings in the main settings window. You should rather choose a representation that offers your users separate advanced preferences. Access to these advanced preferences should nevertheless be available in context, i.e. when and where the users need them.

Examples


Konqueror - Pop Up Advanced Web Settings

Goliath - Unfolded Advanced Settings

Thunderbird - Tabbed Advanced Settings


Solution

  • If the advanced peferences comprise only a few settings, hide them under a folded widget. If the user clicks the widget, the advanced preferences unfold. Clicking the widget again folds them in again. The benefit of the folded widget is that it can be placed in context next to the group of settings it semantically belongs to.
  • If there are too many advanced preferences to let the dialog grow dynamically, hide the advanced preferences under a button. If pressed it pops up the advanced preferences in a seperate window. This also has the benefit that the preferences can be shown in context.
  • In case you have advanced preferences that don't fit into any groups or settings pages, you may also introduce a dedicated "Advanced Preferences" main settings entry.

Rationale

  1. #include <iostream.h>
  2.  
  3. main()
  4. {
  5.     cout << "Hello World!";
  6.     return 0;
  7. }

Literature

Categories: Settings

· Login