summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <juan@godotengine.org>2019-03-06 12:10:36 -0300
committerJuan Linietsky <juan@godotengine.org>2019-03-06 12:12:42 -0300
commit5f079e2ef90dfc76887814e10b6ed16aa8fe88d9 (patch)
tree8d404de8209af0b02b3aea274c9c42b824dbfa9b
parente60465dd7508cd540ec5a7f13e28a8fd73dc7eb1 (diff)
-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
-rw-r--r--editor/create_dialog.cpp12
-rw-r--r--editor/editor_node.cpp2
-rw-r--r--editor/editor_properties.cpp3
-rw-r--r--editor/editor_settings.cpp7
-rw-r--r--editor/editor_themes.cpp28
-rw-r--r--editor/scene_tree_editor.cpp11
-rw-r--r--editor/script_editor_debugger.cpp11
-rw-r--r--scene/gui/tree.cpp6
8 files changed, 30 insertions, 50 deletions
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index fbc23aa8e2..f42154bd39 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -113,18 +113,6 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) {
_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;
if (p_replace_mode) {
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index a29b50185c..d940a96123 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -5073,7 +5073,7 @@ EditorNode::EditorNode() {
EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false);
EDITOR_DEF("interface/inspector/horizontal_vector_types_editing", 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);
theme_base = memnew(Control);
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 2b8d5bf6c9..4f32fc7ac4 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -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");
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++) {
String type = open_in_new.get_slicec(',', i).strip_edges();
for (int j = 0; j < p_hint_text.get_slice_count(","); j++) {
String inherits = p_hint_text.get_slicec(',', j);
-
if (ClassDB::is_parent_class(inherits, type)) {
editor->set_use_sub_inspector(false);
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index c0e1e29df2..aa2b52617d 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -190,6 +190,11 @@ void EditorSettings::_get_property_list(List<PropertyInfo> *p_list) const {
vc.order = v->order;
vc.type = v->variant.get_type();
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;
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);
_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");
+ _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/border_size", 1);
_initial_set("interface/theme/use_graph_node_headers", false);
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index bc42a3f23b..c05db2571b 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -238,16 +238,17 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
const float default_contrast = 0.25;
//Theme settings
- Color accent_color = EDITOR_DEF("interface/theme/accent_color", Color::html("#699ce8"));
- Color base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#323b4f"));
- float contrast = EDITOR_DEF("interface/theme/contrast", default_contrast);
+ Color accent_color = EDITOR_GET("interface/theme/accent_color");
+ Color base_color = EDITOR_GET("interface/theme/base_color");
+ 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);
- int border_size = EDITOR_DEF("interface/theme/border_size", 1);
+ bool highlight_tabs = EDITOR_GET("interface/theme/highlight_tabs");
+ 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_base_color;
@@ -260,9 +261,9 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
preset_base_color = Color::html("#323b4f");
preset_contrast = default_contrast;
} else if (preset == "Custom") {
- accent_color = EDITOR_DEF("interface/theme/accent_color", Color::html("#699ce8"));
- base_color = EDITOR_DEF("interface/theme/base_color", Color::html("#323b4f"));
- contrast = EDITOR_DEF("interface/theme/contrast", default_contrast);
+ accent_color = EDITOR_GET("interface/theme/accent_color");
+ base_color = EDITOR_GET("interface/theme/base_color");
+ contrast = EDITOR_GET("interface/theme/contrast");
} else if (preset == "Alien") {
preset_accent_color = Color::html("#1bfe99");
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("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("thumb_size", "Editor", thumb_size);
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);
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
theme->set_icon("checked", "Tree", theme->get_icon("GuiChecked", "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("title_button_color", "Tree", font_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_constant("vseparation", "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("item_margin", "Tree", 3 * 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_speed", "Tree", 12);
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index 6602d2974f..4c23ae437b 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -979,17 +979,6 @@ void SceneTreeEditor::_warning_changed(Node *p_for_node) {
}
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() {
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp
index 6b7c4781dd..ddb7f065aa 100644
--- a/editor/script_editor_debugger.cpp
+++ b/editor/script_editor_debugger.cpp
@@ -1040,17 +1040,6 @@ void ScriptEditorDebugger::_notification(int p_what) {
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;
case NOTIFICATION_PROCESS: {
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 236c4dbe63..49cad6fccf 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1416,12 +1416,15 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
TreeItem *c = p_item->children;
+ int prev_ofs = children_pos.y - cache.offset.y + p_draw_ofs.y;
+
while (c) {
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 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;
+
if (c->get_children() != NULL)
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) {
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) {
return -1;
}
+ prev_ofs = root_pos.y;
}
if (htotal >= 0) {