Alexander Tkachev
4d88f51de9
CLOUD: Add query parameters URL encoding
...
In local webserver's links.
Fixed URL decoding to understand '+', by the way. Firefox sends these
instead of spaces and "%2B" instead of '+'.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
89a1a54982
CLOUD: Update GetClientHandler's buffer
...
It's not static now and it's increased to 1 MB.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b40bfaa046
CLOUD: Add "/download" handler
...
Now one can download files from the device through browser!
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8a9d126152
CLOUD: Move "/create" to separate Handler
...
It does redirect to "/files" on success, so user doesn't even see the
strange "/create" URL at all.
This commit is for keeping these handlers small, not making one
(FilesPageHandler in this case) do everything.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ab4361a76b
CLOUD: Make "/create" work
...
One can now create directories through browser.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
48e3fff6bc
CLOUD: Refactor LocalWebserver
...
Its handlers are now more compact. This commit moves Handler classes in
handlers\ directory.
ResourceHandler ignores "hidden" files in the archive, and these are
used as markup templates in IndexPageHandler and FilesPageHandler.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
627bda9d82
COMMON: Add replace(String, String, String)
...
Searches for a substring in the string and replaces it with the other
string.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e47b6c04b3
CLOUD: Make "/files" list directories
...
Including both virtual "/root" and "/saves" ones.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
c409d29f66
CLOUD: Add "/files" handler
...
Shows the page with controls, but doesn't actually list the directories,
create the specified ones or allows to upload files yet.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
eae57728d1
CLOUD: Resolve local machine's IP
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e601c39802
CLOUD: Make "Run server" button active
...
It should show the real server's IP over there, but that doesn't work
yet.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
3da38ca60b
CLOUD: Replace USE_CLOUD with USE_LIBCURL
...
In most cases that's the right one to check. USE_CLOUD is defined when
either USE_LIBCURL or USE_SDL_NET are, which means if there is no curl,
USE_CLOUD still could be defined and linking errors would appear.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
211d9ed5f6
GUI: Fix Options' Cloud tab reflowing
2016-08-24 16:07:55 +06:00
Alexander Tkachev
81c85b6651
CLOUD: Fix SaveLoadDialogs to check USE_CLOUD
...
Linking was failing when disabling curl support.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ad069f442c
GUI: Add "Run server" button in Cloud tab
2016-08-24 16:07:55 +06:00
Alexander Tkachev
2284333b1c
GUI: Add lowres support for DownloadDialog's button
...
No actual translations, though. Should be just "Cancel", because "Cancel
download" is too long for lowres mode.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
a5765a339e
GUI: Update DownloadDialog
...
It now less empty, because if there is no download in progress, user
sees the RemoteBrowser instead of empty dialog. The cancel button is now
in the left bottom corner.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
1cfdb96616
CLOUD: Fix FolderDownloadRequest
...
Actually, I'm not completely sure, but this fixed the segfault when user
closes ScummVM during the download. Even if that's not a fix, these
lines must be in this method anyway.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
659dcd9702
GUI: Fix SaveLoadDialog
...
It was SavesSyncRequest's target even when closed.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
052d8bf0ae
GUI: Forbid using download directory in "Add Game"
2016-08-24 16:07:55 +06:00
Alexander Tkachev
458bfcec79
GUI: Fix DownloadDialog path creation
...
Was adding a path separator even when none is required.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ddb1a6ccb6
GUI: Upgrade DownloadDialog
...
It now shows the remote and local directories and a progress bar.
Storage now shows OSD messages on download success and failure.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b8ee9d4e7d
CLOUD: Add FolderDownload-related methods in Storage
...
CloudManager's shortcuts are added too.
The idea is to keep FolderDownload request within Storage, and provide
necessary means to access it. The download is started and cancelled
through the DownloadDialog.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
71a326493b
GUI: Initiate download in DownloadDialog
2016-08-24 16:07:55 +06:00
Alexander Tkachev
10250af251
CLOUD: Fix CloudManager's methods
...
Were not returning created Request.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
dc0a956172
CLOUD: Add CloudManager::downloadFolder()
2016-08-24 16:07:55 +06:00
Alexander Tkachev
d776b53971
GUI: Use RemoteBrowser's result in DownloadDialog
...
It now checks the selected local directory, and shows different
MessageDialogs to notify user of mistake or ambiguous situation.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
c32d6fa047
GUI: Add error message in RemoteBrowser
...
For the error callback case.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8972f28bc1
GUI: Add RemoteBrowser file list sorting
...
Because Dropbox has no means to specify files order.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
a37c639986
CLOUD: Make Google Drive sort files list
...
GoogleDriveListDirectoryByIdRequest now uses "orderBy" field to specify
that we want the commonly used "alphabetical, folders first" order.
That's mostly needed for RemoteBrowserDialog, because Requests don't
care about the order, and this one is more user-friendly.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
6faf2c2617
GUI: Add RemoteBrowser parent directories remembering
...
No wait when "Go up" is pressed. These contents could be invalid,
though. In order to refresh contents, one has to go up one more time and
then get back inside (in root folder - just press "Go up" to refresh
it).
2016-08-24 16:07:55 +06:00
Alexander Tkachev
51a7232c73
GUI: Fix RemoteBrowser Request handling
...
Init with NULL, ignore callbacks, and such.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
73bb2e20af
GUI: Clean up in RemoteBrowser
2016-08-24 16:07:55 +06:00
Alexander Tkachev
4aa8e23ea2
GUI: Make RemoteBrowser show "Loading..."
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e388accda3
GUI: Fix "Go up"
...
OneDrive and Google Drive paths do not start with '/', so one was unable
to go up to root.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
72b82bd2aa
GUI: Add RemoteBrowserDialog
...
WIP. Tested with Dropbox.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
97c0bbd238
GUI: Add DownloadDialog sketch
2016-08-24 16:07:55 +06:00
Alexander Tkachev
acce1c89ab
CLOUD: Fix saves sync
...
Tested that on actual unix system and found out a few minor bugs related
to paths.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
f3a392359b
CLOUD: Fix finishSuccess() warning
2016-08-24 16:07:55 +06:00
Alexander Tkachev
fa3ea83165
CLOUD: Fix some warnings
...
Mostly on format string
2016-08-24 16:07:55 +06:00
Peter Bozsó
cff183536b
CLOUD: Fix crash on exiting ScummVM while ConnMan is active
2016-08-24 16:07:55 +06:00
Alexander Tkachev
4c381dafa3
CLOUD: Delete the incomplete file (when downloading)
2016-08-24 16:07:55 +06:00
Alexander Tkachev
2d3cfffa84
KYRA: Fix openSaveForWriting() to return OutSaveFile
2016-08-24 16:07:55 +06:00
Alexander Tkachev
65e87c6c70
CLOUD: Update save's timestamp on rewrite
...
This commit moves save/load timestamps static methods into
DefaultSaveFileManager and fixes a few related bugs.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
aee713141b
CLOUD: Make OutSaveFile start saves sync
...
It had to become a proxy class in order to do that.
finalize() starts the saves sync.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
81106b0444
CLOUD: Update local server's style.css
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8484273f36
CLOUD: Fix "-Wcast-qual"
...
The passed buffer is not changed, so could be `const`.
You might see that `postFields.c_str()` is `buffer`. Yet, as it's
`postFields`, it's used for POST in curl_easy_setopt(), which copies the
passed buffer. When `buffer` is used for upload, it's an actual bytes
buffer, kept in CurlRequest.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
caa53d9f6c
CLOUD: Fix "-Wconversion-null"
...
That `false` came from TranslationManager's function, which was
returning bool, not a pointer. Somehow missed that line.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
39eb76f8c2
CLOUD: Fix "zero-length format string" warning
2016-08-24 16:07:55 +06:00
Alexander Tkachev
04cef8928c
CLOUD: Fix "type qualifiers ignored" warning
2016-08-24 16:07:55 +06:00