In practice, this means we should aim for the tools to adapt to the user's behavior if we can, rather than expose all of these as explicit customization settings to the user.
This is a much better user experience and doesn't add to the tool's complexity, it just happens as the user uses the tool, it is implicit, and therefore much better.
If possible, always use personalization over customization.
Concrete examples:
See PersonalizationManager.h for full API.
Personalization is stored as a QVariantMap, and based on unique keys.
There are two possible storage locations:
You can also access personalization with helper methods from CEditor, CAssetEditor, or CEditorDialog.