linux.x86.linphone/Linphone/view/App/Main.qml
Julien Wadel a1d72e6382 Feature : display accounts.
- Implement shaders to make round images and use qsb --qt6.
- Add picture to Friend.
- Display username if displayname is not found.
- Compute initials from C++ with emojis.
- Add Accounts list in a popup from main window.
- Add a hack on account to update avatar on all AcountModel.
- Add Avatar item for initials/picture.
- Add Contact description item.
- Make sizes proportionals to match designs.
- Add image colorization.
2023-12-01 15:20:48 +01:00

96 lines
2.1 KiB
QML

import QtQuick 2.15
import QtQuick.Layouts 1.3
import QtQuick.Controls
import Linphone
//import UI 1.0
Window {
id: mainWindow
width: 1512 * DefaultStyle.dp
height: 930 * DefaultStyle.dp
visible: true
title: qsTr("Linphone")
property bool firstConnection: true
AccountProxy{
id: accountProxy
onHaveAccountChanged: {
if(haveAccount)
mainWindowStackView.replace(mainPage)
else
mainWindowStackView.replace(loginPage)
}
}
StackView {
id: mainWindowStackView
anchors.fill: parent
initialItem: accountProxy.haveAccount ? mainPage : welcomePage
}
Component {
id: welcomePage
WelcomePage {
onStartButtonPressed: {
mainWindowStackView.replace(loginPage)// Replacing the first item will destroy the old.
}
}
}
Component {
id: loginPage
LoginPage {
onUseSIPButtonClicked: mainWindowStackView.push(sipLoginPage)
onGoToRegister: mainWindowStackView.replace(registerPage)
onConnectionSucceed: {
if (mainWindow.firstConnection) {
mainWindowStackView.replace(securityModePage)
} else {
mainWindowStackView.replace(mainPage)
}
}
}
}
Component {
id: sipLoginPage
SIPLoginPage {
onReturnToLogin: mainWindowStackView.pop()
onGoToRegister: mainWindowStackView.replace(registerPage)
onConnectionSucceed: {
if (mainWindow.firstConnection) {
mainWindowStackView.replace(securityModePage)
} else {
mainWindowStackView.replace(mainPage)
}
}
}
}
Component {
id: registerPage
RegisterPage {
onReturnToLogin: mainWindowStackView.replace(loginPage)
onRegisterCalled: (countryCode, phoneNumber, email) => {
mainWindowStackView.push(checkingPage, {"phoneNumber": phoneNumber, "email": email})
}
}
}
Component {
id: checkingPage
RegisterCheckingPage {
onReturnToRegister: mainWindowStackView.pop()
}
}
Component {
id: securityModePage
SecurityModePage {
onModeSelected: (index) => {
var selectedMode = index == 0 ? "chiffrement" : "interoperable"
console.debug("[SelectMode]User: User selected mode " + selectedMode)
mainWindowStackView.replace(mainPage)
}
}
}
Component {
id: mainPage
MainLayout {
}
}
}