1 files changed, 107 insertions, 0 deletions
diff --git a/resources/qml/voip/PlaceCall.qml b/resources/qml/voip/PlaceCall.qml
new file mode 100644
index 00000000..7bf76ca6
--- /dev/null
+++ b/resources/qml/voip/PlaceCall.qml
@@ -0,0 +1,107 @@
+import QtQuick 2.3
+import QtQuick.Controls 2.3
+import QtQuick.Dialogs 1.3
+import QtQuick.Layouts 1.2
+import im.nheko 1.0
+import "../"
+
+ApplicationWindow {
+
+ flags: Qt.Dialog
+ modality: Qt.ApplicationModal
+ palette: colors
+ width: columnLayout.implicitWidth
+ height: columnLayout.implicitHeight
+
+ MessageDialog {
+ id: warningDialog
+ icon: StandardIcon.Warning
+ }
+
+ ColumnLayout {
+
+ id: columnLayout
+ spacing: 16
+
+ RowLayout {
+
+ Layout.topMargin: 16
+ Layout.leftMargin: 8
+
+ Label {
+ font.pointSize: fontMetrics.font.pointSize * 1.1
+ text: "Place a call to " + TimelineManager.timeline.roomName + "?"
+ }
+
+ Item {
+ Layout.fillWidth: true
+ }
+ }
+
+ RowLayout {
+
+ id: rowLayout
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+ Layout.bottomMargin: 16
+ spacing: 16
+
+ function validateMic() {
+ if (CallManager.mics.length == 0) {
+ warningDialog.text = "No microphone found.";
+ warningDialog.open();
+ return false;
+ }
+ else if (!CallManager.mics.includes(Settings.microphone)) {
+ warningDialog.text = "Unknown microphone: " + Settings.microphone;
+ warningDialog.open();
+ return false;
+ }
+ return true;
+ }
+
+ Avatar {
+ width: avatarSize
+ height: avatarSize
+ url: TimelineManager.timeline.roomAvatarUrl.replace("mxc://", "image://MxcImage/")
+ displayName: TimelineManager.timeline.roomName
+ }
+
+ Button {
+ text: qsTr("Voice")
+ icon.source: "qrc:/icons/icons/ui/place-call.png"
+ onClicked: {
+ if (rowLayout.validateMic()) {
+ CallManager.sendInvite(TimelineManager.timeline.roomId(), false);
+ close();
+ }
+ }
+ }
+
+ Button {
+ visible: CallManager.cameras.length > 0
+ text: qsTr("Video")
+ icon.source: "qrc:/icons/icons/ui/video-call.png"
+ onClicked: {
+ if (rowLayout.validateMic()) {
+ if (!CallManager.cameras.includes(Settings.camera)) {
+ warningDialog.text = "Unknown camera: " + Settings.camera;
+ warningDialog.open();
+ return;
+ }
+ CallManager.sendInvite(TimelineManager.timeline.roomId(), true);
+ close();
+ }
+ }
+ }
+
+ Button {
+ palette: colors
+ text: qsTr("Cancel")
+ onClicked: {
+ close();
+ }
+ }
+ }
+ }
+}
|