| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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)
- }
- }
|