The assignment back to _saveList is required, because the initial read does
not assign playtime.
In case the slot is empty, querySaveMetaInfos returns an empty description
with saveSlot -1 on most engines, so _saveList[selItem] loses its slot.
Cover this by adding a check.
Reverts 0425dff824.
This revert part of a17816f1 (GUI: Warn when saving a "young" game
over an "older" one).
The issue was that when trying to save in a new slot with the list
save dialog, this was not creating the save.
This finishes to fix bug #12850
In my case I had a section where only the gameid was defined and no path.
Obviously this is not valid and I cannot start that game. But this is not
a reason to crash with an unknown "path" key error when starting ScummVM.
This was a regression introduced in fea19c69a. The code forgot to
add the margin on either side of the text when computing the width
of the dialog.
I also introduced a variable with the mergin value to clarify the
code (and also make it easy to change that margin in the future if
we want to).
Now that we can get an accurate HiDPI screen scaling from OSystem,
defaulting to using that seems to make sense. But we may still want
to use a slightly different scaling. The GUI scale option allows
that by providing a scaling (in percentage) with which to multiply
the HiDPI scaling.
I think it works better than a base resolution as it avoids having
the GUI getting bigger or smaller when we resize the window.
This commit keeps a popup widget, but this could be changed with
a slider if we want more fine grain control.
This bumps the theme version.
The primary target is Android where a user may navigate to a location
where there is no read permission which leads to them being stuck.
This option has no effect on those native browse dialogs that do not
use the "browser_lastpath" config setting. Particularly, macOS is
not affected.
This fixes bug #12737.
The issue is that ThemeEngine::addFont was skipping every font
when translations are disabled, including those for the English
language. Indeed for those the function is called with language
of "*" (since this is what is specified in the theme) and not
an empty string as the implementation assumed.