PlaylistsView.qml 3.45 KB
Newer Older
1 2 3
import QtQuick 2.9
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.2
4
import org.kde.kirigami 2.2 as Kirigami
5 6 7 8 9 10

import "../../view_models/BabeTable"
import "../../view_models"



11 12 13 14 15 16 17
//    transform: Translate
//    {
//        x: (playlistViewDrawer.position * playlistViewRoot.width * 0.33)*-1
//    }

Kirigami.PageRow
{
18 19 20 21 22
    id: playlistViewRoot

    signal rowClicked(var track)
    signal quickPlayTrack(var track)

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
    separatorVisible: wideMode
    initialPage:[playlistList, playlistViewDrawer]
    defaultColumnWidth: Kirigami.Units.gridUnit * 15

        Page
    {
        id: playlistList
        ColumnLayout
        {
            anchors.fill: parent
            spacing: 0
            Layout.margins: 0

            PlaylistsViewModel
            {
                id: playlistViewModel

                Layout.fillHeight: true
                Layout.fillWidth: true

            }

            ColorTagsBar
            {
                Layout.fillWidth: true
                height: 32
                recSize: 22
                Rectangle
                {
                    anchors.fill: parent
                    z: -999
                    color:bae.midColor()
                }
                //        onColorClicked: moodIt(color)
            }


        }
    }


    Page
65 66
    {
        id: playlistViewDrawer
67 68 69 70 71 72 73 74
        anchors.fill: parent
        //        y: root.header.height
        //        height: parent.height - root.header.height - root.footer.height
        //        width: root.isMobile ? parent.width : parent.width* 0.7
        //        edge: Qt.RightEdge
        //        interactive: true
        //        focus: true
        //        modal: isMobile
75

76 77
        //        modal: !root.wideScreen
        //        onModalChanged: drawerOpen = !modal
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

        background: Rectangle
        {
            color: bae.altColor()
        }

        BabeTable
        {
            id: filterList
            width: parent.width
            height: parent.height
            quickPlayVisible: true
            coverArtVisible: true
            trackRating: true
            trackDuration: true
            headerBar: true
94
            headerClose: !playlistViewRoot.wideMode
95 96
            headerTitle: playlistViewModel.model.get(playlistViewModel.currentIndex).playlist

97 98 99
            onHeaderClosed: if(!playlistViewRoot.wideMode)
                                playlistViewRoot.currentIndex = 0

100 101 102 103 104 105 106

            Connections
            {
                target: filterList
                onRowClicked: playlistViewRoot.rowClicked(filterList.model.get(index))
                onQuickPlayTrack:
                {
107
                    //                        playlistViewDrawer.close()
108 109
                    playlistViewRoot.quickPlayTrack(filterList.model.get(index))
                }
110 111
                //                        onPlayAll: Player.playAll(bae.get(Q.Query.allTracks))
                //                        onAppendAll: Player.appendAll(bae.get(Q.Query.allTracks))
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
            }
        }

    }



    function populate(query)
    {
        filterList.clearTable()

        var tracks = bae.get(query)

        if(tracks.length>0)
            for(var i in tracks)
                filterList.model.append(tracks[i])

    }

    Component.onCompleted:
    {
        var playlists = bae.get("select * from playlists order by addDate desc")
        if(playlists.length > 0)
            for(var i in playlists)
                playlistViewModel.model.append(playlists[i])
    }
}