264 lines
7.1 KiB
QML
264 lines
7.1 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Layouts 1.3
|
|
import QtQuick.Controls as Control
|
|
import Linphone
|
|
|
|
LoginLayout {
|
|
id: mainItem
|
|
signal returnToLogin()
|
|
signal registerCalled(countryCode: string, phoneNumber: string, email: string)
|
|
readonly property string countryCode: phoneNumberInput.countryCode
|
|
readonly property string phoneNumber: phoneNumberInput.phoneNumber
|
|
readonly property string email: emailInput.text
|
|
|
|
titleContent: [
|
|
RowLayout {
|
|
spacing: 21 * DefaultStyle.dp
|
|
Layout.leftMargin: 119 * DefaultStyle.dp
|
|
Image {
|
|
fillMode: Image.PreserveAspectFit
|
|
source: AppIcons.profile
|
|
}
|
|
Text {
|
|
Layout.preferredWidth: width
|
|
text: qsTr("Inscription")
|
|
font {
|
|
pixelSize: 36 * DefaultStyle.dp
|
|
weight: 800 * DefaultStyle.dp
|
|
}
|
|
wrapMode: Text.NoWrap
|
|
scaleLettersFactor: 1.1
|
|
}
|
|
},
|
|
Item {
|
|
Layout.fillWidth: true
|
|
},
|
|
RowLayout {
|
|
spacing: 20 * DefaultStyle.dp
|
|
Layout.rightMargin: 51 * DefaultStyle.dp
|
|
Text {
|
|
Layout.rightMargin: 15 * DefaultStyle.dp
|
|
color: DefaultStyle.main2_700
|
|
text: qsTr("Déjà un compte ?")
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
}
|
|
Button {
|
|
leftPadding: 20 * DefaultStyle.dp
|
|
rightPadding: 20 * DefaultStyle.dp
|
|
topPadding: 11 * DefaultStyle.dp
|
|
bottomPadding: 11 * DefaultStyle.dp
|
|
text: qsTr("Connexion")
|
|
onClicked: {
|
|
console.debug("[RegisterPage] User: return")
|
|
returnToLogin()
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
centerContent: [
|
|
ColumnLayout {
|
|
anchors.top: parent.top
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.topMargin: 51 * DefaultStyle.dp
|
|
anchors.leftMargin: 127 * DefaultStyle.dp
|
|
anchors.rightMargin: 127 * DefaultStyle.dp
|
|
spacing: 50 * DefaultStyle.dp
|
|
TabBar {
|
|
Layout.fillWidth: true
|
|
id: bar
|
|
model: [qsTr("Register with phone number"), qsTr("Register with email")]
|
|
}
|
|
ColumnLayout {
|
|
spacing: 22 * DefaultStyle.dp
|
|
ColumnLayout {
|
|
spacing: 24 * DefaultStyle.dp
|
|
RowLayout {
|
|
spacing: 16 * DefaultStyle.dp
|
|
FormItemLayout {
|
|
label: qsTr("Username")
|
|
mandatory: true
|
|
contentItem: TextField {
|
|
id: usernameInput
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
}
|
|
}
|
|
RowLayout {
|
|
spacing: 10 * DefaultStyle.dp
|
|
Layout.alignment: Qt.AlignBottom
|
|
ComboBox {
|
|
enabled: false
|
|
model: [{text:"@sip.linphone.org"}]
|
|
Layout.preferredWidth: 210 * DefaultStyle.dp
|
|
Layout.preferredHeight: 49 * DefaultStyle.dp
|
|
}
|
|
EffectImage {
|
|
imageSource: AppIcons.lock
|
|
colorizationColor: DefaultStyle.main2_600
|
|
Layout.preferredWidth: 16 * DefaultStyle.dp
|
|
Layout.preferredHeight: 16 * DefaultStyle.dp
|
|
}
|
|
}
|
|
}
|
|
StackLayout {
|
|
currentIndex: bar.currentIndex
|
|
Layout.fillWidth: true
|
|
PhoneNumberInput {
|
|
id: phoneNumberInput
|
|
label: qsTr("Phone number")
|
|
mandatory: true
|
|
placeholderText: "Phone number"
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
}
|
|
FormItemLayout {
|
|
label: qsTr("Email")
|
|
mandatory: true
|
|
contentItem: TextField {
|
|
id: emailInput
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
spacing: 16 * DefaultStyle.dp
|
|
ColumnLayout {
|
|
spacing: 5 * DefaultStyle.dp
|
|
FormItemLayout {
|
|
label: qsTr("Password")
|
|
mandatory: true
|
|
contentItem: TextField {
|
|
id: pwdInput
|
|
hidden: true
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
}
|
|
}
|
|
Text {
|
|
text: qsTr("The password must contain 6 characters minimum")
|
|
font {
|
|
pixelSize: 12 * DefaultStyle.dp
|
|
weight: 300 * DefaultStyle.dp
|
|
}
|
|
}
|
|
}
|
|
ColumnLayout {
|
|
spacing: 5 * DefaultStyle.dp
|
|
FormItemLayout {
|
|
label: qsTr("Confirm password")
|
|
mandatory: true
|
|
contentItem: TextField {
|
|
id: confirmPwdInput
|
|
hidden: true
|
|
Layout.preferredWidth: 346 * DefaultStyle.dp
|
|
}
|
|
}
|
|
Text {
|
|
text: qsTr("The password must contain 6 characters minimum")
|
|
font {
|
|
pixelSize: 12 * DefaultStyle.dp
|
|
weight: 300 * DefaultStyle.dp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ColumnLayout {
|
|
spacing: 18 * DefaultStyle.dp
|
|
RowLayout {
|
|
CheckBox {
|
|
}
|
|
Text {
|
|
text: qsTr("I would like to suscribe to the newsletter")
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
CheckBox {
|
|
id: termsCheckBox
|
|
}
|
|
RowLayout {
|
|
spacing: 0
|
|
Layout.fillWidth: true
|
|
Text {
|
|
// Layout.preferredWidth: 450 * DefaultStyle.dp
|
|
text: qsTr("I accept the Terms and Conditions: ")
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
}
|
|
Text {
|
|
// Layout.preferredWidth: 450 * DefaultStyle.dp
|
|
font {
|
|
underline: true
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
text: qsTr("Read the Terms and Conditions.")
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
onClicked: console.log("TODO : display terms and conditions")
|
|
}
|
|
}
|
|
Text {
|
|
// Layout.preferredWidth: 450 * DefaultStyle.dp
|
|
text: qsTr("I accept the Privacy policy: ")
|
|
font {
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
}
|
|
Text {
|
|
// Layout.preferredWidth: 450 * DefaultStyle.dp
|
|
font {
|
|
underline: true
|
|
pixelSize: 14 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
text: qsTr("Read the Privacy policy.")
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
onClicked: console.log("TODO : display privacy policy")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Button {
|
|
// enabled: termsCheckBox.checked && usernameInput.text.length != 0 && pwdInput.text.length != 0 && confirmPwdInput.text.length != 0
|
|
// && (phoneNumberInput.phoneNumber.length != 0 || emailInput.text.length != 0)
|
|
leftPadding: 20 * DefaultStyle.dp
|
|
rightPadding: 20 * DefaultStyle.dp
|
|
topPadding: 11 * DefaultStyle.dp
|
|
bottomPadding: 11 * DefaultStyle.dp
|
|
text: qsTr("Register")
|
|
onClicked:{
|
|
console.log("[RegisterPage] User: Call register with phone number", phoneNumberInput.phoneNumber)
|
|
mainItem.registerCalled(phoneNumberInput.countryCode, phoneNumberInput.phoneNumber, emailInput.text)
|
|
}
|
|
}
|
|
}
|
|
},
|
|
Image {
|
|
anchors.top: parent.top
|
|
anchors.right: parent.right
|
|
anchors.topMargin: 129 * DefaultStyle.dp
|
|
anchors.rightMargin: 127 * DefaultStyle.dp
|
|
width: 395 * DefaultStyle.dp
|
|
height: 350 * DefaultStyle.dp
|
|
fillMode: Image.PreserveAspectFit
|
|
source: AppIcons.loginImage
|
|
}
|
|
]
|
|
}
|
|
|