Age | Commit message (Collapse) | Author |
|
Prevents the save/load dialog from refreshing and loosing the selection
when there is no file to download.
|
|
This commit updates all usages of Network::ErrorResponse to specify at
least method name if not precise reason why operation failed.
|
|
This was introduced by my previous commit to this where I accidently
inverted the tests during refactoring.
|
|
The warning emitted here was due to debug() call with an empty format
string, so this could have been fixed by replacing this with "%s", "".
However, this change should be better since it avoids the duplication
of the number of file check over several lines and reduces the string
duplication i.e. DRY improvements.
|
|
In PR#1754 we've discussed and decided to ignore hidden (having a name
starting with '.') files while syncing saves or downloading game files.
This commit adds a CloudManager method to test whether file should be
ignored, and this method could be extended later if we need to ignore
some other specific file names.
|
|
- added missing 'd' in "%d" in SavesSyncRequest;
- removed trailing ',' in enum in gui/options.h;
- fixed #endif to have // before USE_LIBCURL in gui/options.h.
|
|
This mostly affects OneDrive saves syncing, because it is the only cloud
provider to return 0 as timestamp of (non-)created file. 0 is treated as
EOF in /saves/timestamps file, thus all timestamps after such 0
timestamps were ignored and files were reuploaded as being "new". This
commit also adds more verbose debug information on SavesSyncRequest
decisions making for easier debugging.
|
|
Something changed and old API endpoint "api.onedrive.com" now does not
work. The other one, "graph.microsoft.com", does, but there were some
other changes in JSON it returns. These changes are also in this commit.
|
|
|
|
Remove unnecessary JSON warnings, fix a few places.
|
|
Add JSON checks in the callback.
|
|
Added prefixes, used debug(9).
|
|
|
|
|
|
I knew there were some, but I wanted to fix them once, instead of doing
it all the time.
|
|
Nothing really major.
|
|
Box uses POST multipart/form requests for uploading. Such requests could
be sent with libcurl if we either have a file available or a buffer with
this file's contents.
SavesSyncRequest was using Storage::upload(ReadStream *), which couldn't
be implemented in BoxStorage. Thus I've added a method to test whether
such upload is supported and, if it's not, SavesSyncRequest uses the
other.
|
|
|
|
|
|
This commit moves save/load timestamps static methods into
DefaultSaveFileManager and fixes a few related bugs.
|
|
Used in SavesSyncRequest to update Storage's last sync date.
|
|
Commit changes CloudManager and Storages so they would automatically
refresh the fields when the could.
|
|
Only two places to update, as others still require id resolving.
|
|
Now it also creates the "base" ScummVM directory if there is no such
directory yet. This way SavesSyncRequest works fine when no "ScummVM" or
"ScummVM/Saves" folder exist in the Google Drive.
|
|
|
|
It's common for Save/Load dialogs and SavesSyncRequest.
|
|
MetaEngines don't get "locked" files in the list, so won't try to open
these.
Save/Load dialog updates save list every time SavesSyncRequest tells it
to.
|
|
|
|
It's shown by SaveLoadChooserDialog when files are downloaded and some
save slots are locked. One can hide that dialog to interact with
non-locked slots or cancel saves sync completely. Dialog's label shows
current sync progress.
Dialog automatically hides itself when all files are downloaded.
WARNING: right now that results in a crash!
|
|
It also shows a "sync disabled" icon in case it has a savepath override.
|
|
Files we need are files to be downloaded, because that's what blocks us
from reading/writing in those.
|
|
Now one can learn whether SavesSyncRequest is running, its progress and
which files are being synced.
|
|
Now it would finish with error if spawned Request is nullptr.
|
|
|
|
Also add CloudManager::testFeature(), because syncSaves() now works fine
and I don't want to break it again and again with my testing requests.
|
|
It actually works fine, but small Storage::savesDirectoryPath() was
added, because Dropbox's directories must start with a slash, and
OneDrive's directories must not.
Saves sync tested and it works fine with OneDrive.
|
|
Added ErrorResponse and ErrorCallback. Each Request now has an
ErrorCallback, which should be called instead of usual callback in case
of failure.
|
|
It now actually read the "timestamps" file, loads and saves files as it
should, ignores Dropbox's "not_found" error.
|
|
It contains flags to indicate whether Request was interrupted or failed,
so dependent Requests may see that list is incomplete.
|
|
It contains not just "success" flag, but also "file" struct, so the
caller can find out some information about uploaded file - like
timestamp.
|
|
Never tested it, actually. It requires Storage to implement upload()
method and me to find some way to get saves' ReadStream.
The saveTimestamps() and loadTimestamps() part should be tested, other
parts should work fine.
|