mConfig permits to save some settings with a preset name, while other settings are global. The system also permits hybrid combinations in order to suite as most workflows as possible, but it requires to know the rules that are in place.
There are two type of settings in mConfig:
Global settings: mConfig settings without the star label "*" are not preset depended. For example, if you change the video board model it will be changed for all presets.
Preset dependent settings: mConfig settings labeled with a star symbol "*" can be saved for each preset. But it is not obligatory to be saved. These are the rules:
- If you change a starred * setting (for example the projects path), the new value will be used until loading a preset that had a saved value for that particular setting.
- Only when you press the "Save Preset" button is when the starred * settings with their current values are explicitly saved for the selected preset. And only then is when that preset will remember that values the next time you select it.
- As a difference, if you change any of the starred* settings but you just press Ok without saving the preset, then the current settings are applied for next mistika sessions, but only temporally. As the current set of values have not been saved with any preset (not even the current one), they will be lost as soon as you load a preset containing different values for them
- The contextual "Propagate" function (put the pointer in one of the starrred* settings and use "Right mouse button->Propagate to all presets") permits to save the current setting with all presets. This is equivalent to load all presets one by one, changing the value and saving each preset manually. (Changing some sensitive fields may also trigger a dialog asking you if you want to propagate the new value to all other presets, and also other variables that can be tightly related to what you are changing)
A typical case of starred * setting is the "Project Path" setting. Some users may want the file paths to remain the same for all presets, while other users may want to have different file paths for different presets. Both things are possible by using the above rules. Example:
Let's suppose we start with a clean installation, and we have four presets. Preset1, Preset2, Preset3, and preset4.
The default projects path is /MISTIKA_PROJECTS, but by the moment it has not been saved with any preset. (It is just a default value)
Let's say that initially we are in Preset1 and make this change:
Projects path = /MyProjects
And save it with SavePreset. (with no propagation used, just saved for the current preset)
At this point, only Preset1 have the /MyProjects path explicitly defined for it. But when loading any other preset it will also respect the same value, because they have not been saved with a specific value for it. So from this point the projects path will remain as /MyProjects, no matter what preset you select.
Now let's say that we go to Preset2, set Projects to /MyProjects2, and save the preset.
From this point:
- Whenever we load Preset3, the projects path we will set to /MyProjects3
- Whenever we load Preset1 the projects path we will set to/MyProjects
- But if we load Preset2 or Preset4, the projects path will simply not change at all. It will stay in the last value that was loaded by a previous preset. This is because Preset1 and Preset4 have no saved value for this field, so they do not overwrite the current value.
Now let´s say that you select Preset1, change projects path to /MySharedProjects, and save preset. But this time you answer yes to the propagate presets question. From this point, all presets will have the /MySharedProjects path defined for them, so it is the used path for all cases.
Finally, let's say that now we set Preset4 to /MyProjects4, and save it (with no propagation).
From this point, whenever you load Preset4 it will always load /MyProjects4 as the projects path, while all other presets will always load /MySharedProjects as the projects path. (please note the difference with the previous example: Now there are no presets with undefined paths, so no preset will stay "in the current value")