mirror of
https://github.com/godotengine/godot
synced 2024-09-05 14:18:29 +00:00
-Make tileset and meshlibrary edit in a separate inspector, fixes #26671
-Made relationship lines appear based on theme settings, not previous hack -Fix drawing of relationship lines (was broken) -Fix double initialization of theme settings
This commit is contained in:
parent
e60465dd75
commit
5f079e2ef9
|
@ -113,18 +113,6 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) {
|
||||||
|
|
||||||
_update_search();
|
_update_search();
|
||||||
|
|
||||||
bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines");
|
|
||||||
Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color");
|
|
||||||
|
|
||||||
if (enable_rl) {
|
|
||||||
search_options->add_constant_override("draw_relationship_lines", 1);
|
|
||||||
search_options->add_color_override("relationship_line_color", rl_color);
|
|
||||||
search_options->add_constant_override("draw_guides", 0);
|
|
||||||
} else {
|
|
||||||
search_options->add_constant_override("draw_relationship_lines", 0);
|
|
||||||
search_options->add_constant_override("draw_guides", 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
is_replace_mode = p_replace_mode;
|
is_replace_mode = p_replace_mode;
|
||||||
|
|
||||||
if (p_replace_mode) {
|
if (p_replace_mode) {
|
||||||
|
|
|
@ -5073,7 +5073,7 @@ EditorNode::EditorNode() {
|
||||||
EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false);
|
EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false);
|
||||||
EDITOR_DEF("interface/inspector/horizontal_vector_types_editing", true);
|
EDITOR_DEF("interface/inspector/horizontal_vector_types_editing", true);
|
||||||
EDITOR_DEF("interface/inspector/open_resources_in_current_inspector", true);
|
EDITOR_DEF("interface/inspector/open_resources_in_current_inspector", true);
|
||||||
EDITOR_DEF("interface/inspector/resources_types_to_open_in_new_inspector", "SpatialMaterial,Script");
|
EDITOR_DEF("interface/inspector/resources_to_open_in_new_inspector", "SpatialMaterial,Script,MeshLibrary,TileSet");
|
||||||
EDITOR_DEF("run/auto_save/save_before_running", true);
|
EDITOR_DEF("run/auto_save/save_before_running", true);
|
||||||
|
|
||||||
theme_base = memnew(Control);
|
theme_base = memnew(Control);
|
||||||
|
|
|
@ -3211,12 +3211,11 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
|
||||||
editor->setup(p_hint == PROPERTY_HINT_RESOURCE_TYPE ? p_hint_text : "Resource");
|
editor->setup(p_hint == PROPERTY_HINT_RESOURCE_TYPE ? p_hint_text : "Resource");
|
||||||
|
|
||||||
if (p_hint == PROPERTY_HINT_RESOURCE_TYPE) {
|
if (p_hint == PROPERTY_HINT_RESOURCE_TYPE) {
|
||||||
String open_in_new = EDITOR_GET("interface/inspector/resources_types_to_open_in_new_inspector");
|
String open_in_new = EDITOR_GET("interface/inspector/resources_to_open_in_new_inspector");
|
||||||
for (int i = 0; i < open_in_new.get_slice_count(","); i++) {
|
for (int i = 0; i < open_in_new.get_slice_count(","); i++) {
|
||||||
String type = open_in_new.get_slicec(',', i).strip_edges();
|
String type = open_in_new.get_slicec(',', i).strip_edges();
|
||||||
for (int j = 0; j < p_hint_text.get_slice_count(","); j++) {
|
for (int j = 0; j < p_hint_text.get_slice_count(","); j++) {
|
||||||
String inherits = p_hint_text.get_slicec(',', j);
|
String inherits = p_hint_text.get_slicec(',', j);
|
||||||
|
|
||||||
if (ClassDB::is_parent_class(inherits, type)) {
|
if (ClassDB::is_parent_class(inherits, type)) {
|
||||||
|
|
||||||
editor->set_use_sub_inspector(false);
|
editor->set_use_sub_inspector(false);
|
||||||
|
|
|
@ -190,6 +190,11 @@ void EditorSettings::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||||
vc.order = v->order;
|
vc.order = v->order;
|
||||||
vc.type = v->variant.get_type();
|
vc.type = v->variant.get_type();
|
||||||
vc.save = v->save;
|
vc.save = v->save;
|
||||||
|
/*if (vc.save) { this should be implemented, but lets do after 3.1 is out.
|
||||||
|
if (v->initial.get_type() != Variant::NIL && v->initial == v->variant) {
|
||||||
|
vc.save = false;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
vc.restart_if_changed = v->restart_if_changed;
|
vc.restart_if_changed = v->restart_if_changed;
|
||||||
|
|
||||||
vclist.insert(vc);
|
vclist.insert(vc);
|
||||||
|
@ -336,6 +341,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
||||||
hints["interface/theme/base_color"] = PropertyInfo(Variant::COLOR, "interface/theme/base_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT);
|
hints["interface/theme/base_color"] = PropertyInfo(Variant::COLOR, "interface/theme/base_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT);
|
||||||
_initial_set("interface/theme/contrast", 0.25);
|
_initial_set("interface/theme/contrast", 0.25);
|
||||||
hints["interface/theme/contrast"] = PropertyInfo(Variant::REAL, "interface/theme/contrast", PROPERTY_HINT_RANGE, "0.01, 1, 0.01");
|
hints["interface/theme/contrast"] = PropertyInfo(Variant::REAL, "interface/theme/contrast", PROPERTY_HINT_RANGE, "0.01, 1, 0.01");
|
||||||
|
_initial_set("interface/theme/relationship_line_opacity", 0.1);
|
||||||
|
hints["interface/theme/relationship_line_opacity"] = PropertyInfo(Variant::REAL, "interface/theme/relationship_line_opacity", PROPERTY_HINT_RANGE, "0.00, 1, 0.01");
|
||||||
_initial_set("interface/theme/highlight_tabs", false);
|
_initial_set("interface/theme/highlight_tabs", false);
|
||||||
_initial_set("interface/theme/border_size", 1);
|
_initial_set("interface/theme/border_size", 1);
|
||||||
_initial_set("interface/theme/use_graph_node_headers", false);
|
_initial_set("interface/theme/use_graph_node_headers", false);
|
||||||
|
|
|
@ -238,16 +238,17 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
const float default_contrast = 0.25;
|
const float default_contrast = 0.25;
|
||||||
|
|
||||||
//Theme settings
|
//Theme settings
|
||||||
Color accent_color = EDITOR_DEF("interface/theme/accent_color", Color::html("#699ce8"));
|
Color accent_color = EDITOR_GET("interface/theme/accent_color");
|
||||||
Color base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#323b4f"));
|
Color base_color = EDITOR_GET("interface/theme/base_color");
|
||||||
float contrast = EDITOR_DEF("interface/theme/contrast", default_contrast);
|
float contrast = EDITOR_GET("interface/theme/contrast");
|
||||||
|
float relationship_line_opacity = EDITOR_GET("interface/theme/relationship_line_opacity");
|
||||||
|
|
||||||
String preset = EDITOR_DEF("interface/theme/preset", "Default");
|
String preset = EDITOR_GET("interface/theme/preset");
|
||||||
|
|
||||||
bool highlight_tabs = EDITOR_DEF("interface/theme/highlight_tabs", false);
|
bool highlight_tabs = EDITOR_GET("interface/theme/highlight_tabs");
|
||||||
int border_size = EDITOR_DEF("interface/theme/border_size", 1);
|
int border_size = EDITOR_GET("interface/theme/border_size");
|
||||||
|
|
||||||
bool use_gn_headers = EDITOR_DEF("interface/theme/use_graph_node_headers", false);
|
bool use_gn_headers = EDITOR_GET("interface/theme/use_graph_node_headers");
|
||||||
|
|
||||||
Color preset_accent_color;
|
Color preset_accent_color;
|
||||||
Color preset_base_color;
|
Color preset_base_color;
|
||||||
|
@ -260,9 +261,9 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
preset_base_color = Color::html("#323b4f");
|
preset_base_color = Color::html("#323b4f");
|
||||||
preset_contrast = default_contrast;
|
preset_contrast = default_contrast;
|
||||||
} else if (preset == "Custom") {
|
} else if (preset == "Custom") {
|
||||||
accent_color = EDITOR_DEF("interface/theme/accent_color", Color::html("#699ce8"));
|
accent_color = EDITOR_GET("interface/theme/accent_color");
|
||||||
base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#323b4f"));
|
base_color = EDITOR_GET("interface/theme/base_color");
|
||||||
contrast = EDITOR_DEF("interface/theme/contrast", default_contrast);
|
contrast = EDITOR_GET("interface/theme/contrast");
|
||||||
} else if (preset == "Alien") {
|
} else if (preset == "Alien") {
|
||||||
preset_accent_color = Color::html("#1bfe99");
|
preset_accent_color = Color::html("#1bfe99");
|
||||||
preset_base_color = Color::html("#2f373f");
|
preset_base_color = Color::html("#2f373f");
|
||||||
|
@ -368,7 +369,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
theme->set_color("error_color", "Editor", error_color);
|
theme->set_color("error_color", "Editor", error_color);
|
||||||
theme->set_color("property_color", "Editor", property_color);
|
theme->set_color("property_color", "Editor", property_color);
|
||||||
|
|
||||||
const int thumb_size = EDITOR_DEF("filesystem/file_dialog/thumbnail_size", 64);
|
const int thumb_size = EDITOR_GET("filesystem/file_dialog/thumbnail_size");
|
||||||
theme->set_constant("scale", "Editor", EDSCALE);
|
theme->set_constant("scale", "Editor", EDSCALE);
|
||||||
theme->set_constant("thumb_size", "Editor", thumb_size);
|
theme->set_constant("thumb_size", "Editor", thumb_size);
|
||||||
theme->set_constant("dark_theme", "Editor", dark_theme);
|
theme->set_constant("dark_theme", "Editor", dark_theme);
|
||||||
|
@ -660,6 +661,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
theme->set_stylebox("bg", "Tree", style_tree_bg);
|
theme->set_stylebox("bg", "Tree", style_tree_bg);
|
||||||
|
|
||||||
const Color guide_color = Color(mono_color.r, mono_color.g, mono_color.b, 0.05);
|
const Color guide_color = Color(mono_color.r, mono_color.g, mono_color.b, 0.05);
|
||||||
|
Color relationship_line_color = Color(mono_color.r, mono_color.g, mono_color.b, relationship_line_opacity);
|
||||||
// Tree
|
// Tree
|
||||||
theme->set_icon("checked", "Tree", theme->get_icon("GuiChecked", "EditorIcons"));
|
theme->set_icon("checked", "Tree", theme->get_icon("GuiChecked", "EditorIcons"));
|
||||||
theme->set_icon("unchecked", "Tree", theme->get_icon("GuiUnchecked", "EditorIcons"));
|
theme->set_icon("unchecked", "Tree", theme->get_icon("GuiUnchecked", "EditorIcons"));
|
||||||
|
@ -678,13 +680,15 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||||
theme->set_color("font_color_selected", "Tree", mono_color);
|
theme->set_color("font_color_selected", "Tree", mono_color);
|
||||||
theme->set_color("title_button_color", "Tree", font_color);
|
theme->set_color("title_button_color", "Tree", font_color);
|
||||||
theme->set_color("guide_color", "Tree", guide_color);
|
theme->set_color("guide_color", "Tree", guide_color);
|
||||||
|
theme->set_color("relationship_line_color", "Tree", relationship_line_color);
|
||||||
theme->set_color("drop_position_color", "Tree", accent_color);
|
theme->set_color("drop_position_color", "Tree", accent_color);
|
||||||
theme->set_constant("vseparation", "Tree", (extra_spacing + default_margin_size) * EDSCALE);
|
theme->set_constant("vseparation", "Tree", (extra_spacing + default_margin_size) * EDSCALE);
|
||||||
theme->set_constant("hseparation", "Tree", (extra_spacing + default_margin_size) * EDSCALE);
|
theme->set_constant("hseparation", "Tree", (extra_spacing + default_margin_size) * EDSCALE);
|
||||||
theme->set_constant("guide_width", "Tree", border_width);
|
theme->set_constant("guide_width", "Tree", border_width);
|
||||||
theme->set_constant("item_margin", "Tree", 3 * default_margin_size * EDSCALE);
|
theme->set_constant("item_margin", "Tree", 3 * default_margin_size * EDSCALE);
|
||||||
theme->set_constant("button_margin", "Tree", default_margin_size * EDSCALE);
|
theme->set_constant("button_margin", "Tree", default_margin_size * EDSCALE);
|
||||||
theme->set_constant("draw_relationship_lines", "Tree", 0);
|
theme->set_constant("draw_relationship_lines", "Tree", relationship_line_opacity >= 0.01);
|
||||||
|
theme->set_constant("draw_guides", "Tree", relationship_line_opacity < 0.01);
|
||||||
theme->set_constant("scroll_border", "Tree", default_margin_size * EDSCALE);
|
theme->set_constant("scroll_border", "Tree", default_margin_size * EDSCALE);
|
||||||
theme->set_constant("scroll_speed", "Tree", 12);
|
theme->set_constant("scroll_speed", "Tree", 12);
|
||||||
|
|
||||||
|
|
|
@ -979,17 +979,6 @@ void SceneTreeEditor::_warning_changed(Node *p_for_node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneTreeEditor::_editor_settings_changed() {
|
void SceneTreeEditor::_editor_settings_changed() {
|
||||||
bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines");
|
|
||||||
Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color");
|
|
||||||
|
|
||||||
if (enable_rl) {
|
|
||||||
tree->add_constant_override("draw_relationship_lines", 1);
|
|
||||||
tree->add_color_override("relationship_line_color", rl_color);
|
|
||||||
tree->add_constant_override("draw_guides", 0);
|
|
||||||
} else {
|
|
||||||
tree->add_constant_override("draw_relationship_lines", 0);
|
|
||||||
tree->add_constant_override("draw_guides", 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneTreeEditor::_bind_methods() {
|
void SceneTreeEditor::_bind_methods() {
|
||||||
|
|
|
@ -1040,17 +1040,6 @@ void ScriptEditorDebugger::_notification(int p_what) {
|
||||||
|
|
||||||
reason->add_color_override("font_color", get_color("error_color", "Editor"));
|
reason->add_color_override("font_color", get_color("error_color", "Editor"));
|
||||||
|
|
||||||
bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines");
|
|
||||||
Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color");
|
|
||||||
|
|
||||||
if (enable_rl) {
|
|
||||||
inspect_scene_tree->add_constant_override("draw_relationship_lines", 1);
|
|
||||||
inspect_scene_tree->add_color_override("relationship_line_color", rl_color);
|
|
||||||
inspect_scene_tree->add_constant_override("draw_guides", 0);
|
|
||||||
} else {
|
|
||||||
inspect_scene_tree->add_constant_override("draw_relationship_lines", 0);
|
|
||||||
inspect_scene_tree->add_constant_override("draw_guides", 1);
|
|
||||||
}
|
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_PROCESS: {
|
case NOTIFICATION_PROCESS: {
|
||||||
|
|
||||||
|
|
|
@ -1416,12 +1416,15 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
|
||||||
|
|
||||||
TreeItem *c = p_item->children;
|
TreeItem *c = p_item->children;
|
||||||
|
|
||||||
|
int prev_ofs = children_pos.y - cache.offset.y + p_draw_ofs.y;
|
||||||
|
|
||||||
while (c) {
|
while (c) {
|
||||||
|
|
||||||
if (cache.draw_relationship_lines > 0 && (!hide_root || c->parent != root)) {
|
if (cache.draw_relationship_lines > 0 && (!hide_root || c->parent != root)) {
|
||||||
int root_ofs = children_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin);
|
int root_ofs = children_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin);
|
||||||
int parent_ofs = p_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin);
|
int parent_ofs = p_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin);
|
||||||
Point2i root_pos = Point2i(root_ofs, children_pos.y + label_h / 2) - cache.offset + p_draw_ofs;
|
Point2i root_pos = Point2i(root_ofs, children_pos.y + label_h / 2) - cache.offset + p_draw_ofs;
|
||||||
|
|
||||||
if (c->get_children() != NULL)
|
if (c->get_children() != NULL)
|
||||||
root_pos -= Point2i(cache.arrow->get_width(), 0);
|
root_pos -= Point2i(cache.arrow->get_width(), 0);
|
||||||
|
|
||||||
|
@ -1434,12 +1437,13 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
|
||||||
|
|
||||||
if (root_pos.y + line_width >= 0) {
|
if (root_pos.y + line_width >= 0) {
|
||||||
VisualServer::get_singleton()->canvas_item_add_line(ci, root_pos, Point2i(parent_pos.x - Math::floor(line_width / 2), root_pos.y), cache.relationship_line_color, line_width);
|
VisualServer::get_singleton()->canvas_item_add_line(ci, root_pos, Point2i(parent_pos.x - Math::floor(line_width / 2), root_pos.y), cache.relationship_line_color, line_width);
|
||||||
VisualServer::get_singleton()->canvas_item_add_line(ci, Point2i(parent_pos.x, root_pos.y), parent_pos, cache.relationship_line_color, line_width);
|
VisualServer::get_singleton()->canvas_item_add_line(ci, Point2i(parent_pos.x, root_pos.y), Point2i(parent_pos.x, prev_ofs), cache.relationship_line_color, line_width);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (htotal < 0) {
|
if (htotal < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
prev_ofs = root_pos.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (htotal >= 0) {
|
if (htotal >= 0) {
|
||||||
|
|
Loading…
Reference in a new issue