diff options
Diffstat (limited to 'qml/AccountsPage.qml')
-rw-r--r-- | qml/AccountsPage.qml | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/qml/AccountsPage.qml b/qml/AccountsPage.qml index c9368d2..3278031 100644 --- a/qml/AccountsPage.qml +++ b/qml/AccountsPage.qml @@ -12,7 +12,10 @@ Kirigami.Page { mainAction: Kirigami.Action { iconName: "list-add-user" text: "Add account" - onTriggered: accountsModel.addAccount() + onTriggered: { + let accountId = dcAccounts.addAccount() + accountsModel.insert(accountsModel.count, { number: accountId }) + } } contextualActions: [ @@ -31,7 +34,7 @@ Kirigami.Page { if (url.startsWith("file://")) { var filename = url.substring(7) console.log("Importing " + filename) - var accountId = accountsModel.importAccount (filename) + var accountId = dcAccounts.importAccount(filename) if (accountId == 0) { console.log("Import failed") } else { @@ -41,6 +44,23 @@ Kirigami.Page { } } + ListModel { + id: accountsModel + } + + function updateAccounts() { + let accountsList = dcAccounts.getAll() + + accountsModel.clear() + for (let i = 0; i < accountsList.length; i++) { + accountsModel.insert(i, { number: accountsList[i] }) + } + } + + Component.onCompleted: { + updateAccounts() + } + ListView { id: accountsListView anchors.fill: parent @@ -63,8 +83,8 @@ Kirigami.Page { while (pageStack.depth > 1) { pageStack.pop() } - accountsModel.selectedAccount = model.number - let context = accountsModel.getSelectedAccount() + dcAccounts.selectAccount(model.number) + let context = dcAccounts.getSelectedAccount() if (context.isConfigured()) { pageStack.push("qrc:/qml/ChatlistPage.qml", {context: context}) } else { @@ -76,7 +96,10 @@ Kirigami.Page { Button { width: 100 text: "Delete" - onClicked: accountsModel.removeAccount(model.number) + onClicked: { + dcAccounts.removeAccount(model.number) + accountsModel.remove(model.index) + } } } } |