Advertisement
kenya888

Untitled

Aug 1st, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. import QtQuick 2.1
  2. import QtQuick.XmlListModel 2.0
  3.  
  4. Rectangle {
  5. width: 600
  6. height: 800
  7.  
  8. ListView {
  9. anchors.fill: parent
  10. clip: true
  11. model: dataModel
  12. delegate: Item {
  13. width: parent.width
  14. height: 20
  15. Text { text: "%1(%2)".arg(name).arg(breweryName); verticalAlignment: Text.AlignVCenter }
  16. }
  17. }
  18.  
  19. Rectangle {
  20. anchors{ bottom: parent.bottom; right: parent.right }
  21. width: Math.max(txt1.contentWidth, txt2.contentWidth, txt3.contentWidth)
  22. height: txt1.contentHeight + txt2.contentHeight + txt3.contentHeight
  23. color: "Yellow"
  24. opacity: 0.6
  25.  
  26. Column {
  27. id: column
  28. anchors.right: parent.right
  29. Text { id: txt1; text: "Status: "; horizontalAlignment: Text.AlignRight }
  30. Text { id: txt2; text: "Page: "; horizontalAlignment: Text.AlignRight }
  31. Text { id: txt3; text: "Total Results:"; horizontalAlignment: Text.AlignRight }
  32. }
  33. }
  34.  
  35. XmlListModel {
  36. id: statusModel
  37. query: "/root"
  38. XmlRole { name: "currentPage"; query: "currentPage/number()" }
  39. XmlRole { name: "numberOfPages"; query: "numberOfPages/number()" }
  40. XmlRole { name: "totalResults"; query: "totalResults/number()" }
  41. XmlRole { name: "status"; query: "status/string()" }
  42.  
  43. onStatusChanged: {
  44. if(status === XmlListModel.Ready) {
  45. txt1.text += statusModel.get(0).status
  46. txt2.text += "%1/%2".arg(statusModel.get(0).currentPage).arg(statusModel.get(0).numberOfPages)
  47. txt3.text += "%1".arg(statusModel.get(0).totalResults)
  48. }
  49. }
  50. }
  51.  
  52. XmlListModel {
  53. id: dataModel
  54. xml: statusModel.xml
  55. query: "/root/data/item"
  56. XmlRole { name: "beerid"; query: "id/string()" }
  57. XmlRole { name: "name"; query: "name/string()" }
  58. XmlRole { name: "breweryName"; query: "breweries/item/name/string()" }
  59. }
  60.  
  61. Component.onCompleted: search("Black", function(ret){ load(ret) })
  62.  
  63. function search(word, callback) {
  64. var url = "http://api.brewerydb.com/v2/search?q=%1&p=1&key=4f6edd5e58c02bdb33f83e75edfbc422&withBreweries=Y&type=beer&format=xml".arg(word)
  65. var req = new XMLHttpRequest()
  66. req.open("GET", url)
  67. req.setRequestHeader("Content-Type", "text/xml")
  68. req.onreadystatechange = function(){
  69. if (req.readyState === XMLHttpRequest.DONE && req.status === 200){
  70. callback(req.responseText)
  71. }
  72. }
  73. req.send()
  74. }
  75.  
  76. function load(xml) {
  77. statusModel.xml = xml
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement