Age | Commit message (Collapse) | Author |
|
The cloud manager registers itself as an event source as a mean to be polled
periodically by the GUI or engine code. The periodical polling is used to
update the OSD icon indicating background sync activity.
Also move the cloud icon from ConnectionManager to CloudManager,
allowing to decouple icon handling from network connections updates.
|
|
|
|
|
|
|
|
"No Storage connected!" error message is passed to the error callback
now when there is no Storage connected to the CloudManager.
|
|
Now it's not hardcoded based on USE_SDL_NET, but one or another value is
used depending on currently selected LocalWebserver's port.
|
|
I knew there were some, but I wanted to fix them once, instead of doing
it all the time.
|
|
Nothing really major.
|
|
|
|
We do that in CloudManager::replaceStorage(), but I've tried to
eliminate such possibility by adding a check in the StorageWizardDialog.
|
|
|
|
We had a few places where their deprecated API v1 was used.
|
|
|
|
It now keeps track of downloaded bytes.
|
|
|
|
It now shows the remote and local directories and a progress bar.
Storage now shows OSD messages on download success and failure.
|
|
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.
|
|
Were not returning created Request.
|
|
|
|
Mostly on format string
|
|
Available as LocalServer singleton. It's being started and stopped by
StorageWizardDialog. It doesn't handle clients yet, though.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CloudManager::getStorageConfigName()
|
|
One can enter the code, press 'Connect' button and get a working
Storage!
|
|
Instead of all these atoull() I've added everywhere.
|
|
Commit changes CloudManager and Storages so they would automatically
refresh the fields when the could.
|
|
It now has methods to update Storage's information.
|
|
It now supports only one storage of each type. Only one Storage could be
loaded to the memory as well.
Options' Cloud tab now changes the Storage only when user pressed OK
button, giving the ability to look through the Storages without actually
changing them.
|
|
And corresponding stub implementations in CloudManager.
|
|
* Storage::name();
* CloudManager::getStorageName();
* CloudManager::getStorageIndex();
* CloudManager::listStorages();
* CloudManager::switchStorage().
|
|
Now it needs another scope and uses "root" instead of "appDataFolder".
|
|
When listing directories, you get a list of StorageFiles, which path()
is actually Google Drive id. Thus, if you list a directory recursively,
you won't be able to determine whether all files are within one
directory or have some hierarchy. I'd fix that as soon as it would be
needed.
|
|
Now we can create directories in Google Drive by path, not parent id +
directory name!
|
|
GoogleDriveResolveIdRequest gets a lowercase path and searches for the
specified file's id. To do that it lists path's subdirectories one by
one with GoogleDriveListDirectoryByIdRequest.
GoogleDriveListDirectoryByIdRequest gets a Google Drive id and lists
that directory (not recursively).
|
|
|
|
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!
|
|
So other classes could use that information without casting.
|
|
CloudIcon can easily use CloudMan.isWorking()
|
|
It has its own GoogleDriveTokenRefresher and knows how to do info().
This commit also contains JSON int -> long long int fix and
CurlJsonRequest '\n' -> ' ' fix.
|
|
It's needed to ::destroy() it in main().
|