aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorAlexander Tkachev2016-06-05 22:26:51 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit9eb4aad7fdea54fd99ad4a9aa4ab78bf64f81794 (patch)
treec023071ab99a5804b78121e9d7bbbcc16975c253 /gui
parent0ce7be17d3fec380f726c1ff16c559344b3e24c1 (diff)
downloadscummvm-rg350-9eb4aad7fdea54fd99ad4a9aa4ab78bf64f81794.tar.gz
scummvm-rg350-9eb4aad7fdea54fd99ad4a9aa4ab78bf64f81794.tar.bz2
scummvm-rg350-9eb4aad7fdea54fd99ad4a9aa4ab78bf64f81794.zip
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.
Diffstat (limited to 'gui')
-rw-r--r--gui/saveload-dialog.cpp23
-rw-r--r--gui/saveload-dialog.h7
2 files changed, 23 insertions, 7 deletions
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 6d343c88ed..2f10182006 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -35,6 +35,7 @@
#include "gui/widgets/edittext.h"
#include "graphics/scaler.h"
+#include <common/savefile.h>
namespace GUI {
@@ -201,12 +202,9 @@ void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uin
//this dialog only gets these commands if the progress dialog was shown and user clicked "run in background"
switch (cmd) {
- case kSavesSyncProgressCmd:
- //TODO: unlock that save which was downloaded
- break;
-
+ case kSavesSyncProgressCmd:
case kSavesSyncEndedCmd:
- //TODO: ?
+ updateSaveList();
break;
}
}
@@ -237,6 +235,7 @@ void SaveLoadChooserDialog::handleTickle() {
}
CloudMan.setSyncTarget(this);
_dialogWasShown = true;
+ updateSaveList();
}
}
Dialog::handleTickle();
@@ -259,6 +258,11 @@ void SaveLoadChooserDialog::reflowLayout() {
Dialog::reflowLayout();
}
+void SaveLoadChooserDialog::updateSaveList() {
+ Common::Array<Common::String> files = CloudMan.getSyncingFiles(); //returns empty array if not syncing
+ g_system->getSavefileManager()->updateSavefilesList(files);
+}
+
#ifndef DISABLE_SAVELOADCHOOSER_GRID
void SaveLoadChooserDialog::addChooserButtons() {
if (_listButton) {
@@ -570,6 +574,7 @@ void SaveLoadChooserSimple::close() {
}
void SaveLoadChooserSimple::updateSaveList() {
+ SaveLoadChooserDialog::updateSaveList();
_saveList = _metaEngine->listSaves(_target.c_str());
int curSlot = 0;
@@ -631,6 +636,7 @@ void SaveLoadChooserSimple::updateSaveList() {
}
_list->setList(saveNames, &colors);
+ draw();
}
// SaveLoadChooserGrid implementation
@@ -726,6 +732,13 @@ void SaveLoadChooserGrid::handleMouseWheel(int x, int y, int direction) {
}
}
+void SaveLoadChooserGrid::updateSaveList() {
+ SaveLoadChooserDialog::updateSaveList();
+ _saveList = _metaEngine->listSaves(_target.c_str());
+ updateSaves();
+ draw();
+}
+
void SaveLoadChooserGrid::open() {
SaveLoadChooserDialog::open();
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index e8f0c37228..a767fb8a23 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -84,6 +84,7 @@ public:
protected:
virtual int runIntern() = 0;
+ virtual void updateSaveList();
const bool _saveMode;
const MetaEngine *_metaEngine;
@@ -122,6 +123,8 @@ public:
virtual void open();
virtual void close();
+protected:
+ virtual void updateSaveList();
private:
virtual int runIntern();
@@ -136,8 +139,7 @@ private:
SaveStateList _saveList;
String _resultString;
-
- void updateSaveList();
+
void updateSelection(bool redraw);
};
@@ -180,6 +182,7 @@ public:
protected:
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
virtual void handleMouseWheel(int x, int y, int direction);
+ virtual void updateSaveList();
private:
virtual int runIntern();