Increase the page size for array/dictionary editors to 20

With smaller arrays/dictionaries, this makes it possible to view all of
an array/dictionary's items on a single page.

Larger values could be used, but make switching between node selections
quite slow, especially on low-end CPUs. They could also be problematic
with complex resource inspectors for arrays/dictionaries that contain
Resources.

This closes https://github.com/godotengine/godot-proposals/issues/2058.

(cherry picked from commit d97d65b184)
This commit is contained in:
Hugo Locurcio 2021-01-01 19:41:11 +01:00 committed by Rémi Verschelde
parent a8105d73c7
commit f1bbb4fe3f
3 changed files with 10 additions and 8 deletions

View file

@ -504,8 +504,7 @@ void EditorPropertyArray::_bind_methods() {
EditorPropertyArray::EditorPropertyArray() {
object.instance();
page_idx = 0;
page_len = 10;
page_len = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page"));
edit = memnew(Button);
edit->set_flat(true);
edit->set_h_size_flags(SIZE_EXPAND_FILL);
@ -1000,8 +999,7 @@ void EditorPropertyDictionary::_bind_methods() {
EditorPropertyDictionary::EditorPropertyDictionary() {
object.instance();
page_idx = 0;
page_len = 10;
page_len = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page"));
edit = memnew(Button);
edit->set_flat(true);
edit->set_h_size_flags(SIZE_EXPAND_FILL);

View file

@ -84,8 +84,8 @@ class EditorPropertyArray : public EditorProperty {
bool updating;
Ref<EditorPropertyArrayObject> object;
int page_len;
int page_idx;
int page_len = 20;
int page_idx = 0;
int changing_type_idx;
Button *edit;
VBoxContainer *vbox;
@ -124,8 +124,8 @@ class EditorPropertyDictionary : public EditorProperty {
bool updating;
Ref<EditorPropertyDictionaryObject> object;
int page_len;
int page_idx;
int page_len = 20;
int page_idx = 0;
int changing_type_idx;
Button *edit;
VBoxContainer *vbox;

View file

@ -371,6 +371,10 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/save_each_scene_on_quit", true); // Regression
_initial_set("interface/editor/quit_confirmation", true);
// Inspector
_initial_set("interface/inspector/max_array_dictionary_items_per_page", 20);
hints["interface/inspector/max_array_dictionary_items_per_page"] = PropertyInfo(Variant::INT, "interface/inspector/max_array_dictionary_items_per_page", PROPERTY_HINT_RANGE, "10,100,1", PROPERTY_USAGE_DEFAULT);
// Theme
_initial_set("interface/theme/preset", "Default");
hints["interface/theme/preset"] = PropertyInfo(Variant::STRING, "interface/theme/preset", PROPERTY_HINT_ENUM, "Default,Alien,Arc,Godot 2,Grey,Light,Solarized (Dark),Solarized (Light),Custom", PROPERTY_USAGE_DEFAULT);