From d3c53e4f0d152d07f59e93aa8c9eab8a3e4d9abe Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 13 Feb 2017 23:41:14 +1100 Subject: [PATCH] Addons Manager: added (non-functional still) type filtering dropdown --- data/gui/window/addon_list.cfg | 15 ++++++++++++++- src/gui/dialogs/addon/manager.cpp | 26 ++++++++++++++++++++++++++ src/gui/dialogs/addon/manager.hpp | 1 + 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/data/gui/window/addon_list.cfg b/data/gui/window/addon_list.cfg index c9c62ea4caa..1ed55aaf74c 100644 --- a/data/gui/window/addon_list.cfg +++ b/data/gui/window/addon_list.cfg @@ -634,7 +634,7 @@ [/column] [column] - grow_factor = 1 + grow_factor = 0 border = "all" border_size = 5 @@ -646,6 +646,19 @@ [/menu_button] [/column] + [column] + grow_factor = 1 + border = "all" + border_size = 5 + + horizontal_alignment = "left" + + [menu_button] + id = "type_filter" + definition = "default" + [/menu_button] + [/column] + [column] grow_factor = 0 border = "all" diff --git a/src/gui/dialogs/addon/manager.cpp b/src/gui/dialogs/addon/manager.cpp index 3d89a994605..deb1e4c8bbe 100644 --- a/src/gui/dialogs/addon/manager.cpp +++ b/src/gui/dialogs/addon/manager.cpp @@ -224,6 +224,23 @@ addon_manager::addon_manager(addons_client& client) {FILTER_UPGRADABLE, _("addons_view^Upgradable")}, {FILTER_NOT_INSTALLED, _("addons_view^Not Installed")}, }; + + type_filter_types_ = { + {ADDON_SP_CAMPAIGN, _("addons_of_type^Campaigns")}, + {ADDON_SP_SCENARIO, _("addons_of_type^Scenarios")}, + {ADDON_SP_MP_CAMPAIGN, _("addons_of_type^SP/MP campaigns")}, + {ADDON_MP_CAMPAIGN, _("addons_of_type^MP campaigns")}, + {ADDON_MP_SCENARIO, _("addons_of_type^MP scenarios")}, + {ADDON_MP_MAPS, _("addons_of_type^MP map-packs")}, + {ADDON_MP_ERA, _("addons_of_type^MP eras")}, + {ADDON_MP_FACTION, _("addons_of_type^MP factions")}, + {ADDON_MP_MOD, _("addons_of_type^MP modifications")}, + {ADDON_CORE, _("addons_of_type^Cores")}, + {ADDON_MEDIA, _("addons_of_type^Resources")}, + // FIXME: (also in WML) should this and Unknown be a single option in the UI? + {ADDON_OTHER, _("addons_of_type^Other")}, + {ADDON_UNKNOWN, _("addons_of_type^Unknown")}, + }; } void addon_manager::on_filtertext_changed(text_box_base* textbox, const std::string& text) @@ -336,6 +353,15 @@ void addon_manager::pre_show(window& window) status_filter.set_values(status_filter_entries); status_filter.connect_click_handler(std::bind(&addon_manager::status_filter_callback, this, std::ref(window))); + menu_button& type_filter = find_widget(&window, "type_filter", false); + + std::vector type_filter_entries; + for(const auto& f : type_filter_types_) { + type_filter_entries.push_back(config_of("label", f.second)("checkbox", false)); + } + + type_filter.set_values(type_filter_entries); + button& url_go_button = find_widget