summaryrefslogtreecommitdiffstats
path: root/editor/project_settings_editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/project_settings_editor.cpp')
-rw-r--r--editor/project_settings_editor.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index d587737ed4..1b0d791ff1 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -70,6 +70,8 @@ void ProjectSettingsEditor::popup_project_settings(bool p_clear_filter) {
if (p_clear_filter) {
search_box->clear();
}
+
+ _focus_current_search_box();
}
void ProjectSettingsEditor::queue_save() {
@@ -173,7 +175,7 @@ void ProjectSettingsEditor::_feature_selected(int p_index) {
void ProjectSettingsEditor::_update_property_box() {
const String setting = _get_setting_name();
const Vector<String> t = setting.split(".", true, 1);
- const String name = t[0];
+ const String &name = t[0];
const String feature = (t.size() == 2) ? t[1] : "";
bool feature_invalid = (t.size() == 2) && (t[1].is_empty());
@@ -255,8 +257,7 @@ void ProjectSettingsEditor::shortcut_input(const Ref<InputEvent> &p_event) {
}
if (k->is_match(InputEventKey::create_reference(KeyModifierMask::CMD_OR_CTRL | Key::F))) {
- search_box->grab_focus();
- search_box->select_all();
+ _focus_current_search_box();
handled = true;
}
@@ -328,6 +329,25 @@ void ProjectSettingsEditor::_add_feature_overrides() {
}
}
+void ProjectSettingsEditor::_tabs_tab_changed(int p_tab) {
+ _focus_current_search_box();
+}
+
+void ProjectSettingsEditor::_focus_current_search_box() {
+ Control *tab = tab_container->get_current_tab_control();
+ LineEdit *current_search_box = nullptr;
+ if (tab == general_editor) {
+ current_search_box = search_box;
+ } else if (tab == action_map_editor) {
+ current_search_box = action_map_editor->get_search_box();
+ }
+
+ if (current_search_box) {
+ current_search_box->grab_focus();
+ current_search_box->select_all();
+ }
+}
+
void ProjectSettingsEditor::_editor_restart() {
ProjectSettings::get_singleton()->save();
EditorNode::get_singleton()->save_all_scenes();
@@ -536,6 +556,8 @@ void ProjectSettingsEditor::_update_action_map_editor() {
}
void ProjectSettingsEditor::_update_theme() {
+ add_button->set_icon(get_editor_theme_icon(SNAME("Add")));
+ del_button->set_icon(get_editor_theme_icon(SNAME("Remove")));
search_box->set_right_icon(get_editor_theme_icon(SNAME("Search")));
restart_close_button->set_icon(get_editor_theme_icon(SNAME("Close")));
restart_container->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("Tree")));
@@ -598,6 +620,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
tab_container = memnew(TabContainer);
tab_container->set_use_hidden_tabs_for_min_size(true);
tab_container->set_theme_type_variation("TabContainerOdd");
+ tab_container->connect("tab_changed", callable_mp(this, &ProjectSettingsEditor::_tabs_tab_changed));
add_child(tab_container);
general_editor = memnew(VBoxContainer);