From 470d8956b85088ce02a26c6bbc5856a35ea3eea3 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 9 Aug 2017 23:19:40 +1100 Subject: [PATCH] GUI2/Addon List: restored extra version display for upgradable or outdated addons The old GUI1 addon manager displayed both local and published versions of the addon directly in the list if the addon was upgradable or outdated on the server. It seems to have gotten lost in the transition, so this restores it. --- data/gui/widget/addon_list.cfg | 1 + src/gui/widgets/addon_list.cpp | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/data/gui/widget/addon_list.cfg b/data/gui/widget/addon_list.cfg index 83d6f6b2e2c..ad56e0c968c 100644 --- a/data/gui/widget/addon_list.cfg +++ b/data/gui/widget/addon_list.cfg @@ -259,6 +259,7 @@ id = "version" definition = "default_small" linked_group = "version" + use_markup = true characters_per_line = 10 wrap = true [/label] diff --git a/src/gui/widgets/addon_list.cpp b/src/gui/widgets/addon_list.cpp index acc4fd84ea8..8116498d396 100644 --- a/src/gui/widgets/addon_list.cpp +++ b/src/gui/widgets/addon_list.cpp @@ -151,7 +151,24 @@ void addon_list::set_addons(const addons_list& addons) item["label"] = describe_status(tracking_info); data.emplace("installation_status", item); - item["label"] = addon.version.str(); + // If the addon is upgradable or ourdated on server, we display the two relevant + // versions directly in the list for convenience. + const bool special_version_display = + tracking_info.state == ADDON_INSTALLED_UPGRADABLE || + tracking_info.state == ADDON_INSTALLED_OUTDATED; + + std::ostringstream ss; + if(special_version_display) { + ss << tracking_info.installed_version.str() << "\n"; + } + + ss << addon.version.str(); + + if(special_version_display) { + ss.str(colorify_addon_state_string(ss.str(), tracking_info.state, false)); + } + + item["label"] = ss.str(); data.emplace("version", item); item["label"] = addon.author;