add loaders on main pages so they are instanciated only when switching to corresponding views

This commit is contained in:
gaelle 2025-12-08 15:28:33 +01:00 committed by gaelle.braud
parent ff3aa59217
commit a562b0f1c8

View file

@ -582,72 +582,89 @@ Item {
} }
} }
} }
CallPage { Loader {
id: callPage active: mainStackLayout.currentIndex === 0
Connections { sourceComponent: CallPage {
target: mainItem id: callPage
function onOpenNewCallRequest() { Connections {
callPage.goToNewCall(); target: mainItem
function onOpenNewCallRequest() {
callPage.goToNewCall();
}
function onCallCreated() {
callPage.goToCallHistory();
}
function onOpenCallHistory() {
callPage.goToCallHistory();
}
function onOpenNumPadRequest() {
callPage.openNumPadRequest();
}
} }
function onCallCreated() { onCreateContactRequested: (name, address) => {
callPage.goToCallHistory(); mainItem.createContact(name, address);
} }
function onOpenCallHistory() { Component.onCompleted: {
callPage.goToCallHistory(); magicSearchBar.numericPadPopup = callPage.numericPadPopup;
} }
function onOpenNumPadRequest() { onGoToCallForwardSettings: {
callPage.openNumPadRequest(); var page = settingsPageComponent.createObject(parent, {
} defaultIndex: 1
} });
onCreateContactRequested: (name, address) => { openContextualMenuComponent(page);
mainItem.createContact(name, address);
}
Component.onCompleted: {
magicSearchBar.numericPadPopup = callPage.numericPadPopup;
}
onGoToCallForwardSettings: {
var page = settingsPageComponent.createObject(parent, {
defaultIndex: 1
});
openContextualMenuComponent(page);
}
}
ContactPage {
id: contactPage
Connections {
target: mainItem
function onCreateContactRequested(name, address) {
contactPage.createContact(name, address);
}
function onDisplayContactRequested(contactAddress) {
contactPage.initialFriendToDisplay = contactAddress;
} }
} }
} }
ChatPage { Loader {
id: chatPage active: mainStackLayout.currentIndex === 1
Connections { sourceComponent: ContactPage {
target: mainItem id: contactPage
function onDisplayChatRequested(contactAddress) { Connections {
console.log("display chat requested, open with address", contactAddress); target: mainItem
chatPage.remoteAddress = ""; function onCreateContactRequested(name, address) {
chatPage.remoteAddress = contactAddress; contactPage.createContact(name, address);
} }
function onOpenChatRequested(chat) { function onDisplayContactRequested(contactAddress) {
console.log("open chat requested, open", chat.core.title); contactPage.initialFriendToDisplay = contactAddress;
chatPage.openChatRequested(chat); }
} }
} }
} }
MeetingPage { Loader {
id: meetingPage active: mainStackLayout.currentIndex === 2
Connections { sourceComponent: ChatPage {
target: mainItem id: chatPage
function onScheduleMeetingRequested(subject, addresses) { Connections {
meetingPage.createPreFilledMeeting(subject, addresses); target: mainItem
function onDisplayChatRequested(contactAddress) {
console.log("display chat requested, open with address", contactAddress);
chatPage.remoteAddress = "";
chatPage.remoteAddress = contactAddress;
}
function onOpenChatRequested(chat) {
console.log("open chat requested, open", chat.core.title);
chatPage.openChatRequested(chat);
}
} }
} }
} }
Loader {
active: mainStackLayout.currentIndex === 3
sourceComponent: Component {
id: meetingComp
MeetingPage {
id: meetingPage
Connections {
target: mainItem
function onScheduleMeetingRequested(subject, addresses) {
meetingPage.createPreFilledMeeting(subject, addresses);
}
}
}
}
}
} }
} }
Component { Component {