1 files changed, 128 insertions, 0 deletions
diff --git a/resources/qml/voip/CallInviteBar.qml b/resources/qml/voip/CallInviteBar.qml
new file mode 100644
index 00000000..e349332f
--- /dev/null
+++ b/resources/qml/voip/CallInviteBar.qml
@@ -0,0 +1,128 @@
+import "../"
+import QtQuick 2.9
+import QtQuick.Controls 2.3
+import QtQuick.Layouts 1.2
+import im.nheko 1.0
+
+Rectangle {
+ visible: CallManager.haveCallInvite
+ color: "#2ECC71"
+ implicitHeight: visible ? rowLayout.height + 8 : 0
+
+ Component {
+ id: devicesDialog
+
+ CallDevices {
+ }
+
+ }
+
+ Component {
+ id: deviceError
+
+ DeviceError {
+ }
+
+ }
+
+ RowLayout {
+ id: rowLayout
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 8
+
+ Avatar {
+ width: avatarSize
+ height: avatarSize
+ url: CallManager.callPartyAvatarUrl.replace("mxc://", "image://MxcImage/")
+ displayName: CallManager.callParty
+ }
+
+ Label {
+ Layout.leftMargin: 8
+ font.pointSize: fontMetrics.font.pointSize * 1.1
+ text: CallManager.callParty
+ color: "#000000"
+ }
+
+ Image {
+ Layout.leftMargin: 4
+ Layout.preferredWidth: 24
+ Layout.preferredHeight: 24
+ source: CallManager.isVideo ? "qrc:/icons/icons/ui/video-call.png" : "qrc:/icons/icons/ui/place-call.png"
+ }
+
+ Label {
+ font.pointSize: fontMetrics.font.pointSize * 1.1
+ text: CallManager.isVideo ? qsTr("Video Call") : qsTr("Voice Call")
+ color: "#000000"
+ }
+
+ Item {
+ Layout.fillWidth: true
+ }
+
+ ImageButton {
+ Layout.rightMargin: 16
+ width: 20
+ height: 20
+ buttonTextColor: "#000000"
+ image: ":/icons/icons/ui/settings.png"
+ hoverEnabled: true
+ ToolTip.visible: hovered
+ ToolTip.text: qsTr("Devices")
+ onClicked: {
+ CallManager.refreshDevices();
+ var dialog = devicesDialog.createObject(timelineRoot);
+ dialog.open();
+ }
+ }
+
+ Button {
+ Layout.rightMargin: 4
+ icon.source: CallManager.isVideo ? "qrc:/icons/icons/ui/video-call.png" : "qrc:/icons/icons/ui/place-call.png"
+ text: qsTr(" Accept ")
+ palette: colors
+ onClicked: {
+ if (CallManager.mics.length == 0) {
+ var dialog = deviceError.createObject(timelineRoot, {
+ "errorString": qsTr("No microphone found."),
+ "image": ":/icons/icons/ui/place-call.png"
+ });
+ dialog.open();
+ return ;
+ } else if (!CallManager.mics.includes(Settings.microphone)) {
+ var dialog = deviceError.createObject(timelineRoot, {
+ "errorString": qsTr("Unknown microphone: ") + Settings.microphone,
+ "image": ":/icons/icons/ui/place-call.png"
+ });
+ dialog.open();
+ return ;
+ }
+ if (CallManager.isVideo && CallManager.cameras.length > 0 && !CallManager.cameras.includes(Settings.camera)) {
+ var dialog = deviceError.createObject(timelineRoot, {
+ "errorString": qsTr("Unknown camera: ") + Settings.camera,
+ "image": ":/icons/icons/ui/video-call.png"
+ });
+ dialog.open();
+ return ;
+ }
+ CallManager.acceptInvite();
+ }
+ }
+
+ Button {
+ Layout.rightMargin: 16
+ icon.source: "qrc:/icons/icons/ui/end-call.png"
+ text: qsTr(" Decline ")
+ palette: colors
+ onClicked: {
+ CallManager.hangUp();
+ }
+ }
+
+ }
+
+}
|