import QtQuick 2.7 import QtQuick.Layouts 1.3 import Ubuntu.Components 1.3 import Ubuntu.Components.ListItems 1.3 as ListItems import io.thp.pyotherside 1.3 import "Components" Page { id: settingsPage property bool is_running: false property bool upstart: false property string status_msg header: PageHeader { id: header title: i18n.tr('Pantalaimon UT') trailingActionBar.actions: [ Action { iconName: 'info' text: i18n.tr('About') onTriggered: { pageStack.push(Qt.resolvedUrl("AboutPage.qml")); } } ] } ListItem { id: upstartState anchors.top: header.bottom width: parent.width ListItems.Standard { anchors.fill: parent text: upstart ? i18n.tr("Service start enabled") : i18n.tr("Service start disabled") control: Switch { checked: upstart onClicked: { if (checked) { py.call('service.add', [], function(result) {}); } else { py.call('service.remove', [], function(result) {}); } get_status(); } } } } ListItem { id: serviceState anchors.top: upstartState.bottom width: parent.width ListItems.Standard { anchors.fill: parent text: status_msg control: Switch { enabled: upstart checked: is_running onClicked: { if (checked) { py.call('service.start', [], function(result) {}); } else { py.call('service.stop', [], function(result) {}); } get_status(); } } } } ListView { id: listView width: parent.width height: parent.height - bottomEdgeHint.height anchors.top: serviceState.bottom visible: (listView.count !== 0) model: ListModel { id: listModel } clip: true delegate: ListItem { ListItems.Standard { anchors.fill: parent text: name progression: true onClicked: { var item = listModel.get(index); console.log(item); pageStack.push(editConfigPage, { idx: index, instance: item.name, homeserver: item.homeserver, listenport: item.listenport }); } } leadingActions: ListItemActions { actions: [ Action { iconName: "delete" text: i18n.tr("Delete homeserver") onTriggered: { console.log("debug: delete " + index); listModel.remove(index); saveConfig(); } } ] } } } Rectangle { visible: (listView.count === 0) // color: "lightgrey" anchors.fill: parent Label { text: i18n.tr("No homeservers") fontSize: "x-large" anchors.centerIn: parent } } Python { id: py Component.onCompleted: { addImportPath(Qt.resolvedUrl('../src/')); importModule('config', function() { py.call('config.load', [], function(result) { for (var i=0; i