mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-03 19:27:49 +00:00
addon/mg: Merge get_addon_status_gui1_color_markup()...
...into describe_addon_status() Also moved describe_addon_status() around so it can be used for the dependency prompt dialog later as well.
This commit is contained in:
parent
6b56c96ab0
commit
109b644f5b
@ -129,6 +129,82 @@ bool get_addons_list(addons_client& client, addons_list& list)
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string describe_addon_status(const addon_tracking_info& info)
|
||||
{
|
||||
std::string s;
|
||||
|
||||
switch(info.state) {
|
||||
case ADDON_INSTALLED:
|
||||
s = std::string(1, font::GOOD_TEXT);
|
||||
break;
|
||||
case ADDON_INSTALLED_UPGRADABLE:
|
||||
s = font::color2markup(font::YELLOW_COLOR);
|
||||
break;
|
||||
case ADDON_INSTALLED_OUTDATED:
|
||||
s = "<255,127,0>";
|
||||
break;
|
||||
case ADDON_INSTALLED_BROKEN:
|
||||
s = std::string(1, font::BAD_TEXT);
|
||||
break;
|
||||
case ADDON_NOT_TRACKED:
|
||||
s = font::color2markup(font::GRAY_COLOR);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
utils::string_map i18n_symbols;
|
||||
i18n_symbols["local_version"] = info.installed_version.str();
|
||||
|
||||
switch(info.state) {
|
||||
case ADDON_NONE:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Not installed");
|
||||
} else {
|
||||
s += _("addon_state^Published, not installed");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Installed");
|
||||
} else {
|
||||
s += _("addon_state^Published");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_UPGRADABLE:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Installed, upgradable");
|
||||
} else {
|
||||
s += _("addon_state^Published, upgradable");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_OUTDATED:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Installed, outdated on server");
|
||||
} else {
|
||||
s += _("addon_state^Published, outdated on server");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_BROKEN:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Installed, broken");
|
||||
} else {
|
||||
s += _("addon_state^Published, broken");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if(!info.can_publish) {
|
||||
s += _("addon_state^Not tracked");
|
||||
} else {
|
||||
// Published add-ons often don't have local status information,
|
||||
// hence untracked. This should be considered normal.
|
||||
s += _("addon_state^Published");
|
||||
}
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
/** Warns the user about unresolved dependencies and installs them if they choose to do so. */
|
||||
bool do_resolve_addon_dependencies(display& disp, addons_client& client, const addons_list& addons, const addon_info& addon, bool& wml_changed)
|
||||
{
|
||||
@ -427,62 +503,6 @@ sorted_addon_pointer_list sort_addons_list(addons_list& addons)
|
||||
return res;
|
||||
}
|
||||
|
||||
std::string describe_addon_status(const addon_tracking_info& state)
|
||||
{
|
||||
std::string s = get_addon_status_gui1_color_markup(state);
|
||||
|
||||
utils::string_map i18n_symbols;
|
||||
i18n_symbols["local_version"] = state.installed_version.str();
|
||||
|
||||
switch(state.state) {
|
||||
case ADDON_NONE:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Not installed");
|
||||
} else {
|
||||
s += _("addon_state^Published, not installed");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Installed");
|
||||
} else {
|
||||
s += _("addon_state^Published");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_UPGRADABLE:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Installed, upgradable");
|
||||
} else {
|
||||
s += _("addon_state^Published, upgradable");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_OUTDATED:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Installed, outdated on server");
|
||||
} else {
|
||||
s += _("addon_state^Published, outdated on server");
|
||||
}
|
||||
break;
|
||||
case ADDON_INSTALLED_BROKEN:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Installed, broken");
|
||||
} else {
|
||||
s += _("addon_state^Published, broken");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if(!state.can_publish) {
|
||||
s += _("addon_state^Not tracked");
|
||||
} else {
|
||||
// Published add-ons often don't have local status information,
|
||||
// hence untracked. This should be considered normal.
|
||||
s += _("addon_state^Published");
|
||||
}
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
void show_addons_manager_dialog(display& disp, addons_client& client, addons_list& addons, VIEW_MODE& view, std::string& last_addon_id, bool& stay_in_ui, bool& wml_changed, std::string& filter_text)
|
||||
{
|
||||
stay_in_ui = false;
|
||||
|
@ -55,22 +55,3 @@ addon_tracking_info get_addon_tracking_info(const addon_info& addon)
|
||||
return t;
|
||||
}
|
||||
|
||||
std::string get_addon_status_gui1_color_markup(const addon_tracking_info& info)
|
||||
{
|
||||
switch(info.state) {
|
||||
case ADDON_INSTALLED:
|
||||
return std::string(1, font::GOOD_TEXT);
|
||||
case ADDON_INSTALLED_UPGRADABLE:
|
||||
return font::color2markup(font::YELLOW_COLOR);
|
||||
case ADDON_INSTALLED_OUTDATED:
|
||||
return "<255,127,0>";
|
||||
case ADDON_INSTALLED_BROKEN:
|
||||
return std::string(1, font::BAD_TEXT);
|
||||
case ADDON_NOT_TRACKED:
|
||||
return font::color2markup(font::GRAY_COLOR);
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
@ -68,6 +68,4 @@ struct addon_tracking_info
|
||||
*/
|
||||
addon_tracking_info get_addon_tracking_info(const addon_info& addon);
|
||||
|
||||
std::string get_addon_status_gui1_color_markup(const addon_tracking_info& info);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user