class SettingsBase<> reverses the order of entries with multiple keys.
The function LauncherSettings.values() returns settings in the reverse order they appear in the launcher.cfg file. e.g. If the launcher.cfg file has this: [Profiles] currentprofile=Default Default/content=Tribunal.esm Default/content=Bloodmoon.esm Default/content=Morrowind.esm
Then calling LauncherSettings.values("Profiles/Default/content") returns strings in the following order. Morrowind.esm, Bloodmoon.esm, Tribunal.esm
There's a similar issue if you add settings to the LauncherSettings class and then call LauncerSettings.writeFile().
The root cause is LauncherSettings ultimately uses QMap<>.insertMulti() to add values with same key. From the Qt documentation [quote] The items that share the same key are available from most recently to least recently inserted. [/quote]
LauncherSettings and GraphicsSettings appear to be the only classes that derive from SettingsBase<> Although there's also a GameSettings class with a very similar implementation.
(RM-2235 from redmine: created on 2014-12-28 by David Teviotdale, , closed on 2014-12-31 by nobody)