What is the common practice to save settings in Windows Desktop applications with config file?
Is it acceptable to change settings only in run-time, but in file optionally?
If Yes, how to provide this option to user?
(details below)

I am developing old-style Windows Desktop Application in Delphi 7.
Application has several settings parameters used in run-time.
Application has a settings dialog windows, parameters initially are loaded from configuration (XML) file, and cached in memory.

Originally there was possibility to change parameters only for current run-time session.
Later I received requirement to allow to user possibility to save "somehow" optionally/explicitly changes to config file too.

I implemented in next way:
When user performs changes and then click OK Button other dialog is opened, asking if it want to change settings in file too.. (similar like in Windows Explorer, folder properties, read-only flag, another dialog is opened to ask if apply to sub-folders)

This question appears to be off-topic because it is about implementation.
–
Code MaverickFeb 20 '14 at 16:25

1

@CodeMaverick, the question is about UX (User eXperience) I asked if there exists some common/best-practice pattern for such mechanism. Sorry, this is my 1st post here, and I am fully dummy in UX :)
–
ALZFeb 20 '14 at 16:34

2

I can see the UX implications here. I think the wording of the question hides the UX implications. The major issue is that typically, especially in Windows, settings are "saved." It is unexpected to have the settings apply to only the current session. How does a UI designer make this behavior clear?
–
mawcscoFeb 20 '14 at 16:45

1

@ALZ I was merely pointing out that I don't think the question is actually off-topic. I think the question should be reworded to get quality answers.
–
mawcscoFeb 20 '14 at 17:01

1

On windows it is common practice that when changing settings these are preserved from then on. Which means that the new settings should survive stopping and starting the application. And that in general means saving them to file or to a database. To be blunt: I would curse - and probably remove - any application that did not remember my settings from one session to the next.
–
Marjan VenemaFeb 20 '14 at 18:52

4 Answers
4

I think the problem is you are looking at the technological implementation instead of the user experience. The user generally doesn't care where they are saved, or how they are saved, only that they are saved. So instead of asking the user to deal with files, assume the user expects you to save them. It's then your choice of where to save them. Use a versioning system, at least keeping the prior saved state. Then, offer the user the chance to "Use previous settings?" or "Undo last changes?", or even "Reset to defaults?

Instead of a confirmation pop up after user has clicked the OK button, the better user experience would be adding a "Save changes to configuration file" check-box within the Settings window. User experience benefits include: 1. no annoying pop up after the OK action; 2. present all possible options when user is in Settings; 3. less clicks.

I think this is like how Microsoft Word behaves when it asks for "save changes to normal.dot template?" or something like that. That gives me a knowledge that Microsoft Word might not, and able to save my changes as default for future documents (even though they didn't make it clear at first time, what the heck was normal.dot?). I think the best way to implement this is that you need to have / preserve:

that question box you've already use, but change the words, into: "Apply just for this session, or also make it default for future sessions?" and give three buttons "just for this session", "also for future sessions", and "cancel".

add a checkbox on the dialog box "don't ask me again (you can change this in the settings)".

add a checkbox on the settings window "ask me about my preference on how to apply the settings."