aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/saveload-dialog.cpp16
-rw-r--r--gui/saveload-dialog.h2
-rw-r--r--gui/saveload.cpp2
3 files changed, 20 insertions, 0 deletions
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 3d4adfff2b..d9713505e6 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -21,6 +21,11 @@
*/
#include "gui/saveload-dialog.h"
+
+#include "backends/cloud/cloudmanager.h"
+#include "backends/cloud/savessyncrequest.h"
+#include "backends/networking/curl/connectionmanager.h"
+
#include "common/translation.h"
#include "common/config-manager.h"
@@ -135,6 +140,17 @@ void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uin
return Dialog::handleCommand(sender, cmd, data);
}
+void SaveLoadChooserDialog::runSaveSync(bool hasSavepathOverride) {
+ if (!CloudMan.isSyncing()) {
+ if (hasSavepathOverride) {
+ ConnMan.showCloudDisabledIcon();
+ } else {
+ Cloud::SavesSyncRequest *request = CloudMan.syncSaves();
+ if (request) request->setTarget(this);
+ }
+ }
+}
+
void SaveLoadChooserDialog::reflowLayout() {
#ifndef DISABLE_SAVELOADCHOOSER_GRID
addChooserButtons();
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 31f28f6452..0e67ba89fe 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -60,6 +60,8 @@ public:
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
+ virtual void runSaveSync(bool hasSavepathOverride);
+
#ifndef DISABLE_SAVELOADCHOOSER_GRID
virtual SaveLoadChooserType getType() const = 0;
#endif // !DISABLE_SAVELOADCHOOSER_GRID
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index b94d30289b..b3e669899f 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -87,6 +87,8 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
if (!_impl)
return -1;
+ _impl->runSaveSync(ConfMan.hasKey("savepath", target));
+
// Set up the game domain as newly active domain, so
// target specific savepath will be checked
String oldDomain = ConfMan.getActiveDomainName();