diff options
| author | frosty <gabriel@bwaaa.monster> | 2026-08-27 20:49:23 -0400 |
|---|---|---|
| committer | frosty <gabriel@bwaaa.monster> | 2026-08-27 20:49:23 -0400 |
| commit | 3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (patch) | |
| tree | 959156c97bb0be4068b2825b83fdfb378c48975e /main/src/ui/conversation_content_view/file_widget.vala | |
| parent | ec49665bd9f06a83787fd3f7072ca0373487fd5e (diff) | |
feat: video player widget
Diffstat (limited to 'main/src/ui/conversation_content_view/file_widget.vala')
| -rw-r--r-- | main/src/ui/conversation_content_view/file_widget.vala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/main/src/ui/conversation_content_view/file_widget.vala b/main/src/ui/conversation_content_view/file_widget.vala index ecc2d3e9..3c21412a 100644 --- a/main/src/ui/conversation_content_view/file_widget.vala +++ b/main/src/ui/conversation_content_view/file_widget.vala @@ -46,6 +46,7 @@ public class FileWidget : SizeRequestBin { enum State { IMAGE, + VIDEO, DEFAULT } @@ -94,6 +95,7 @@ public class FileWidget : SizeRequestBin { private async void update_widget() { bool show_image = FileImageWidget.can_display(file_transfer); + bool show_video = FileVideoWidget.can_display(file_transfer); if (show_image && state != State.IMAGE) { var content_bak = content; @@ -114,7 +116,19 @@ public class FileWidget : SizeRequestBin { } catch (Error e) { } } - if (!show_image && state != State.DEFAULT) { + if (show_image && state == State.IMAGE) return; + + if (show_video && state != State.VIDEO) { + if (content != null) content.unparent(); + content = new FileVideoWidget(file_transfer); + state = State.VIDEO; + content.insert_after(this, null); + return; + } + + if (show_video && state == State.VIDEO) return; + + if (state != State.DEFAULT) { if (content != null) content.unparent(); FileDefaultWidget default_file_widget = new FileDefaultWidget(); default_widget_controller = new FileDefaultWidgetController(default_file_widget); |
