diff --git a/src/app/mainview/components/DocumentsScrollview.qml b/src/app/mainview/components/DocumentsScrollview.qml index df516961..3338536a 100644 --- a/src/app/mainview/components/DocumentsScrollview.qml +++ b/src/app/mainview/components/DocumentsScrollview.qml @@ -20,7 +20,6 @@ import QtQuick.Controls import QtQuick.Layouts import Qt.labs.platform import Qt5Compat.GraphicalEffects -import QtWebEngine import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/app/mainview/components/FilePreview.qml b/src/app/mainview/components/FilePreview.qml index 57b1ec8b..fe8f3fd9 100644 --- a/src/app/mainview/components/FilePreview.qml +++ b/src/app/mainview/components/FilePreview.qml @@ -19,7 +19,6 @@ import QtQuick.Controls import QtQuick.Layouts import Qt.labs.platform import Qt5Compat.GraphicalEffects -import QtWebEngine import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/app/mainview/components/MediaPreview.qml b/src/app/mainview/components/MediaPreview.qml index 0c33bf3e..965f9343 100644 --- a/src/app/mainview/components/MediaPreview.qml +++ b/src/app/mainview/components/MediaPreview.qml @@ -19,7 +19,6 @@ import QtQuick.Controls import QtQuick.Layouts import Qt.labs.platform import Qt5Compat.GraphicalEffects -import QtWebEngine import net.jami.Models 1.1 import net.jami.Adapters 1.1 @@ -92,59 +91,17 @@ Component { } Component { id: avMediaComp - Loader { - property real msgRadius: 20 - - Rectangle { - id: videoAudioRect - color: JamiTheme.secondaryBackgroundColor - anchors.fill: parent - - WebEngineView { - id: wev - - property bool isVideo: mediaInfo.isVideo - property string html: mediaInfo.html - - anchors.fill: parent - anchors.verticalCenter: videoAudioRect.verticalCenter - backgroundColor: JamiTheme.secondaryBackgroundColor - anchors.topMargin: isVideo? 0 : wev.implicitHeight / 2 - settings.fullScreenSupportEnabled: isVideo - settings.javascriptCanOpenWindows: false - Component.onCompleted: loadHtml(html, 'file://') - onFullScreenRequested: function(request) { - if (request.toggleOn) { - layoutManager.pushFullScreenItem( - this, - videoAudioRect, - null, - function() { wev.fullScreenCancelled() }) - } else if (!request.toggleOn) { - layoutManager.removeFullScreenItem(this) - } - request.accept() - } - } - - layer.enabled: true - layer.effect: OpacityMask { - maskSource: Item { - width: videoAudioRect.width - height: videoAudioRect.height - Rectangle { - anchors.centerIn: parent - width: videoAudioRect.width - height: videoAudioRect.height - radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius - } - } - } + Component.onCompleted: { + var qml = WITH_WEBENGINE ? + "qrc:/webengine/VideoPreview.qml" : + "qrc:/nowebengine/VideoPreview.qml" + setSource( qml, { isVideo: mediaInfo.isVideo, html:mediaInfo.html } ) } + + property real msgRadius: 20 } } - Component { id: imageMediaComp diff --git a/src/app/mainview/components/SwarmDetailsPanel.qml b/src/app/mainview/components/SwarmDetailsPanel.qml index 0dd93bc2..7625a76e 100644 --- a/src/app/mainview/components/SwarmDetailsPanel.qml +++ b/src/app/mainview/components/SwarmDetailsPanel.qml @@ -21,7 +21,6 @@ import QtQuick.Controls import QtQuick.Layouts import Qt.labs.platform import Qt5Compat.GraphicalEffects -import QtWebEngine import net.jami.Models 1.1 import net.jami.Adapters 1.1 diff --git a/src/app/nowebengine/VideoPreview.qml b/src/app/nowebengine/VideoPreview.qml new file mode 100644 index 00000000..8c2e8a4f --- /dev/null +++ b/src/app/nowebengine/VideoPreview.qml @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 Savoir-faire Linux Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts + +Rectangle { + property var mediaInfo: undefined +} \ No newline at end of file diff --git a/src/app/webengine/VideoPreview.qml b/src/app/webengine/VideoPreview.qml new file mode 100644 index 00000000..edc03599 --- /dev/null +++ b/src/app/webengine/VideoPreview.qml @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 Savoir-faire Linux Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQuick +import QtWebEngine +import Qt5Compat.GraphicalEffects + +import net.jami.Constants 1.1 + +Rectangle { + id: root + color: JamiTheme.secondaryBackgroundColor + anchors.fill: parent + property bool isVideo: false + property string html: "" + + WebEngineView { + id: wev + + anchors.fill: parent + anchors.verticalCenter: root.verticalCenter + backgroundColor: JamiTheme.secondaryBackgroundColor + anchors.topMargin: root.isVideo? 0 : wev.implicitHeight / 2 + settings.fullScreenSupportEnabled: root.isVideo + settings.javascriptCanOpenWindows: false + Component.onCompleted: loadHtml(root.html, 'file://') + onFullScreenRequested: function(request) { + if (request.toggleOn) { + layoutManager.pushFullScreenItem( + this, + root, + null, + function() { wev.fullScreenCancelled() }) + } else if (!request.toggleOn) { + layoutManager.removeFullScreenItem(this) + } + request.accept() + } + } + + layer.enabled: true + layer.effect: OpacityMask { + maskSource: Item { + width: root.width + height: root.height + Rectangle { + anchors.centerIn: parent + width: root.width + height: root.height + radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius + } + } + } +} \ No newline at end of file