User Configuration: Difference between revisions

From ParaQ Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:


* Store per-user configuration data
* Store per-user configuration data
** Window size / position
** Window size/position
** Dockwindow size / position
** Dockwindow size/position
** Server resources (e.g: recently used files)
** Server resources (e.g: recently used files)
** Server configurations
** Server configurations
Line 17: Line 17:
== Current Implementation ==
== Current Implementation ==


The current implementation stores configuration data in arbitrary ways:


* Per-user window/dockwindow size/position aren't stored at all.
* Per-user recently used files and server configurations are automatically stored using QSettings.
* Per-user custom filters can be explicitly saved/loaded to the filesystem as XML files.  Otherwise, they are lost.
* Per-site server configurations are stored in a file located in the same directory as the ParaView3 client.


== Proposed Implementation ==
On Win32, QSettings data is stored in the system registry, which severely limits the size of individual keys to 16K or less.
 
== Alternatives ==
 
# Use QSettings for everything
#* Store all configuration data using QSettings.
#* QSettings can be forced to use the filesystem for storage on all platforms, eliminating the limitations on data size when using the Win32 registry.
#* This provides a consistent, well-documented model for storing per-site data that can be overridden with per-user data.
#* Allow users to explicitly save & load individual bits & pieces of configuration data, to facilitate sharing.
# Use filesystem storage for everything
#* Store all configuration data in a file hierarchy somewhere.
#* Document the file hierarchy to facilitate sharing.
# Hybrid QSettings/filesystem storage
#* Store some configuration data using QSettings.
#* Store data that might be shared in a file hierarchy somewhere.
#* Document the file hierarchy to facilitate sharing.

Revision as of 11:44, 15 September 2006

Requirements

  • Store per-user configuration data
    • Window size/position
    • Dockwindow size/position
    • Server resources (e.g: recently used files)
    • Server configurations
    • Custom filters
  • Store per-site configuration data
    • Server configurations
    • Custom filters
  • Make it easy for users to share/exchange configuration data
    • Server configurations
    • Custom filters
  • Store arbitrarily-complex data - no limits on the size/complexity of data stored

Current Implementation

The current implementation stores configuration data in arbitrary ways:

  • Per-user window/dockwindow size/position aren't stored at all.
  • Per-user recently used files and server configurations are automatically stored using QSettings.
  • Per-user custom filters can be explicitly saved/loaded to the filesystem as XML files. Otherwise, they are lost.
  • Per-site server configurations are stored in a file located in the same directory as the ParaView3 client.

On Win32, QSettings data is stored in the system registry, which severely limits the size of individual keys to 16K or less.

Alternatives

  1. Use QSettings for everything
    • Store all configuration data using QSettings.
    • QSettings can be forced to use the filesystem for storage on all platforms, eliminating the limitations on data size when using the Win32 registry.
    • This provides a consistent, well-documented model for storing per-site data that can be overridden with per-user data.
    • Allow users to explicitly save & load individual bits & pieces of configuration data, to facilitate sharing.
  2. Use filesystem storage for everything
    • Store all configuration data in a file hierarchy somewhere.
    • Document the file hierarchy to facilitate sharing.
  3. Hybrid QSettings/filesystem storage
    • Store some configuration data using QSettings.
    • Store data that might be shared in a file hierarchy somewhere.
    • Document the file hierarchy to facilitate sharing.