Make display mode / CMS mode preferences non-persistent

An alternative implementation of !7758 (closed), which aims to make the display mode (e.g. outline, outline overlay) and CMS mode not persist between sessions, since this is a very frequent source of confusion! (Why is my object transparent?)

We do this by essentially converting them from Inkscape::Preferences to per-desktop variables.

We do this by essentially converting them from Inkscape::Preferences to global variables. Unify them with some other global variables that have been proliferating in Inkscape::Application, to cut down that class as much as possible for its eventual removal.

If there's any concern about having two preference systems, a persistent one (Inkscape::Preferences) and a non-persistent one (Inkscape::ForgetfulPrefs), note that there is a future where ForgetfulPrefs gets built out to a new, named preference system, including both persistent, non-persistent, and conditionally-persistent preferences, while fixing various well-known issues with the old preference system (no single source of truth for default values, bounds, etc, which can be specified differently by every accessor). This is made easy by C++20 "structural templates".

Edited by PBS

Merge request reports

Loading