Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keep advanced toggle on when searching for settings #97282

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 26 additions & 7 deletions editor/editor_sectioned_inspector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@

#include "editor_sectioned_inspector.h"

#include "editor/editor_inspector.h"
#include "editor/editor_property_name_processor.h"
#include "editor/editor_settings.h"
#include "editor/editor_string_names.h"
#include "editor/themes/editor_scale.h"
#include "scene/gui/check_button.h"
#include "scene/gui/tree.h"

static bool _property_path_matches(const String &p_property_path, const String &p_filter, EditorPropertyNameProcessor::Style p_style) {
if (p_property_path.containsn(p_filter)) {
Expand Down Expand Up @@ -307,18 +309,35 @@ void SectionedInspector::register_search_box(LineEdit *p_box) {
search_box->connect(SceneStringName(text_changed), callable_mp(this, &SectionedInspector::_search_changed));
}

void SectionedInspector::register_advanced_toggle(CheckButton *p_toggle) {
advanced_toggle = p_toggle;
advanced_toggle->connect(SceneStringName(toggled), callable_mp(this, &SectionedInspector::_advanced_toggled));
_advanced_toggled(advanced_toggle->is_pressed());
}

void SectionedInspector::_search_changed(const String &p_what) {
if (advanced_toggle) {
if (p_what.is_empty()) {
advanced_toggle->set_pressed_no_signal(!restrict_to_basic);
advanced_toggle->set_disabled(false);
advanced_toggle->set_tooltip_text(String());
} else {
advanced_toggle->set_pressed_no_signal(true);
advanced_toggle->set_disabled(true);
advanced_toggle->set_tooltip_text(TTR("Advanced settings are always shown when searching."));
}
}
update_category_list();
}

EditorInspector *SectionedInspector::get_inspector() {
return inspector;
void SectionedInspector::_advanced_toggled(bool p_toggled_on) {
restrict_to_basic = !p_toggled_on;
update_category_list();
inspector->set_restrict_to_basic_settings(restrict_to_basic);
}

void SectionedInspector::set_restrict_to_basic_settings(bool p_restrict) {
restrict_to_basic = p_restrict;
update_category_list();
inspector->set_restrict_to_basic_settings(p_restrict);
EditorInspector *SectionedInspector::get_inspector() {
return inspector;
}

SectionedInspector::SectionedInspector() :
Expand Down
12 changes: 9 additions & 3 deletions editor/editor_sectioned_inspector.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,14 @@
#ifndef EDITOR_SECTIONED_INSPECTOR_H
#define EDITOR_SECTIONED_INSPECTOR_H

#include "editor/editor_inspector.h"
#include "scene/gui/split_container.h"
#include "scene/gui/tree.h"

class CheckButton;
class EditorInspector;
class LineEdit;
class SectionedInspectorFilter;
class Tree;
class TreeItem;

class SectionedInspector : public HSplitContainer {
GDCLASS(SectionedInspector, HSplitContainer);
Expand All @@ -48,6 +51,7 @@ class SectionedInspector : public HSplitContainer {
HashMap<String, TreeItem *> section_map;
EditorInspector *inspector = nullptr;
LineEdit *search_box = nullptr;
CheckButton *advanced_toggle = nullptr;

String selected_category;

Expand All @@ -57,17 +61,19 @@ class SectionedInspector : public HSplitContainer {
void _section_selected();

void _search_changed(const String &p_what);
void _advanced_toggled(bool p_toggled_on);

public:
void register_search_box(LineEdit *p_box);
void register_advanced_toggle(CheckButton *p_toggle);

EditorInspector *get_inspector();
void edit(Object *p_object);
String get_full_item_path(const String &p_item);

void set_current_section(const String &p_section);
String get_current_section() const;

void set_restrict_to_basic_settings(bool p_restrict);
void update_category_list();

SectionedInspector();
Expand Down
4 changes: 2 additions & 2 deletions editor/editor_settings_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "core/input/input_map.h"
#include "core/os/keyboard.h"
#include "editor/debugger/editor_debugger_node.h"
#include "editor/editor_inspector.h"
#include "editor/editor_log.h"
#include "editor/editor_node.h"
#include "editor/editor_property_name_processor.h"
Expand Down Expand Up @@ -806,7 +807,6 @@ void EditorSettingsDialog::_focus_current_search_box() {

void EditorSettingsDialog::_advanced_toggled(bool p_button_pressed) {
EditorSettings::get_singleton()->set("_editor_settings_advanced_mode", p_button_pressed);
inspector->set_restrict_to_basic_settings(!p_button_pressed);
}

void EditorSettingsDialog::_editor_restart() {
Expand Down Expand Up @@ -860,8 +860,8 @@ EditorSettingsDialog::EditorSettingsDialog() {

inspector = memnew(SectionedInspector);
inspector->get_inspector()->set_use_filter(true);
inspector->set_restrict_to_basic_settings(!use_advanced);
inspector->register_search_box(search_box);
inspector->register_advanced_toggle(advanced_switch);
inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL);
tab_general->add_child(inspector);
inspector->get_inspector()->connect("property_edited", callable_mp(this, &EditorSettingsDialog::_settings_property_edited));
Expand Down
5 changes: 1 addition & 4 deletions editor/import_defaults_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,8 @@
#include "core/config/project_settings.h"
#include "core/io/resource_importer.h"
#include "editor/action_map_editor.h"
#include "editor/editor_autoload_settings.h"
#include "editor/editor_inspector.h"
#include "editor/editor_sectioned_inspector.h"
#include "editor/localization_editor.h"
#include "editor/plugins/editor_plugin_settings.h"
#include "editor/shader_globals_editor.h"
#include "scene/gui/center_container.h"

class ImportDefaultsEditorSettings : public Object {
Expand Down
7 changes: 3 additions & 4 deletions editor/project_settings_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include "project_settings_editor.h"

#include "core/config/project_settings.h"
#include "editor/editor_log.h"
#include "editor/editor_inspector.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
#include "editor/editor_string_names.h"
Expand Down Expand Up @@ -106,7 +106,6 @@ void ProjectSettingsEditor::_update_advanced(bool p_is_advanced) {
void ProjectSettingsEditor::_advanced_toggled(bool p_button_pressed) {
EditorSettings::get_singleton()->set_project_metadata("project_settings", "advanced_mode", p_button_pressed);
_update_advanced(p_button_pressed);
general_settings_inspector->set_restrict_to_basic_settings(!p_button_pressed);
}

void ProjectSettingsEditor::_setting_selected(const String &p_path) {
Expand Down Expand Up @@ -688,6 +687,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
general_settings_inspector = memnew(SectionedInspector);
general_settings_inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL);
general_settings_inspector->register_search_box(search_box);
general_settings_inspector->register_advanced_toggle(advanced);
general_settings_inspector->get_inspector()->set_use_filter(true);
general_settings_inspector->get_inspector()->connect("property_selected", callable_mp(this, &ProjectSettingsEditor::_setting_selected));
general_settings_inspector->get_inspector()->connect("property_edited", callable_mp(this, &ProjectSettingsEditor::_setting_edited));
Expand Down Expand Up @@ -771,11 +771,10 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
bool use_advanced = EditorSettings::get_singleton()->get_project_metadata("project_settings", "advanced_mode", false);

if (use_advanced) {
advanced->set_pressed_no_signal(true);
advanced->set_pressed(true);
}

_update_advanced(use_advanced);
general_settings_inspector->set_restrict_to_basic_settings(!use_advanced);

import_defaults_editor = memnew(ImportDefaultsEditor);
import_defaults_editor->set_name(TTR("Import Defaults"));
Expand Down
1 change: 1 addition & 0 deletions editor/shader_globals_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include "shader_globals_editor.h"

#include "core/config/project_settings.h"
#include "editor/editor_inspector.h"
#include "editor/editor_node.h"
#include "editor/editor_undo_redo_manager.h"
#include "servers/rendering/shader_language.h"
Expand Down
Loading