import QtQml.Models 2.1 ListModel { id: root readonly property var client: NooLiteClient { id: nooLiteClient onError: (text) => { root.error(text) root.isLoading = false } onModelLoad: (data) => { root.populateModel(data) root.isLoading = false } } property alias serviceUrl: nooLiteClient.serviceUrl property bool isLoading: false property int channelsCount: 0 signal error(string text) onServiceUrlChanged: reload() function reload() { root.client.loadModel() root.isLoading = true } function populateModel(data) { root.clear() root.channelsCount = 0 data.groups.forEach(function (group) { root.append(group) root.channelsCount += group.channels.length }) } function switchChannel(channelId) { root.client.sendCommand("switch", channelId) } function bindChannel(channelId) { root.client.sendCommand("bind", channelId) } function unbindChannel(channelId) { root.client.sendCommand("unbind", channelId) } }