Automatic handling of different preference file versions
USE CASE: WHAT DO YOU WANT TO DO?
Install and run a new version of TreeView without the need to manually reset preferences from an incompatible old version of treeview.
STEPS TO REPRODUCE AN ISSUE (OR TRIGGER A NEW FEATURE)
- Run TreeView version alpha02
- If you've previously used alpha03, reset the preferences
- Quit
- Run TreeView version alpha03
CURRENT BEHAVIOR
Display and behavior problems can occur when a newer treeview version is run which uses an old version of the application settings/preferences.
EXPECTED BEHAVIOR
Opening a new version of TreeView should ideally import and convert old preference versions to update them, but minimally automatically reset the preferences so that the user does not have to encounter issues and then do it manually. It may also be preferable to keep the preferences files separate for different TreeView versions so that a user can go back to an older version and still have their old settings.
DEVELOPERS ONLY SECTION
SUGGESTED CHANGE (Pseudocode optional)
- [OPTIONAL] Allow different versions of TreeView to maintain their own independent preferences files so that a user can go back to their older app without having lost their old settings. (This option is useful only if newer versions require the user to reset their preferences.)
- When a new version of treeview is run and its required preference version is greater than the detected existing preferences, present the user with a dialog saying that they must reset their preferences to run the newer version or else allow them to cancel if they're concerned about losing their prefs.
- [IDEAL/OPTIONAL] When a new version of treeview is run and its required preference version is greater than the detected existing preferences, import/convert the old preferences to the newer version without informing the user.
- [IDEAL/OPTIONAL] When an old version of treeview is run and its required preference version is less than the detected existing preferences, warn the user in a dialog that they must either use the newer version because the preferences are incompatible or give them the option to reset the preferences (without import).
FILES AFFECTED (where the changes will be implemented) - developers only
unknown
LEVEL OF EFFORT - developers only
major
COMMENTS
Comments (3)
-
reporter -
reporter - changed component to Settings
-
reporter - removed milestone
Removing milestone: Settings (automated comment)
- Log in to comment
Anytime we change the preferences, we should write a conversion routine from the previous version to the most up to date version.