Holehan’s Patterns

About

Settings Patterns


(:toc Pattern Overview:)

The Apply Changes pattern is work in progress.
Discuss? or login to edit Apply Changes!

Apply Changes

Summary

Either let users apply changes instantly. This means the settings will have effect right when the user changes them - without further user confirmation. The instant apply mechanism is best combined with the Revert Changes pattern.

Or offer an explicit apply mechanism. That way the user has to explicitly confirm that the changes he made should be applied.

Illustration


Apply Mechanisms Illustrated


Context

After the settings have been changed to the users' needs the settings have to come into effect. You are wondering whether your users should explicitly confirm the changes they made - or if the settings should be effective instantly.

Problems

Choosing the right apply mechanism is not as easy as it seems. Users, especially more experienced ones, like to explore and play around with the interface. The instant apply mechanism is supporting this explorative nature. Changes are coming into effect right away after the settings have been manipulated.

On the other hand people want to feel safe with their choices. So walking through the settings, selecting the ones that seem fit and checking the settings again before applying them is a valid goal as well. This is better supported by the explicit apply mechanism.

Explicit apply comes with a few pitfalls. Some users don't understand the difference between "OK" and "Apply" and press both each time they confirm the settings.

Also it is unclear what happens when a user switches to another settings page - are the recently changed settings applied or discarded?

Examples


Vista Explicit Apply

Kcontrol Explicit Apply

Kedit Explicit Apply



Gedit Instant Apply

OSX Instant Apply


Solution

  • Decide for one mechansim and use it consistently
  • Generally stick to the mechansim that is used by the toolkit you are programming in
  • If you have the choice pick instant apply.
  • For instant apply take care of the following
    • Instant apply works best in combination with an undo changes mechanism.
    • For settings that can't be applied instantly, apply them after the settings window is closed. Such settings include e.g. network settings or settings triggering cpu intensive tasks.
    • Settings modal to the main settings dialog are explicit settings. Especially popped up advanced preferences are modal and therefore applied explicitly.
  • For explicit apply
    • Don't ask for confirmation of settings if the user switches to another tab. This is irritating and breaks the flow of work.

Rationale

Code Snippets

Show Code Example

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

Related Patterns

Revert Changes Pattern.AlsoRelatedPattern?

Literature

Categories: Settings

· Login