Improve error logging

This commit is contained in:
Benau 2019-12-17 01:32:53 +08:00
parent 7d60855a7f
commit 5989221305
3 changed files with 18 additions and 7 deletions

View File

@ -494,7 +494,7 @@ bool AddonsManager::install(const Addon &addon)
std::string to = addon.getDataDir();
// Remove old addon first (including non official way to install addons)
AddonsPack::uninstallByName(addon.getDirName(), true/*false_remove_skin*/);
AddonsPack::uninstallByName(addon.getDirName(), true/*force_clear*/);
bool success = extract_zip(from, to, true/*recursive*/);
if (!success)
{

View File

@ -326,11 +326,12 @@ void AddonsPack::install(const std::string& name)
if (StateManager::get()->getGameState() != GUIEngine::MENU &&
!ModalDialog::isADialogActive())
return;
NetworkingLobby* nl = dynamic_cast<NetworkingLobby*>(
GUIEngine::getCurrentScreen());
Addon* addon = addons_manager->getAddon(Addon::createAddonId(name));
if (addon)
{
NetworkingLobby* nl = dynamic_cast<NetworkingLobby*>(
GUIEngine::getCurrentScreen());
if (addon->isInstalled())
{
if (nl)
@ -340,21 +341,31 @@ void AddonsPack::install(const std::string& name)
AddonsLoading* al = new AddonsLoading(addon->getId());
al->tryInstall();
}
else
else if (StringUtils::startsWith(name, "http"))
{
// Assume it's addon pack url
new AddonsPack(name);
}
else
{
if (nl)
nl->addMoreServerInfo(L"Bad addon id");
}
} // install
// ----------------------------------------------------------------------------
void AddonsPack::uninstallByName(const std::string& name,
bool force_remove_skin)
bool force_clear)
{
if (StateManager::get()->getGameState() != GUIEngine::MENU)
return;
NetworkingLobby* nl = dynamic_cast<NetworkingLobby*>(
GUIEngine::getCurrentScreen());
// force_clear is true when removing the existing folder when install new
// addon, in this case we don't need more logging in lobby
if (force_clear)
nl = NULL;
std::string addon_id = Addon::createAddonId(name);
const KartProperties* prop =
kart_properties_manager->getKart(addon_id);
@ -384,7 +395,7 @@ void AddonsPack::uninstallByName(const std::string& name,
std::string skin_file = skin_folder + "/stkskin.xml";
if (file_manager->fileExists(skin_file))
{
if (!force_remove_skin &&
if (!force_clear &&
addon_id == UserConfigParams::m_skin_file.c_str())
{
if (nl)

View File

@ -50,7 +50,7 @@ public:
virtual bool onEscapePressed() OVERRIDE;
static void install(const std::string& name);
static void uninstall(const std::string& name, bool force_remove_skin = false);
static void uninstallByName(const std::string& name, bool force_remove_skin = false);
static void uninstallByName(const std::string& name, bool force_clear = false);
}; // DownloadAssets
#endif