Alexander Tkachev
6c5a8f34ea
CLOUD: Add SaveLoadCloudSyncProgress enum
...
It's common for Save/Load dialogs and SavesSyncRequest.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
9eb4aad7fd
CLOUD: Make DefaultSaveFileManager ignore syncing files
...
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.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
0ce7be17d3
CLOUD: Make ProgressDialog display downloading progress
2016-08-24 16:07:55 +06:00
Alexander Tkachev
3db80154d6
CLOUD: Fix SaveLoadCloudSyncProgressDialog crash
...
It's closing itself a bit later now.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e9721976aa
GUI: Add SaveLoadCloudSyncProgressDialog
...
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!
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e7763700e2
CLOUD: Make Save/Load dialog start saves sync
...
It also shows a "sync disabled" icon in case it has a savepath override.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8de2862eaa
CLOUD: Update syncSaves() to return SavesSyncRequest *
...
So other classes could use that information without casting.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8d09e1a6b3
CLOUD: Update cloudicon.png
...
The cloud icon is now completely unique and free to use (because I drawn
it myself).
2016-08-24 16:07:55 +06:00
Alexander Tkachev
69aed03c4f
CLOUD: Add new CloudManager shortcuts
...
CloudIcon can easily use CloudMan.isWorking()
2016-08-24 16:07:55 +06:00
Alexander Tkachev
91f75efa99
GUI: Fix copyRectOnOSD()
...
Now it doesn't require full redraw, but asks to redraw the area which is
copied to.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
5a695040d8
CLOUD: Fix SavesSyncRequest to return right files
...
Files we need are files to be downloaded, because that's what blocks us
from reading/writing in those.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e98b0b12ad
CLOUD: Extend Storage & SavesSyncRequest
...
Now one can learn whether SavesSyncRequest is running, its progress and
which files are being synced.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
1bcbab7ad2
CLOUD: Add new cloudicon.png
2016-08-24 16:07:55 +06:00
Alexander Tkachev
602d17f5fd
CLOUD: Document CloudIcon::draw() more precisely
2016-08-24 16:07:55 +06:00
Alexander Tkachev
45e83d06c2
CLOUD: Fix CloudIcon
...
It's not a Request again, but still it controls ConnMan's timer.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
cec93e2c03
CLOUD: Make CloudIcon switch ConnMan's timer off
...
CloudIcon is now a Request which is automatically added once first
Request is added to ConnMan. When icon decides it should disappear, it
gets FINISHED, so ConnMan would switch off the timer if it was the last
Request.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
135f7d09a8
CLOUD: Make CloudIcon pulsate, fade in and fade out
...
That required ConnMan's timer stopping. Would be fixed in the next
commit.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
de84701aea
GUI: Separate OSD message alpha from OSD surface
...
Now OSD is always drawn.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
4874fafb15
CLOUD: Fix CloudIcon
...
Now it loads the surface once.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
1b9987ddc9
GUI: Add getOSDFormat() and make OSD 32 bpp
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b32c2be78d
CLOUD: Fix ConnectionManager a little
...
I didn't like how FINISHED Requests were waiting until the next
interateRequests() call to be removed when we could easily remove those
after they changed their state in their handle().
2016-08-24 16:07:55 +06:00
Alexander Tkachev
bcb2a5bd8d
CLOUD: Fix CloudIcon to use clearOSD()
...
Now only icon is shown.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
2a15b8b280
GUI: Add clearOSD() method
...
So one can erase everything from OSD and then blit something on it.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
9d186929e1
CLOUD: Add CloudIcon
...
To achieve smoother animation, ConnectionManager's timer now is 20 times
more frequent.
I'm encountering some strange libcurl.dll segfault problem when I close
the application while some Requests are active. It's not
CloudIcon-related, so it's more likely related to this 20 FPS timer.
This problem shows up only in Visual Studio for me.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
7ff1f91808
GUI: Add copyRectToOSD()
...
I was lazy to implement that in OpenGLGraphicsManager and I'm not sure
it's implemented correctly in SurfaceSdlGraphicsManager, but it works
for me.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
1c823b6c1d
CLOUD: Fix SavesSyncRequest
...
Now it would finish with error if spawned Request is nullptr.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
da3b7bd8d9
CLOUD: Add GoogleDriveStorage
...
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.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b02b16ab98
CLOUD: Document ConnectionManager's onDeleteCallback
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
a686049c46
GUI: Fix widget clipping
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
ea80e24481
GUI: Added animation classes
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
6524a8d103
GUI: Added transparency to PicWidgets
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
8c7a8116be
GUI: Implemented test point method to GuiObject
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
30f7556bee
GUI: Added support for alphabitmaps in picbuttons
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
c6e04845cc
GUI: Switched GUI to draw on TransparentSurface
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
1359255ea8
GUI: Added empty dialog background
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
94bc75ae46
GUI: Implemented centering of dialog background
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
75f9b099dc
GUI: Added possibility to specify scale mode for AlphaBitmaps
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
38114eb760
GUI: Plug NinePatch bitmaps into parser
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
ec7312ac13
GUI: Implemented more modes to autoscale
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
4474ccf814
GUI: Implemented alphabitmap autoscale
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
f0c52096f3
GUI: Implemented possibility to use alphabitmaps in GraphicsWidget
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
53a42ececf
GUI: Added new alphabitmap image type
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
762671ccd8
GUI: Added possibility to specify several state images for PicButtonWidget
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
0281b1eba8
GUI: Added support for PNG images
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
2a9cf65eeb
GUI: Add mode to skip drawing of button for PicButton
2016-08-24 16:07:55 +06:00
Alexander Tkachev
00d8d23236
CLOUD: Add mutexes in Storage
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b3bf532211
CLOUD: Make CloudManager singleton
...
It's needed to ::destroy() it in main().
2016-08-24 16:07:55 +06:00
Alexander Tkachev
1f974a7a2a
CLOUD: Fix ConnectionManager's destructor
...
It now terminates active Requests.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
a66322408f
CLOUD: Implement Storage's isWorking()
...
It now keeps track of how many Requests are running.
To achieve that, we had to pass a callback to ConnectionManager, so each
Request has a callback paired with it. If that's one of Storage's
Requests, it has a callback, which would decrease a counter. When
Storage adds a Request, it also increases a counter and passes that
callback. Callback is called by ConnMan when Request is deleted.
isWorking() returns true if there is at least one Request running.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
4b3a8be0b9
CLOUD: Shorten Cloud API
...
touch() and isSyncing() are not needed.
remove() is not needed too, but it could be used in the future.
2016-08-24 16:07:55 +06:00