From ec063ef163233d7efdc25fb06fc4cf16dc8ac704 Mon Sep 17 00:00:00 2001 From: xapantu Date: Wed, 8 Sep 2010 18:19:05 +0000 Subject: [PATCH] Adding a package-update.png image Show 'update' instead of uninstall or install for addons which can be updated (maybe we need a third button) Add a special icon in the addons lists if the addon can be updated git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@5926 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- data/gui/package-update.png | Bin 0 -> 2878 bytes src/states_screens/addons_screen.cpp | 8 +++++++- src/states_screens/addons_update_screen.cpp | 10 +++++++++- src/states_screens/dialogs/addons_loading.cpp | 7 ++++++- 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 data/gui/package-update.png diff --git a/data/gui/package-update.png b/data/gui/package-update.png new file mode 100644 index 0000000000000000000000000000000000000000..2e83c0f456d1d224f106ee79655d61472a026c39 GIT binary patch literal 2878 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 literal 0 HcmV?d00001 diff --git a/src/states_screens/addons_screen.cpp b/src/states_screens/addons_screen.cpp index 4af906356..c64e70006 100644 --- a/src/states_screens/addons_screen.cpp +++ b/src/states_screens/addons_screen.cpp @@ -52,10 +52,13 @@ void AddonsScreen::loadedFromFile() + "/package.png" ); video::ITexture* icon2 = irr_driver->getTexture( file_manager->getGUIDir() + "/no-package.png" ); + video::ITexture* icon3 = irr_driver->getTexture( file_manager->getGUIDir() + + "/package-update.png" ); m_icon_bank = new irr::gui::STKModifiedSpriteBank( GUIEngine::getGUIEnv() ); m_icon_bank->addTextureAsSprite(icon1); m_icon_bank->addTextureAsSprite(icon2); + m_icon_bank->addTextureAsSprite(icon3); } // ------------------------------------------------------------------------------------------------------ void AddonsScreen::loadList() @@ -68,7 +71,10 @@ void AddonsScreen::loadList() while(addons_manager->NextType(this->type)) { std::cout << addons_manager->GetName() << std::endl; - if(addons_manager->IsInstalledAsBool()) + if(addons_manager->IsInstalledAsBool() && addons_manager->GetInstalledVersion() < addons_manager->GetVersion()) + w_list->addItem(addons_manager->GetIdAsStr().c_str(), + addons_manager->GetName().c_str(), 2 /* icon installed */); + else if(addons_manager->IsInstalledAsBool()) w_list->addItem(addons_manager->GetIdAsStr().c_str(), addons_manager->GetName().c_str(), 0 /* icon installed */); diff --git a/src/states_screens/addons_update_screen.cpp b/src/states_screens/addons_update_screen.cpp index 878e78835..ccecfcce8 100644 --- a/src/states_screens/addons_update_screen.cpp +++ b/src/states_screens/addons_update_screen.cpp @@ -56,6 +56,14 @@ void AddonsUpdateScreen::eventCallback(GUIEngine::Widget* widget, const std::str { StateManager::get()->escapePressed(); } + else if (name == "list_addons") + { + GUIEngine::ListWidget* list = this->getWidget("list_addons"); + std::string addons = list->getSelectionInternalName(); + + addons_manager->SelectId(addons); + this->load = new AddonsLoading(addons_manager, 0.8f, 0.8f); + } else if (name == "category") { std::string selection = ((GUIEngine::RibbonWidget*)widget)->getSelectionIDString(PLAYER_ID_GAME_MASTER).c_str(); @@ -88,7 +96,7 @@ void AddonsUpdateScreen::init() //w_list->addItem("kart", _("Karts:"), -1 /* no icon */); while(addons_manager->Next()) { - if(addons_manager->IsInstalledAsBool() && addons_manager->GetInstalledVersion() < addons_manager->GetVersion() ) + if(addons_manager->IsInstalledAsBool() && addons_manager->GetInstalledVersion() < addons_manager->GetVersion()) { std::cout << addons_manager->GetName() << std::endl; w_list->addItem(addons_manager->GetIdAsStr().c_str(), diff --git a/src/states_screens/dialogs/addons_loading.cpp b/src/states_screens/dialogs/addons_loading.cpp index 997ae2618..929e9cbd4 100644 --- a/src/states_screens/dialogs/addons_loading.cpp +++ b/src/states_screens/dialogs/addons_loading.cpp @@ -56,7 +56,12 @@ AddonsLoading::AddonsLoading(Addons * id, const float w, const float h) : version = this->getWidget("version"); if(this->addons->IsInstalledAsBool()) - this->getWidget("install")->setLabel(_("Uninstall")); + { + if(addons_manager->GetInstalledVersion() < addons_manager->GetVersion()) + this->getWidget("install")->setLabel(_("Update")); + else + this->getWidget("install")->setLabel(_("Uninstall")); + } this->loadInfo(); }