LightsModel.qml 910 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import QtQml.Models 2.1
  2. ListModel {
  3. id: root
  4. property string serviceUrl: undefined
  5. signal error(string text)
  6. onServiceUrlChanged: reload()
  7. function reload() {
  8. var request = new XMLHttpRequest()
  9. request.open('GET', root.serviceUrl + '/static/channels.js')
  10. request.onreadystatechange = function () {
  11. if (request.readyState !== XMLHttpRequest.DONE) {
  12. return
  13. }
  14. if (request.status === 200) {
  15. populateModel(JSON.parse(request.responseText))
  16. return
  17. }
  18. root.error(qsTr("[%1] Request error: %2").
  19. arg(request.status).
  20. arg(request.statusText))
  21. }
  22. request.send()
  23. }
  24. function populateModel(data) {
  25. data.groups.forEach(function (group) {
  26. root.append(group)
  27. })
  28. }
  29. }