~ci-train-bot/ubuntu-settings-components/ubuntu-settings-components-ubuntu-zesty-2106

« back to all changes in this revision

Viewing changes to plugins/Ubuntu/Settings/Menus/MediaPlayerMenu.qml

  • Committer: Bileto Bot
  • Date: 2016-10-24 11:32:00 UTC
  • mfrom: (146.3.110 slots-layout)
  • Revision ID: ci-train-bot@canonical.com-20161024113200-85dvkl9m1o0msi5i
* Menus: rewrite components using ListItemLayout's and SlotsLayout's
* Bump revision to 0.10, as per Components removal

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright 2013 Canonical Ltd.
 
2
 * Copyright 2013-2016 Canonical Ltd.
3
3
 *
4
4
 * This program is free software; you can redistribute it and/or modify
5
5
 * it under the terms of the GNU Lesser General Public License as published by
14
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
15
 *
16
16
 * Authored by Andrea Cimitan <andrea.cimitan@canonical.com>
 
17
 *             Marco Trevisan <marco.trevisan@canonical.com>
17
18
 */
18
19
 
19
20
import QtQuick 2.4
20
21
import Ubuntu.Components 1.3
21
 
import Ubuntu.Components.ListItems 1.3 as ListItem
22
 
import QtQuick.Layouts 1.1
23
22
import Ubuntu.Thumbnailer 0.1
24
23
 
25
 
ListItem.Empty {
 
24
BaseLayoutMenu {
26
25
    id: menu
27
26
 
28
27
    property bool showTrack: false
29
 
    property alias playerName: playerNameLabel.text
 
28
    property alias playerName: menu.text
30
29
    property alias playerIcon: playerIcon.source
31
30
 
32
31
    property alias albumArt: albumArtImage.source
33
 
    property alias song: songLabel.text
34
 
    property alias artist: artistLabel.text
35
 
    property alias album: albumLabel.text
 
32
    property string song
 
33
    property string artist
 
34
    property string album
36
35
 
37
 
    __height: column.height + units.gu(2)
 
36
    highlightWhenPressed: false
 
37
    implicitHeight: (albumLayout.visible ? albumLayout.height : layout.height) + (divider.visible ? divider.height : 0)
38
38
    Behavior on implicitHeight { UbuntuNumberAnimation {} }
39
39
 
40
 
    Column {
41
 
        id: column
42
 
        anchors {
43
 
            left: parent.left
44
 
            right: parent.right
45
 
            leftMargin: menu.__contentsMargins
46
 
            rightMargin: menu.__contentsMargins
47
 
            verticalCenter: parent.verticalCenter
48
 
        }
49
 
 
50
 
        RowLayout {
51
 
            objectName: "player"
52
 
            id: playerRow
53
 
            spacing: menu.__contentsMargins
54
 
            visible: !showTrack
55
 
            anchors { left: parent.left; right: parent.right }
56
 
 
57
 
            Image {
58
 
                id: playerIcon
59
 
                Layout.preferredHeight: units.gu(5)
60
 
                Layout.preferredWidth: units.gu(5)
61
 
            }
62
 
 
63
 
            Label {
64
 
                id: playerNameLabel
65
 
                Layout.fillWidth: true
66
 
                Layout.alignment: Qt.AlignVCenter
67
 
                elide: Text.ElideRight
68
 
                maximumLineCount: 1
69
 
            }
70
 
        }
71
 
 
72
 
        RowLayout {
73
 
            objectName: "albumArt"
74
 
            id: trackRow
75
 
            spacing: units.gu(2)
76
 
            visible: showTrack
77
 
            anchors { left: parent.left; right: parent.right }
78
 
 
79
 
            UbuntuShape {
80
 
                Layout.preferredHeight: units.gu(8)
81
 
                Layout.preferredWidth: units.gu(8)
82
 
 
83
 
                image: Image {
84
 
                    id: albumArtImage
85
 
                    width: units.gu(8)
86
 
                    height: width
87
 
                    fillMode: Image.PreserveAspectFit
88
 
                    sourceSize: Qt.size(width, height)
89
 
                    anchors.centerIn: parent
90
 
                }
91
 
            }
92
 
 
93
 
            Column {
94
 
                Layout.alignment: Qt.AlignVCenter
95
 
                Layout.fillWidth: true
96
 
                spacing: units.gu(0.5)
97
 
 
98
 
                Label {
99
 
                    id: songLabel
100
 
                    elide: Text.ElideRight
101
 
                    maximumLineCount: 1
102
 
                    visible: text !== ""
103
 
                    anchors { left: parent.left; right: parent.right }
104
 
                }
105
 
 
106
 
                Label {
107
 
                    id: artistLabel
108
 
                    elide: Text.ElideRight
109
 
                    maximumLineCount: 1
110
 
                    visible: text !== ""
111
 
                    anchors { left: parent.left; right: parent.right }
112
 
                }
113
 
 
114
 
                Label {
115
 
                    id: albumLabel
116
 
                    elide: Text.ElideRight
117
 
                    maximumLineCount: 1
118
 
                    fontSize: "small"
119
 
                    visible: text !== ""
120
 
                    anchors { left: parent.left; right: parent.right }
121
 
                }
 
40
    layout.visible: !albumLayout.visible
 
41
    layout.objectName: "player"
 
42
 
 
43
    slots: Image {
 
44
        id: playerIcon
 
45
        height: units.gu(5)
 
46
        width: height
 
47
        SlotsLayout.position: SlotsLayout.Leading
 
48
    }
 
49
 
 
50
    ListItemLayout {
 
51
        id: albumLayout
 
52
        objectName: "albumArt"
 
53
        visible: showTrack
 
54
        title.text: menu.song
 
55
        subtitle.text: menu.artist
 
56
        summary.text: menu.album
 
57
 
 
58
        UbuntuShape {
 
59
            width: units.gu(8)
 
60
            height: width
 
61
            SlotsLayout.position: SlotsLayout.Leading
 
62
 
 
63
            image: Image {
 
64
                id: albumArtImage
 
65
                fillMode: Image.PreserveAspectFit
 
66
                sourceSize: Qt.size(width, height)
 
67
                anchors.fill: parent
122
68
            }
123
69
        }
124
70
    }