diff options
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 04185343..d6d2415a 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 } @@ -77,6 +78,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; @@ -97,7 +99,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); |
