set new privacy policy and terms of use urls fix mic volume tester visibility in call fix #LINQT-1583 secured avatar on unsecured address in call history fix #LINQT-1631 zrtp to verify devices fix #LINQT-1526 title inside stackview to avoid freeze effect fix #LINQT-1579 spacing in layouts fix #LINQT-1625 right panel closes before new call starts crop text sticker fix verified icon size
129 lines
3.4 KiB
QML
129 lines
3.4 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls.Basic as Control
|
|
import Linphone
|
|
import ConstantsCpp 1.0
|
|
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
|
|
|
|
ColumnLayout {
|
|
id: mainItem
|
|
spacing: 10 * DefaultStyle.dp
|
|
|
|
FormItemLayout {
|
|
id: username
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
label: qsTr("Nom d'utilisateur")
|
|
mandatory: true
|
|
enableErrorText: true
|
|
contentItem: TextField {
|
|
id: usernameEdit
|
|
Layout.preferredWidth: 360 * DefaultStyle.dp
|
|
Layout.preferredHeight: 49 * DefaultStyle.dp
|
|
isError: username.errorTextVisible || (errorText.isVisible && text.length > 0)
|
|
}
|
|
}
|
|
Item {
|
|
Layout.preferredHeight: password.implicitHeight
|
|
FormItemLayout {
|
|
id: password
|
|
width: 346 * DefaultStyle.dp
|
|
label: qsTr("Mot de passe")
|
|
mandatory: true
|
|
enableErrorText: true
|
|
contentItem: TextField {
|
|
id: passwordEdit
|
|
Layout.preferredWidth: 360 * DefaultStyle.dp
|
|
Layout.preferredHeight: 49 * DefaultStyle.dp
|
|
isError: password.errorTextVisible || (errorText.isVisible && text.length > 0)
|
|
hidden: true
|
|
}
|
|
TemporaryText {
|
|
id: errorText
|
|
anchors.bottom: parent.bottom
|
|
Connections {
|
|
target: LoginPageCpp
|
|
function onErrorMessageChanged() {
|
|
if (passwordEdit.text.length > 0 || usernameEdit.text.length > 0)
|
|
errorText.setText(LoginPageCpp.errorMessage)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.topMargin: 7 * DefaultStyle.dp
|
|
spacing: 29 * DefaultStyle.dp
|
|
BigButton {
|
|
id: connectionButton
|
|
style: ButtonStyle.main
|
|
contentItem: StackLayout {
|
|
id: connectionButtonContent
|
|
currentIndex: 0
|
|
Text {
|
|
text: qsTr("Connexion")
|
|
horizontalAlignment: Text.AlignHCenter
|
|
verticalAlignment: Text.AlignVCenter
|
|
|
|
font {
|
|
pixelSize: 18 * DefaultStyle.dp
|
|
weight: 600 * DefaultStyle.dp
|
|
}
|
|
color: DefaultStyle.grey_0
|
|
}
|
|
BusyIndicator {
|
|
implicitWidth: parent.height
|
|
implicitHeight: parent.height
|
|
Layout.alignment: Qt.AlignCenter
|
|
indicatorColor: DefaultStyle.grey_0
|
|
}
|
|
Connections {
|
|
target: LoginPageCpp
|
|
function onRegistrationStateChanged() {
|
|
if (LoginPageCpp.registrationState != LinphoneEnums.RegistrationState.Progress) {
|
|
connectionButton.enabled = true
|
|
connectionButtonContent.currentIndex = 0
|
|
}
|
|
}
|
|
function onErrorMessageChanged() {
|
|
connectionButton.enabled = true
|
|
connectionButtonContent.currentIndex = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
function trigger() {
|
|
username.errorMessage = ""
|
|
password.errorMessage = ""
|
|
errorText.text = ""
|
|
|
|
if (usernameEdit.text.length == 0 || passwordEdit.text.length == 0) {
|
|
if (usernameEdit.text.length == 0)
|
|
username.errorMessage = qsTr("Veuillez saisir un nom d'utilisateur")
|
|
if (passwordEdit.text.length == 0)
|
|
password.errorMessage = qsTr("Veuillez saisir un mot de passe")
|
|
return
|
|
}
|
|
LoginPageCpp.login(usernameEdit.text, passwordEdit.text)
|
|
connectionButton.enabled = false
|
|
connectionButtonContent.currentIndex = 1
|
|
}
|
|
|
|
Shortcut {
|
|
sequences: ["Return", "Enter"]
|
|
onActivated: if(passwordEdit.activeFocus) connectionButton.trigger()
|
|
else if( usernameEdit.activeFocus) passwordEdit.forceActiveFocus()
|
|
}
|
|
onPressed: connectionButton.trigger()
|
|
}
|
|
SmallButton {
|
|
id: forgottenButton
|
|
style: ButtonStyle.noBackground
|
|
text: qsTr("Mot de passe oublié ?")
|
|
underline: true
|
|
onClicked: Qt.openUrlExternally(ConstantsCpp.PasswordRecoveryUrl)
|
|
}
|
|
|
|
}
|
|
}
|