summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_help.cpp3
-rw-r--r--editor/editor_help.h5
-rw-r--r--editor/editor_inspector.cpp49
-rw-r--r--editor/editor_inspector.h11
-rw-r--r--editor/editor_node.cpp2
5 files changed, 63 insertions, 7 deletions
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 65e50560bc..727383b960 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -1900,6 +1900,7 @@ void EditorHelpBit::_meta_clicked(String p_select) {
void EditorHelpBit::_bind_methods() {
ClassDB::bind_method("_meta_clicked", &EditorHelpBit::_meta_clicked);
+ ClassDB::bind_method(D_METHOD("set_text", "text"), &EditorHelpBit::set_text);
ADD_SIGNAL(MethodInfo("request_hide"));
}
@@ -1925,7 +1926,7 @@ EditorHelpBit::EditorHelpBit() {
rich_text = memnew(RichTextLabel);
add_child(rich_text);
- rich_text->set_anchors_and_margins_preset(Control::PRESET_WIDE);
+ //rich_text->set_anchors_and_margins_preset(Control::PRESET_WIDE);
rich_text->connect("meta_clicked", this, "_meta_clicked");
rich_text->add_color_override("selection_color", get_color("text_editor/theme/selection_color", "Editor"));
rich_text->set_override_selected_font_color(false);
diff --git a/editor/editor_help.h b/editor/editor_help.h
index 514169dc19..dbea97e98b 100644
--- a/editor/editor_help.h
+++ b/editor/editor_help.h
@@ -272,9 +272,9 @@ public:
~EditorHelp();
};
-class EditorHelpBit : public Panel {
+class EditorHelpBit : public PanelContainer {
- GDCLASS(EditorHelpBit, Panel);
+ GDCLASS(EditorHelpBit, PanelContainer);
RichTextLabel *rich_text;
void _go_to_help(String p_what);
@@ -285,6 +285,7 @@ protected:
void _notification(int p_what);
public:
+ RichTextLabel *get_rich_text() { return rich_text; }
void set_text(const String &p_text);
EditorHelpBit();
};
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 8d5c320743..488980db07 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -719,6 +719,24 @@ void EditorProperty::set_object_and_property(Object *p_object, const StringName
property = p_property;
}
+Control *EditorProperty::make_custom_tooltip(const String &p_text) const {
+
+ tooltip_text = p_text;
+ EditorHelpBit *help_bit = memnew(EditorHelpBit);
+ help_bit->add_style_override("panel", get_stylebox("panel", "TooltipPanel"));
+ help_bit->get_rich_text()->set_fixed_size_to_width(300);
+
+ String text = TTR("Property: ") + "[u][b]" + p_text.get_slice("::", 0) + "[/b][/u]\n";
+ text += p_text.get_slice("::", 1).strip_edges();
+ help_bit->set_text(text);
+ help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene
+ return help_bit;
+}
+
+String EditorProperty::get_tooltip_text() const {
+ return tooltip_text;
+}
+
void EditorProperty::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_label", "text"), &EditorProperty::set_label);
@@ -745,6 +763,8 @@ void EditorProperty::_bind_methods() {
ClassDB::bind_method(D_METHOD("_gui_input"), &EditorProperty::_gui_input);
ClassDB::bind_method(D_METHOD("_focusable_focused"), &EditorProperty::_focusable_focused);
+ ClassDB::bind_method(D_METHOD("get_tooltip_text"), &EditorProperty::get_tooltip_text);
+
ADD_PROPERTY(PropertyInfo(Variant::STRING, "label"), "set_label", "get_label");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "read_only"), "set_read_only", "is_read_only");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "checkable"), "set_checkable", "is_checkable");
@@ -919,6 +939,20 @@ void EditorInspectorCategory::_notification(int p_what) {
}
}
+Control *EditorInspectorCategory::make_custom_tooltip(const String &p_text) const {
+
+ tooltip_text = p_text;
+ EditorHelpBit *help_bit = memnew(EditorHelpBit);
+ help_bit->add_style_override("panel", get_stylebox("panel", "TooltipPanel"));
+ help_bit->get_rich_text()->set_fixed_size_to_width(300);
+
+ String text = "[u][b]" + p_text.get_slice("::", 0) + "[/b][/u]\n";
+ text += p_text.get_slice("::", 1).strip_edges();
+ help_bit->set_text(text);
+ help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene
+ return help_bit;
+}
+
Size2 EditorInspectorCategory::get_minimum_size() const {
Ref<Font> font = get_font("font", "Tree");
@@ -934,6 +968,15 @@ Size2 EditorInspectorCategory::get_minimum_size() const {
return ms;
}
+void EditorInspectorCategory::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("get_tooltip_text"), &EditorInspectorCategory::get_tooltip_text);
+}
+
+String EditorInspectorCategory::get_tooltip_text() const {
+
+ return tooltip_text;
+}
+
EditorInspectorCategory::EditorInspectorCategory() {
}
@@ -1395,7 +1438,7 @@ void EditorInspector::update_tree() {
class_descr_cache[type] = descr.word_wrap(80);
}
- category->set_tooltip(TTR("Class:") + " " + p.name + (class_descr_cache[type] == "" ? "" : "\n\n" + class_descr_cache[type]));
+ category->set_tooltip(p.name + "::" + (class_descr_cache[type] == "" ? "" : class_descr_cache[type]));
}
for (List<Ref<EditorInspectorPlugin> >::Element *E = valid_plugins.front(); E; E = E->next()) {
@@ -1587,9 +1630,9 @@ void EditorInspector::update_tree() {
ep->connect("resource_selected", this, "_resource_selected", varray(), CONNECT_DEFERRED);
ep->connect("object_id_selected", this, "_object_id_selected", varray(), CONNECT_DEFERRED);
if (doc_hint != String()) {
- ep->set_tooltip(TTR("Property:") + " " + property_prefix + p.name + "\n\n" + doc_hint);
+ ep->set_tooltip(property_prefix + p.name + "::" + doc_hint);
} else {
- ep->set_tooltip(TTR("Property:") + " " + property_prefix + p.name);
+ ep->set_tooltip(property_prefix + p.name);
}
ep->set_draw_red(draw_red);
ep->set_use_folding(use_folding);
diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h
index d9b66b05b2..454622d662 100644
--- a/editor/editor_inspector.h
+++ b/editor/editor_inspector.h
@@ -85,6 +85,8 @@ private:
Control *label_reference;
Control *bottom_editor;
+ mutable String tooltip_text;
+
protected:
void _notification(int p_what);
static void _bind_methods();
@@ -143,6 +145,10 @@ public:
float get_name_split_ratio() const;
void set_object_and_property(Object *p_object, const StringName &p_property);
+ virtual Control *make_custom_tooltip(const String &p_text) const;
+
+ String get_tooltip_text() const;
+
EditorProperty();
};
@@ -180,12 +186,17 @@ class EditorInspectorCategory : public Control {
Ref<Texture> icon;
String label;
Color bg_color;
+ mutable String tooltip_text;
protected:
void _notification(int p_what);
+ static void _bind_methods();
public:
virtual Size2 get_minimum_size() const;
+ virtual Control *make_custom_tooltip(const String &p_text) const;
+
+ String get_tooltip_text() const;
EditorInspectorCategory();
};
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index a6c68eb9b2..ff97878e71 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -5270,7 +5270,7 @@ EditorNode::EditorNode() {
video_restart_dialog->set_text(TTR("Changing the video driver requires restarting the editor."));
video_restart_dialog->get_ok()->set_text(TTR("Save & Restart"));
video_restart_dialog->connect("confirmed", this, "_menu_option", varray(SET_VIDEO_DRIVER_SAVE_AND_RESTART));
- add_child(video_restart_dialog);
+ gui_base->add_child(video_restart_dialog);
progress_hb = memnew(BackgroundProgress);