Addons Manager: added (non-functional still) type filtering dropdown

This commit is contained in:
Charles Dang 2017-02-13 23:41:14 +11:00
parent 83f159be8d
commit d3c53e4f0d
3 changed files with 41 additions and 1 deletions

View file

@ -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"

View file

@ -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<menu_button>(&window, "type_filter", false);
std::vector<config> 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<button>(&window, "url_go", false);
button& url_copy_button = find_widget<button>(&window, "url_copy", false);
text_box& url_textbox = find_widget<text_box>(&window, "url", false);

View file

@ -63,6 +63,7 @@ private:
addons_tracking_list tracking_info_;
std::vector<std::pair<ADDON_STATUS_FILTER, std::string>> status_filter_types_;
std::vector<std::pair<ADDON_TYPE, std::string>> type_filter_types_;
void install_selected_addon(window& window);
void install_addon(addon_info addon, window& window);