99
99
model: isAlbum ? songsModel : albumTracksModel.model
100
100
objectName: "songspage-listview"
101
101
width: parent.width
102
header: ListItem.Standard {
104
height: albumArtist.visible ? units.gu(33) : units.gu(30)
107
id: blurredBackground
108
height: parent.height
109
art: coversImage.covers.length > 0
110
? (coversImage.covers[0].art !== undefined
111
? coversImage.covers[0].art
112
: decodeURIComponent("image://albumart/artist=" + coversImage.covers[0].author + "&album=" + coversImage.covers[0].album))
113
: Qt.resolvedUrl("../images/music-app-cover@30.png")
121
topMargin: units.gu(3)
122
bottomMargin: units.gu(2)
123
leftMargin: units.gu(2)
124
rightMargin: units.gu(2)
126
covers: songStackPage.covers
132
wrapMode: Text.NoWrap
135
color: styleMusic.common.music
137
top: coversImage.bottom
138
topMargin: units.gu(1)
139
left: coversImage.left
141
rightMargin: units.gu(2)
143
elide: Text.ElideRight
149
objectName: "songsPageHeaderAlbumArtist"
150
wrapMode: Text.NoWrap
153
color: styleMusic.common.subtitle
154
visible: text !== i18n.tr("Playlist") &&
155
text !== i18n.tr("Genre")
157
top: albumLabel.bottom
158
topMargin: units.gu(0.75)
159
left: coversImage.left
161
rightMargin: units.gu(2)
163
elide: Text.ElideRight
169
wrapMode: Text.NoWrap
172
color: styleMusic.common.subtitle
174
top: albumArtist.visible ? albumArtist.bottom
176
topMargin: units.gu(1)
177
left: coversImage.left
179
rightMargin: units.gu(2)
181
elide: Text.ElideRight
182
text: isAlbum && line1 !== i18n.tr("Genre") ? year + " | " + i18n.tr("%1 song", "%1 songs", albumtrackslist.count).arg(albumtrackslist.count)
183
: i18n.tr("%1 song", "%1 songs", albumtrackslist.count).arg(albumtrackslist.count)
191
bottom: queueAllRow.top
192
bottomMargin: units.gu(2)
193
left: coversImage.right
194
leftMargin: units.gu(2)
196
strokeColor: UbuntuColors.green
204
text: i18n.tr("Shuffle")
209
shuffleModel(albumtrackslist.model) // play track
211
if (isAlbum && songStackPage.line1 !== i18n.tr("Genre")) {
212
Library.addRecent(songStackPage.line2, songStackPage.line1, songStackPage.covers[0], songStackPage.line2, "album")
213
mainView.hasRecent = true
214
recentModel.filterRecent()
215
} else if (songStackPage.line1 === i18n.tr("Playlist")) {
216
Library.addRecent(songStackPage.line2, "Playlist", songStackPage.covers[0], songStackPage.line2, "playlist")
217
mainView.hasRecent = true
218
recentModel.filterRecent()
229
bottomMargin: units.gu(2)
230
left: coversImage.right
231
leftMargin: units.gu(2)
233
strokeColor: UbuntuColors.green
241
text: i18n.tr("Queue all")
246
addQueueFromModel(albumtrackslist.model)
255
bottom: coversImage.bottom
256
left: coversImage.right
257
leftMargin: units.gu(2)
259
color: UbuntuColors.green
262
text: i18n.tr("Play all")
266
trackClicked(albumtrackslist.model, 0) // play track
268
if (isAlbum && songStackPage.line1 !== i18n.tr("Genre")) {
269
Library.addRecent(songStackPage.line2, songStackPage.line1, songStackPage.covers[0], songStackPage.line2, "album")
270
mainView.hasRecent = true
271
recentModel.filterRecent()
272
} else if (songStackPage.line1 === i18n.tr("Playlist")) {
273
Library.addRecent(songStackPage.line2, "Playlist", songStackPage.covers[0], songStackPage.line2, "playlist")
274
mainView.hasRecent = true
275
recentModel.filterRecent()
102
header: BlurredHeader {
103
rightColumn: Column {
108
strokeColor: UbuntuColors.green
115
text: i18n.tr("Shuffle")
120
shuffleModel(albumtrackslist.model) // play track
122
if (isAlbum && songStackPage.line1 !== i18n.tr("Genre")) {
123
Library.addRecent(songStackPage.line2, songStackPage.line1, songStackPage.covers[0], songStackPage.line2, "album")
124
mainView.hasRecent = true
125
recentModel.filterRecent()
126
} else if (songStackPage.line1 === i18n.tr("Playlist")) {
127
Library.addRecent(songStackPage.line2, "Playlist", songStackPage.covers[0], songStackPage.line2, "playlist")
128
mainView.hasRecent = true
129
recentModel.filterRecent()
137
strokeColor: UbuntuColors.green
144
text: i18n.tr("Queue all")
148
onClicked: addQueueFromModel(albumtrackslist.model)
153
color: UbuntuColors.green
155
text: i18n.tr("Play all")
160
trackClicked(albumtrackslist.model, 0) // play track
162
if (isAlbum && songStackPage.line1 !== i18n.tr("Genre")) {
163
Library.addRecent(songStackPage.line2, songStackPage.line1, songStackPage.covers[0], songStackPage.line2, "album")
164
mainView.hasRecent = true
165
recentModel.filterRecent()
166
} else if (songStackPage.line1 === i18n.tr("Playlist")) {
167
Library.addRecent(songStackPage.line2, "Playlist", songStackPage.covers[0], songStackPage.line2, "playlist")
168
mainView.hasRecent = true
169
recentModel.filterRecent()
175
coverSources: songStackPage.covers
176
height: songStackPage.line1 !== i18n.tr("Playlist") &&
177
songStackPage.line1 !== i18n.tr("Genre") ?
178
units.gu(33) : units.gu(30)
179
bottomColumn: Column {
186
color: styleMusic.common.music
187
elide: Text.ElideRight
191
wrapMode: Text.NoWrap
195
height: units.gu(0.75)
197
visible: albumArtist.visible
206
color: styleMusic.common.subtitle
207
elide: Text.ElideRight
210
objectName: "songsPageHeaderAlbumArtist"
212
visible: text !== i18n.tr("Playlist") &&
213
text !== i18n.tr("Genre")
214
wrapMode: Text.NoWrap
228
color: styleMusic.common.subtitle
229
elide: Text.ElideRight
232
text: isAlbum && line1 !== i18n.tr("Genre") ? year + " | " + i18n.tr("%1 song", "%1 songs", albumtrackslist.count).arg(albumtrackslist.count)
233
: i18n.tr("%1 song", "%1 songs", albumtrackslist.count).arg(albumtrackslist.count)
234
wrapMode: Text.NoWrap