1 files changed, 154 insertions, 0 deletions
diff --git a/resources/qml/voip/PlaceCall.qml b/resources/qml/voip/PlaceCall.qml
new file mode 100644
index 00000000..65f2f350
--- /dev/null
+++ b/resources/qml/voip/PlaceCall.qml
@@ -0,0 +1,154 @@
+import "../"
+import QtQuick 2.9
+import QtQuick.Controls 2.3
+import QtQuick.Layouts 1.2
+import im.nheko 1.0
+
+Popup {
+ modal: true
+ anchors.centerIn: parent
+ palette: colors
+
+ Component {
+ id: deviceError
+
+ DeviceError {
+ }
+
+ }
+
+ ColumnLayout {
+ id: columnLayout
+
+ spacing: 16
+
+ RowLayout {
+ Layout.topMargin: 8
+ Layout.leftMargin: 8
+
+ Label {
+ text: qsTr("Place a call to ") + TimelineManager.timeline.roomName + "?"
+ color: colors.windowText
+ }
+
+ Item {
+ Layout.fillWidth: true
+ }
+
+ }
+
+ RowLayout {
+ id: buttonLayout
+
+ function validateMic() {
+ 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 false;
+ }
+ return true;
+ }
+
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+
+ Avatar {
+ Layout.rightMargin: cameraCombo.visible ? 16 : 64
+ 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 (buttonLayout.validateMic()) {
+ Settings.microphone = micCombo.currentText;
+ 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 (buttonLayout.validateMic()) {
+ Settings.microphone = micCombo.currentText;
+ Settings.camera = cameraCombo.currentText;
+ CallManager.sendInvite(TimelineManager.timeline.roomId(), true);
+ close();
+ }
+ }
+ }
+
+ Button {
+ text: qsTr("Cancel")
+ onClicked: {
+ close();
+ }
+ }
+
+ }
+
+ ColumnLayout {
+ spacing: 8
+
+ RowLayout {
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+ Layout.bottomMargin: cameraCombo.visible ? 0 : 8
+
+ Image {
+ Layout.preferredWidth: 22
+ Layout.preferredHeight: 22
+ source: "image://colorimage/:/icons/icons/ui/microphone-unmute.png?" + colors.windowText
+ }
+
+ ComboBox {
+ id: micCombo
+
+ Layout.fillWidth: true
+ model: CallManager.mics
+ }
+
+ }
+
+ RowLayout {
+ visible: CallManager.cameras.length > 0
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+ Layout.bottomMargin: 8
+
+ Image {
+ Layout.preferredWidth: 22
+ Layout.preferredHeight: 22
+ source: "image://colorimage/:/icons/icons/ui/video-call.png?" + colors.windowText
+ }
+
+ ComboBox {
+ id: cameraCombo
+
+ Layout.fillWidth: true
+ model: CallManager.cameras
+ }
+
+ }
+
+ }
+
+ }
+
+ background: Rectangle {
+ color: colors.window
+ border.color: colors.windowText
+ }
+
+}
|