Repository: godotengine/godot
File: editor/editor_settings_dialog.cpp (C++)

Code before:
}

void EditorSettingsPropertyWrapper::update_property() {
	editor_property->update_property();
}

void EditorSettingsPropertyWrapper::setup(const String &p_property, EditorProperty *p_editor_property) {
	property = p_property;
	container = memnew(VBoxContainer);

	editor_property = p_editor_property;
	editor_property->set_h_size_flags(SIZE_EXPAND_FILL);
	container->add_child(editor_property);

	override_info = memnew(HBoxContainer);
	override_info->hide();
	container->add_child(override_info);

	override_label = memnew(Label);
	override_label->set_text_overrun_behavior(TextServer::OVERRUN_TRIM_ELLIPSIS);
	override_label->set_mouse_filter(MOUSE_FILTER_STOP); // For tooltip.
	override_label->set_h_size_flags(SIZE_EXPAND_FILL);
	override_info->add_child(override_label);

	goto_button = memnew(Button);
	goto_button->set_tooltip_text(TTRC("Go to override in Project Settings."));
	override_info->add_child(goto_button);
	goto_button->connect(SceneStringName(pressed), callable_mp(EditorNode::get_singleton(), &EditorNode::open_setting_override).bind(property), CONNECT_DEFERRED);

	remove_button = memnew(Button);
	remove_button->set_tooltip_text(TTRC("Remove this override."));
	override_info->add_child(remove_button);
	remove_button->connect(SceneStringName(pressed), callable_mp(this, &EditorSettingsPropertyWrapper::_remove_override));

	add_child(container);
	_update_override();

	connect(SNAME("property_overridden"), callable_mp(this, &EditorSettingsPropertyWrapper::_create_override));
	editor_property->connect("property_changed", callable_mp((EditorProperty *)this, &EditorProperty::emit_changed));
}

bool EditorSettingsInspectorPlugin::can_handle(Object *p_object) {
	return p_object->is_class("SectionedInspectorFilter") && p_object != current_object;
}

bool EditorSettingsInspectorPlugin::parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide) {
	if (!p_object->is_class("SectionedInspectorFilter")) {
		return false;
	}

	const String property = inspector->get_full_item_path(p_path);

Review comment (suggestion):
As a tooltip it can afford to contain articles.
```suggestion
	goto_button->set_tooltip_text(TTRC("Go to the override in the Project Settings."));
```

Code after:
		restart_request_callback.call();
	}
}

void EditorSettingsPropertyWrapper::_notification(int p_what) {
	if (p_what == NOTIFICATION_THEME_CHANGED) {
		goto_button->set_button_icon(get_editor_theme_icon(SNAME("MethodOverride")));
		remove_button->set_button_icon(get_editor_theme_icon(SNAME("Close")));
	}
}

void EditorSettingsPropertyWrapper::update_property() {
	editor_property->update_property();
}

void EditorSettingsPropertyWrapper::setup(const String &p_property, EditorProperty *p_editor_property, bool p_requires_restart) {
	requires_restart = p_requires_restart;

	property = p_property;
	container = memnew(VBoxContainer);

	editor_property = p_editor_property;
	editor_property->set_h_size_flags(SIZE_EXPAND_FILL);
	container->add_child(editor_property);

	override_info = memnew(HBoxContainer);
	override_info->hide();
	container->add_child(override_info);

	override_label = memnew(Label);
	override_label->set_text_overrun_behavior(TextServer::OVERRUN_TRIM_ELLIPSIS);
	override_label->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
	override_label->set_mouse_filter(MOUSE_FILTER_STOP); // For tooltip.
	override_label->set_h_size_flags(SIZE_EXPAND_FILL);
	override_info->add_child(override_label);

	goto_button = memnew(Button);
	goto_button->set_tooltip_text(TTRC("Go to the override in the Project Settings."));
	override_info->add_child(goto_button);
	goto_button->connect(SceneStringName(pressed), callable_mp(EditorNode::get_singleton(), &EditorNode::open_setting_override).bind(property), CONNECT_DEFERRED);

	remove_button = memnew(Button);
	remove_button->set_tooltip_text(TTRC("Remove this override."));
	override_info->add_child(remove_button);
	remove_button->connect(SceneStringName(pressed), callable_mp(this, &EditorSettingsPropertyWrapper::_remove_override));

	add_child(container);
	_update_override();

	connect(SNAME("property_overridden"), callable_mp(this, &EditorSettingsPropertyWrapper::_create_override));
	editor_property->connect("property_changed", callable_mp((EditorProperty *)this, &EditorProperty::emit_changed));