aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/conversation_content_view/file_widget.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/conversation_content_view/file_widget.vala')
-rw-r--r--main/src/ui/conversation_content_view/file_widget.vala16
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);