summaryrefslogtreecommitdiffstats
path: root/editor/plugins/editor_resource_tooltip_plugins.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugins/editor_resource_tooltip_plugins.cpp')
-rw-r--r--editor/plugins/editor_resource_tooltip_plugins.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/editor/plugins/editor_resource_tooltip_plugins.cpp b/editor/plugins/editor_resource_tooltip_plugins.cpp
index fab8ee9f59..dfeb59214c 100644
--- a/editor/plugins/editor_resource_tooltip_plugins.cpp
+++ b/editor/plugins/editor_resource_tooltip_plugins.cpp
@@ -103,6 +103,7 @@ bool EditorTextureTooltipPlugin::handles(const String &p_resource_type) const {
Control *EditorTextureTooltipPlugin::make_tooltip_for_path(const String &p_resource_path, const Dictionary &p_metadata, Control *p_base) const {
HBoxContainer *hb = memnew(HBoxContainer);
VBoxContainer *vb = Object::cast_to<VBoxContainer>(p_base);
+ DEV_ASSERT(vb);
vb->set_alignment(BoxContainer::ALIGNMENT_CENTER);
Vector2 dimensions = p_metadata.get("dimensions", Vector2());
@@ -117,3 +118,29 @@ Control *EditorTextureTooltipPlugin::make_tooltip_for_path(const String &p_resou
hb->add_child(vb);
return hb;
}
+
+// EditorAudioStreamTooltipPlugin
+
+bool EditorAudioStreamTooltipPlugin::handles(const String &p_resource_type) const {
+ return ClassDB::is_parent_class(p_resource_type, "AudioStream");
+}
+
+Control *EditorAudioStreamTooltipPlugin::make_tooltip_for_path(const String &p_resource_path, const Dictionary &p_metadata, Control *p_base) const {
+ VBoxContainer *vb = Object::cast_to<VBoxContainer>(p_base);
+ DEV_ASSERT(vb);
+
+ double length = p_metadata.get("length", 0.0);
+ if (length >= 60.0) {
+ vb->add_child(memnew(Label(vformat(TTR("Length: %0dm %0ds"), int(length / 60.0), int(fmod(length, 60))))));
+ } else if (length >= 1.0) {
+ vb->add_child(memnew(Label(vformat(TTR("Length: %0.1fs"), length))));
+ } else {
+ vb->add_child(memnew(Label(vformat(TTR("Length: %0.3fs"), length))));
+ }
+
+ TextureRect *tr = memnew(TextureRect);
+ vb->add_child(tr);
+ request_thumbnail(p_resource_path, tr);
+
+ return vb;
+}