projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed some obsolete stuff from supertux/globals.hpp
[supertux.git]
/
src
/
supertux
/
menu
/
addon_menu.cpp
diff --git
a/src/supertux/menu/addon_menu.cpp
b/src/supertux/menu/addon_menu.cpp
index
5011e95
..
13f8e0a
100644
(file)
--- a/
src/supertux/menu/addon_menu.cpp
+++ b/
src/supertux/menu/addon_menu.cpp
@@
-25,7
+25,7
@@
#include "gui/menu.hpp"
#include "gui/menu_item.hpp"
#include "gui/menu_manager.hpp"
#include "gui/menu.hpp"
#include "gui/menu_item.hpp"
#include "gui/menu_manager.hpp"
-#include "supertux/menu/
addon
_dialog.hpp"
+#include "supertux/menu/
download
_dialog.hpp"
#include "util/gettext.hpp"
namespace {
#include "util/gettext.hpp"
namespace {
@@
-184,12
+184,16
@@
AddonMenu::menu_action(MenuItem* item)
{
try
{
{
try
{
- AddonManager::InstallStatusPtr status = m_addon_manager.request_check_online();
- status->then([this]{
- MenuManager::instance().set_dialog({});
- refresh();
+ TransferStatusPtr status = m_addon_manager.request_check_online();
+ status->then(
+ [this](bool success)
+ {
+ if (success)
+ {
+ refresh();
+ }
});
});
- std::unique_ptr<
AddonDialog> dialog(new Addon
Dialog(status));
+ std::unique_ptr<
DownloadDialog> dialog(new Download
Dialog(status));
dialog->set_title("Downloading Add-On Repository Index");
MenuManager::instance().set_dialog(std::move(dialog));
}
dialog->set_title("Downloading Add-On Repository Index");
MenuManager::instance().set_dialog(std::move(dialog));
}
@@
-225,22
+229,26
@@
AddonMenu::menu_action(MenuItem* item)
{
const Addon& addon = m_addon_manager.get_repository_addon(m_repository_addons[idx]);
auto addon_id = addon.get_id();
{
const Addon& addon = m_addon_manager.get_repository_addon(m_repository_addons[idx]);
auto addon_id = addon.get_id();
-
AddonManager::Install
StatusPtr status = m_addon_manager.request_install_addon(addon_id);
+
Transfer
StatusPtr status = m_addon_manager.request_install_addon(addon_id);
- status->then([this, addon_id]{
- try
+ status->then(
+ [this, addon_id](bool success)
+ {
+ if (success)
{
{
- m_addon_manager.enable_addon(addon_id);
+ try
+ {
+ m_addon_manager.enable_addon(addon_id);
+ }
+ catch(const std::exception& err)
+ {
+ log_warning << "Enabling addon failed: " << err.what() << std::endl;
+ }
+ refresh();
}
}
- catch(const std::exception& err)
- {
- log_warning << "Enabling addon failed: " << err.what() << std::endl;
- }
- MenuManager::instance().set_dialog({});
- refresh();
});
});
- std::unique_ptr<
AddonDialog> dialog(new Addon
Dialog(status));
+ std::unique_ptr<
DownloadDialog> dialog(new Download
Dialog(status));
dialog->set_title("Downloading " + generate_menu_item_text(addon));
MenuManager::instance().set_dialog(std::move(dialog));
}
dialog->set_title("Downloading " + generate_menu_item_text(addon));
MenuManager::instance().set_dialog(std::move(dialog));
}