~danielholm/+junk/sverigesradio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import QtQuick 2.0
import Ubuntu.Components 0.1
import QtMultimedia 5.0
import QtQuick.XmlListModel 2.0
import Ubuntu.Components.ListItems 0.1 as ListItem
import "components"

/*!
    \brief MainView with a Label and Button elements.
*/

MainView {
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"
    id: mainView
    
    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "com.ubuntu.developer.danielholm.sverigesradio"
    
    /* 
     This property enables the application to change orientation 
     when the device is rotated. The default is false.
    */
    //automaticOrientation: true
    

    Style { id: styleMusic }

    headerColor: styleMusic.mainView.headerColor
    backgroundColor: styleMusic.mainView.backgroundColor
    footerColor: styleMusic.mainView.footerColor

    width: units.gu(50)
    height: units.gu(75)

    // Get data from msm-webui
    XmlListModel {
        id: podcasts
        source: "http://api.sr.se/api/rss/pod/3966"
        query: "/rss/channel/item"

        XmlRole { name: "title"; query: "title/string()" }
        XmlRole { name: "date"; query: "pubDate/string()" }
        XmlRole { name: "description"; query: "description/string()" }
        XmlRole { name: "link"; query: "link/string()" }
    }

    Audio {
        id: player
        source: "https://sverigesradio.se/topsy/ljudfil/4693796.m3u"
    }
    
    Page {
        title: i18n.tr("P3 Dokumentärer")

        Column {
            spacing: units.gu(1)
            width: parent.width
            height: parent.height
            anchors {
                margins: units.gu(2)
                fill: parent
            }
            
            ListView {
                id: podcastsView
                width: parent.width
                height: parent.height
                model: podcasts
                delegate: ListItem.Subtitled {
                       id: playlist
                       text: title
                       subText: description
                       progression: true
                       onClicked: {
                           console.debug("Debug: Listen to: "+title)
                           player.source = link
                           player.play()
                       }
                }
            }
        }

        tools: ToolbarItems {
            ToolbarButton {
                id: pausButton
                text: "Paus"
                iconSource: Qt.resolvedUrl("images/pause.svg")

                onTriggered: {
                    player.pause()
                }
            }

            ToolbarButton {
                id: stopButton
                text: "Stop"

                onTriggered: {
                    player.stop()
                }
            }

            // Settings dialog
            ToolbarButton {
                iconSource: Qt.resolvedUrl("images/settings.svg")
                text: i18n.tr("Settings")

                onTriggered: {
                    console.debug('Debug: Show settings from tracks')
                    PopupUtils.open(Qt.resolvedUrl("MusicSettings.qml"), mainView,
                                    {
                                        title: i18n.tr("Settings")
                                    } )
                }
            }
        }
    }
}