2020-12-30 23:03:07 +03:00
|
|
|
import "../"
|
2021-01-12 17:03:39 +03:00
|
|
|
import QtQuick 2.9
|
2020-12-17 19:25:32 +03:00
|
|
|
import QtQuick.Controls 2.3
|
2021-01-12 17:03:39 +03:00
|
|
|
import QtQuick.Layouts 1.2
|
2020-12-17 19:25:32 +03:00
|
|
|
import im.nheko 1.0
|
|
|
|
|
|
|
|
Rectangle {
|
2021-01-12 22:22:52 +03:00
|
|
|
visible: CallManager.haveCallInvite && !Settings.mobileMode
|
2020-12-17 19:25:32 +03:00
|
|
|
color: "#2ECC71"
|
|
|
|
implicitHeight: visible ? rowLayout.height + 8 : 0
|
|
|
|
|
2020-12-20 17:37:22 +03:00
|
|
|
Component {
|
|
|
|
id: devicesDialog
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-20 17:37:22 +03:00
|
|
|
CallDevices {
|
|
|
|
}
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-20 17:37:22 +03:00
|
|
|
}
|
|
|
|
|
2020-12-30 23:03:07 +03:00
|
|
|
Component {
|
|
|
|
id: deviceError
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-30 23:03:07 +03:00
|
|
|
DeviceError {
|
|
|
|
}
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-30 23:03:07 +03:00
|
|
|
}
|
|
|
|
|
2020-12-17 19:25:32 +03:00
|
|
|
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
|
2021-01-12 04:02:39 +03:00
|
|
|
onClicked: TimelineManager.openImageOverlay(TimelineManager.timeline.avatarUrl(userid), TimelineManager.timeline.data.id)
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
Label {
|
2020-12-19 17:32:20 +03:00
|
|
|
Layout.leftMargin: 8
|
2020-12-17 19:25:32 +03:00
|
|
|
font.pointSize: fontMetrics.font.pointSize * 1.1
|
2020-12-19 17:32:20 +03:00
|
|
|
text: CallManager.callParty
|
2020-12-30 23:03:07 +03:00
|
|
|
color: "#000000"
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
Image {
|
2020-12-19 17:32:20 +03:00
|
|
|
Layout.leftMargin: 4
|
2020-12-17 19:25:32 +03:00
|
|
|
Layout.preferredWidth: 24
|
|
|
|
Layout.preferredHeight: 24
|
2021-02-18 23:55:29 +03:00
|
|
|
source: CallManager.callType == CallType.VIDEO ? "qrc:/icons/icons/ui/video-call.png" : "qrc:/icons/icons/ui/place-call.png"
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
Label {
|
|
|
|
font.pointSize: fontMetrics.font.pointSize * 1.1
|
2021-02-18 23:55:29 +03:00
|
|
|
text: CallManager.callType == CallType.VIDEO ? qsTr("Video Call") : qsTr("Voice Call")
|
2020-12-30 23:03:07 +03:00
|
|
|
color: "#000000"
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
Item {
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2020-12-20 17:37:22 +03:00
|
|
|
ImageButton {
|
2020-12-30 23:03:07 +03:00
|
|
|
Layout.rightMargin: 16
|
|
|
|
width: 20
|
|
|
|
height: 20
|
2020-12-20 17:37:22 +03:00
|
|
|
buttonTextColor: "#000000"
|
|
|
|
image: ":/icons/icons/ui/settings.png"
|
|
|
|
hoverEnabled: true
|
|
|
|
ToolTip.visible: hovered
|
2020-12-20 18:14:55 +03:00
|
|
|
ToolTip.text: qsTr("Devices")
|
2020-12-20 17:37:22 +03:00
|
|
|
onClicked: {
|
2021-01-12 01:51:39 +03:00
|
|
|
CallManager.refreshDevices();
|
|
|
|
var dialog = devicesDialog.createObject(timelineRoot);
|
|
|
|
dialog.open();
|
2020-12-20 17:37:22 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-12-17 19:25:32 +03:00
|
|
|
Button {
|
2020-12-30 23:03:07 +03:00
|
|
|
Layout.rightMargin: 4
|
2021-02-18 23:55:29 +03:00
|
|
|
icon.source: CallManager.callType == CallType.VIDEO ? "qrc:/icons/icons/ui/video-call.png" : "qrc:/icons/icons/ui/place-call.png"
|
2021-01-15 15:57:19 +03:00
|
|
|
text: qsTr("Accept")
|
2021-01-07 01:15:43 +03:00
|
|
|
palette: colors
|
2020-12-17 19:25:32 +03:00
|
|
|
onClicked: {
|
|
|
|
if (CallManager.mics.length == 0) {
|
2020-12-30 23:03:07 +03:00
|
|
|
var dialog = deviceError.createObject(timelineRoot, {
|
|
|
|
"errorString": qsTr("No microphone found."),
|
2021-01-07 01:15:43 +03:00
|
|
|
"image": ":/icons/icons/ui/place-call.png"
|
2020-12-30 23:03:07 +03:00
|
|
|
});
|
|
|
|
dialog.open();
|
2021-01-12 01:51:39 +03:00
|
|
|
return ;
|
|
|
|
} else if (!CallManager.mics.includes(Settings.microphone)) {
|
2020-12-30 23:03:07 +03:00
|
|
|
var dialog = deviceError.createObject(timelineRoot, {
|
2021-01-15 15:57:19 +03:00
|
|
|
"errorString": qsTr("Unknown microphone: %1").arg(Settings.microphone),
|
2021-01-07 01:15:43 +03:00
|
|
|
"image": ":/icons/icons/ui/place-call.png"
|
2020-12-30 23:03:07 +03:00
|
|
|
});
|
|
|
|
dialog.open();
|
2021-01-12 01:51:39 +03:00
|
|
|
return ;
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
2021-02-18 23:55:29 +03:00
|
|
|
if (CallManager.callType == CallType.VIDEO && CallManager.cameras.length > 0 && !CallManager.cameras.includes(Settings.camera)) {
|
2020-12-30 23:03:07 +03:00
|
|
|
var dialog = deviceError.createObject(timelineRoot, {
|
2021-01-15 15:57:19 +03:00
|
|
|
"errorString": qsTr("Unknown camera: %1").arg(Settings.camera),
|
2021-01-07 01:15:43 +03:00
|
|
|
"image": ":/icons/icons/ui/video-call.png"
|
2020-12-30 23:03:07 +03:00
|
|
|
});
|
|
|
|
dialog.open();
|
2021-01-12 01:51:39 +03:00
|
|
|
return ;
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
|
|
|
CallManager.acceptInvite();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Button {
|
2020-12-30 23:03:07 +03:00
|
|
|
Layout.rightMargin: 16
|
2020-12-17 19:25:32 +03:00
|
|
|
icon.source: "qrc:/icons/icons/ui/end-call.png"
|
2021-01-15 15:57:19 +03:00
|
|
|
text: qsTr("Decline")
|
2021-01-07 01:15:43 +03:00
|
|
|
palette: colors
|
2020-12-17 19:25:32 +03:00
|
|
|
onClicked: {
|
|
|
|
CallManager.hangUp();
|
|
|
|
}
|
|
|
|
}
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|
2021-01-12 01:51:39 +03:00
|
|
|
|
2020-12-17 19:25:32 +03:00
|
|
|
}
|