Merge pull request #31619 from Calinou/assetlib-improve-sort-fields

Improve sorting options in the asset library
This commit is contained in:
Rémi Verschelde 2019-09-04 01:26:15 +02:00 committed by GitHub
commit 5d162798cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 21 deletions

View file

@ -578,7 +578,6 @@ void EditorAssetLibrary::_notification(int p_what) {
case NOTIFICATION_READY: {
error_tr->set_texture(get_icon("Error", "EditorIcons"));
reverse->set_icon(get_icon("Sort", "EditorIcons"));
filter->set_right_icon(get_icon("Search", "EditorIcons"));
filter->set_clear_button_enabled(true);
@ -612,7 +611,6 @@ void EditorAssetLibrary::_notification(int p_what) {
library_scroll_bg->add_style_override("panel", get_stylebox("bg", "Tree"));
downloads_scroll->add_style_override("bg", get_stylebox("bg", "Tree"));
error_tr->set_texture(get_icon("Error", "EditorIcons"));
reverse->set_icon(get_icon("Sort", "EditorIcons"));
filter->set_right_icon(get_icon("Search", "EditorIcons"));
filter->set_clear_button_enabled(true);
} break;
@ -645,23 +643,27 @@ void EditorAssetLibrary::_install_asset() {
}
const char *EditorAssetLibrary::sort_key[SORT_MAX] = {
"downloads",
"updated",
"updated",
"name",
"name",
"cost",
"updated"
"cost",
};
const char *EditorAssetLibrary::sort_text[SORT_MAX] = {
"Downloads",
"Name",
"License", // "cost" stores the SPDX license name in the Godot Asset Library.
"Updated"
"Recently Updated",
"Least Recently Updated",
"Name (A-Z)",
"Name (Z-A)",
"License (A-Z)", // "cost" stores the SPDX license name in the Godot Asset Library.
"License (Z-A)", // "cost" stores the SPDX license name in the Godot Asset Library.
};
const char *EditorAssetLibrary::support_key[SUPPORT_MAX] = {
"official",
"community",
"testing"
"testing",
};
void EditorAssetLibrary::_select_author(int p_id) {
@ -928,8 +930,8 @@ void EditorAssetLibrary::_search(int p_page) {
args += "&category=" + itos(categories->get_item_metadata(categories->get_selected()));
}
if (reverse->is_pressed()) {
// Sorting options with an odd index are always the reverse of the previous one
if (sort->get_selected() % 2 == 1) {
args += "&reverse=true";
}
@ -1381,12 +1383,6 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
sort->set_h_size_flags(SIZE_EXPAND_FILL);
sort->connect("item_selected", this, "_rerun_search");
reverse = memnew(ToolButton);
reverse->set_toggle_mode(true);
reverse->connect("toggled", this, "_rerun_search");
reverse->set_tooltip(TTR("Reverse sorting."));
search_hb2->add_child(reverse);
search_hb2->add_child(memnew(VSeparator));
search_hb2->add_child(memnew(Label(TTR("Category:") + " ")));

View file

@ -190,7 +190,6 @@ class EditorAssetLibrary : public PanelContainer {
OptionButton *categories;
OptionButton *repository;
OptionButton *sort;
ToolButton *reverse;
Button *search;
HBoxContainer *error_hb;
TextureRect *error_tr;
@ -216,10 +215,12 @@ class EditorAssetLibrary : public PanelContainer {
};
enum SortOrder {
SORT_DOWNLOADS,
SORT_NAME,
SORT_COST,
SORT_UPDATED,
SORT_UPDATED_REVERSE,
SORT_NAME,
SORT_NAME_REVERSE,
SORT_COST,
SORT_COST_REVERSE,
SORT_MAX
};