LightsModel.qml 1.0 KB

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