diff --git a/src/addon/downloader.cpp b/src/addon/downloader.cpp index 14d4dc4cb37..fd8320b5401 100644 --- a/src/addon/downloader.cpp +++ b/src/addon/downloader.cpp @@ -282,7 +282,6 @@ Downloader::update() TransferStatusPtr status = (*it)->get_status(); m_transfers.erase(it); - status->status = TransferStatus::COMPLETED; for(auto& callback : status->callbacks) { callback(); diff --git a/src/addon/downloader.hpp b/src/addon/downloader.hpp index 64d2384b664..de1155709aa 100644 --- a/src/addon/downloader.hpp +++ b/src/addon/downloader.hpp @@ -34,21 +34,20 @@ class TransferStatus public: TransferId id; - Status status; + std::vector > callbacks; + int dltotal; int dlnow; int ultotal; int ulnow; - std::vector > callbacks; TransferStatus(TransferId id_) : id(id_), - status(RUNNING), + callbacks(), dltotal(0), dlnow(0), ultotal(0), - ulnow(0), - callbacks() + ulnow(0) {} void then(const std::function& callback) diff --git a/src/gui/menu_manager.cpp b/src/gui/menu_manager.cpp index a3c4b8e266d..009a10a49cf 100644 --- a/src/gui/menu_manager.cpp +++ b/src/gui/menu_manager.cpp @@ -26,6 +26,7 @@ #include "supertux/globals.hpp" #include "supertux/menu/menu_storage.hpp" #include "supertux/timer.hpp" +#include "util/gettext.hpp" #include "util/log.hpp" #include "video/drawing_context.hpp" @@ -207,7 +208,17 @@ MenuManager::draw(DrawingContext& context) { if (m_dialog) { - m_dialog->update(); + try + { + m_dialog->update(); + } + catch(const std::exception& err) + { + m_dialog = std::unique_ptr(new Dialog); + m_dialog->set_text(_("Error:\n") + err.what()); + m_dialog->add_button(_("Ok")); + } + m_dialog->draw(context); } else if (current_menu())