linphone-desktop/Linphone/view/Page/Main/Call/WaitingRoom.qml

179 lines
5.1 KiB
QML

import QtQuick
import QtQuick.Layouts
import QtQuick.Effects
import QtQuick.Controls.Basic as Control
import Linphone
import UtilsCpp
RowLayout {
id: mainItem
property alias localVideoEnabled: preview.videoEnabled
property bool microEnabled: true
property bool settingsButtonChecked: settingsButton.checked
property ConferenceInfoGui conferenceInfo
signal joinConfRequested(string uri)
signal cancelJoiningRequested()
RowLayout {
Layout.fillWidth: false
Layout.fillHeight: false
spacing: 100 * DefaultStyle.dp
Layout.alignment: Qt.AlignCenter
ColumnLayout {
spacing: 31 * DefaultStyle.dp
Sticker {
id: preview
previewEnabled: true
Layout.preferredHeight: 330 * DefaultStyle.dp
Layout.preferredWidth: 558 * DefaultStyle.dp
qmlName: "WP"
displayAll: false
displayPresence: false
mutedStatus: microButton.checked
AccountProxy {
id: accounts
sourceModel: AppCpp.accounts
}
account: accounts.defaultAccount
}
RowLayout {
Layout.alignment: Qt.AlignHCenter
spacing: 16 * DefaultStyle.dp
CheckableButton {
id: videoButton
iconUrl: AppIcons.videoCamera
checkedIconUrl: AppIcons.videoCameraSlash
checked: !mainItem.localVideoEnabled
color: DefaultStyle.grey_500
contentImageColor: DefaultStyle.main2_0
Layout.preferredWidth: 55 * DefaultStyle.dp
Layout.preferredHeight: 55 * DefaultStyle.dp
icon.width: 32 * DefaultStyle.dp
icon.height: 32 * DefaultStyle.dp
onClicked: mainItem.localVideoEnabled = !mainItem.localVideoEnabled
}
CheckableButton {
id: microButton
iconUrl: AppIcons.microphone
checkedIconUrl: AppIcons.microphoneSlash
color: DefaultStyle.grey_500
contentImageColor: DefaultStyle.main2_0
Layout.preferredWidth: 55 * DefaultStyle.dp
Layout.preferredHeight: 55 * DefaultStyle.dp
icon.width: 32 * DefaultStyle.dp
icon.height: 32 * DefaultStyle.dp
onCheckedChanged: mainItem.microEnabled = !mainItem.microEnabled
}
CheckableButton {
id: settingsButton
visible: stackLayout.currentIndex === 0
icon.source: AppIcons.more
color: DefaultStyle.grey_500
checkedColor: DefaultStyle.main2_100
contentImageColor: checked ? DefaultStyle.grey_500 : DefaultStyle.grey_0
Layout.preferredWidth: 55 * DefaultStyle.dp
Layout.preferredHeight: 55 * DefaultStyle.dp
icon.width: 24 * DefaultStyle.dp
icon.height: 24 * DefaultStyle.dp
}
CheckableButton {
id: speakerButton
visible: stackLayout.currentIndex === 1
iconUrl: AppIcons.speaker
checkedIconUrl: AppIcons.speakerSlash
color: DefaultStyle.grey_500
contentImageColor: DefaultStyle.main2_0
Layout.preferredWidth: 55 * DefaultStyle.dp
Layout.preferredHeight: 55 * DefaultStyle.dp
icon.width: 32 * DefaultStyle.dp
icon.height: 32 * DefaultStyle.dp
}
}
}
StackLayout {
id: stackLayout
currentIndex: 0
ColumnLayout {
spacing: 93 * DefaultStyle.dp
ColumnLayout {
Layout.topMargin: 54 * DefaultStyle.dp
spacing: 0
Text {
Layout.fillWidth: true
text: qsTr("Participer à :")
color: DefaultStyle.grey_0
font {
pixelSize: 30 * DefaultStyle.dp
weight: 300 * DefaultStyle.dp
}
}
Text {
Layout.fillWidth: true
text: mainItem.conferenceInfo && mainItem.conferenceInfo.core.subject
color: DefaultStyle.grey_0
font {
pixelSize: 30 * DefaultStyle.dp
weight: 300 * DefaultStyle.dp
}
}
}
ColumnLayout {
spacing: 5 * DefaultStyle.dp
Button {
Layout.preferredWidth: 292 * DefaultStyle.dp
leftPadding: 20 * DefaultStyle.dp
rightPadding: 20 * DefaultStyle.dp
topPadding: 11 * DefaultStyle.dp
bottomPadding: 11 * DefaultStyle.dp
text: qsTr("Join")
onClicked: {
settingsButton.checked = false
stackLayout.currentIndex = 1
mainItem.joinConfRequested(mainItem.conferenceInfo.core.uri)
}
}
Button {
Layout.preferredWidth: 292 * DefaultStyle.dp
leftPadding: 20 * DefaultStyle.dp
rightPadding: 20 * DefaultStyle.dp
bottomPadding: 11 * DefaultStyle.dp
inversedColors: true
text: qsTr("Cancel")
onClicked: {
mainItem.cancelJoiningRequested()
}
}
}
}
ColumnLayout {
spacing: 37 * DefaultStyle.dp
ColumnLayout {
spacing: 13 * DefaultStyle.dp
Text {
Layout.fillWidth: true
text: qsTr("Connexion à la réunion")
color: DefaultStyle.grey_0
font {
pixelSize: 30 * DefaultStyle.dp
weight: 300 * DefaultStyle.dp
}
}
Text {
Layout.fillWidth: true
text: qsTr("Vous allez rejoindre la réunion dans quelques instants...")
color: DefaultStyle.grey_0
font {
pixelSize: 14 * DefaultStyle.dp
weight: 400 * DefaultStyle.dp
}
}
}
BusyIndicator {
indicatorColor: DefaultStyle.main1_500_main
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: 48 * DefaultStyle.dp
Layout.preferredHeight: 48 * DefaultStyle.dp
}
}
}
}
}