This avoids the filter text to take the focus.
In Android this prevents the launcher to start with the virtual keyboard
displayed.
In the future, the widget could also take keyboards event into account
like the ListWidget one.
This sendCommand() call interrupts the "this game is unsupported" call,
causing it to automatically cancel.
Fixes a bug introduced by 8cda1fe870e76efd7b13514ab304af64a8187377.
Also adds Cloud::Storage::SyncDownloadingInfo struct to pass around a bunch of numbers instead of having 3 methods for each number (in CloudManager, Storage and SavesSyncRequest).
A bit hacky (uses `friend`), but now while SaveLoadCloudSyncProgressDialog is modal, SaveLoadChooserDialog is still redrawing in the background, so the not-yet-ready saves buttons are being replaced with ready ones while the sync is in progress.
Removing GUI::CommandSender from SavesSyncRequest, so it doesn't update SaveLoadCloudSyncProgressDialog or SaveLoadChooserDialog from another thread.
Instead, these two are now polling CloudMan once per second themselves.
The previous commit was not sufficient as getIconsSet() returns a
reference to the SearchSet and it could then be used after the
mutex had been unlocked and while it was being modified in
initIconsSet() called in another thread.
The icons download dialog was triggering the grid launcher update after
icons had been downloaded. But that means no update was done if the
dialog had been closed during the download.
Now the GUIManager triggers the update. This fixes the missing update
when hiding the download dialog while downloading an icon set.
GuiManager::initIconsSet is called from a callback of the iconset
download dialog, which runs in a separate thread. That means the
iconset can be accessed from two separate thread (the GUI thread,
and the download thread).
This was not an issue until the previous commit as closing the
download dialog while a download was ongoing would crash ScummVM.
But now that the crash is fixed, a race condition was possible.
When using the mouse wheel (scroll up/down) in the Grid view, item tray for a selected game, ScummVM would exit
I didn't notice any side-effects from the fix, but someone more familiar with the code should confirm.
The crash was not systematic but occured in the case where adding
the game did not change the indexes for the first and last visible
items. The issue was that in setEntryList() was called it did not
cleat the _visibleEntryList array that still contained dangling
pointers to the old items in the _dataEntryList. In most cases
the _visibleEntryList would be updated with pointers to the new
items when calcVisibleEntries() was called from reflowLayout(),
before being used in assignEntriesToItems() (also called from
reflowLayout()). But if the indexes of the first and last visible
items did not change, _visibleEntryList was not updated and we
got a crash in assignEntriesToItems() when trying to access freed
memory.
Also prevent segmentation fault cases related to low-res or switching from low-res to hi-res
And fix memory leak related to loading and scaling of the thumbnail image
A lot of the updated logic is borrowed from the saveload-dialog.cpp for the simple list view (with the thumbnail to the right of the list).
PR #3976 changed the game and global options dialogs so that they are
inside the ScummVM main window, instead of the game list chooser.
We now limit the option dialog width and size, so that there isn't too
much spacing in large resolutions.
Follow-up to the feature that allows skipping certain ADGF flags.
This here now also allows skipping of incomplete file/md5/size matches. It is basically the same behavior as the graylist. For the mass add all files are treated as if they are on the list.