PlaylistPage.qml Example File
demos/symbian/musicplayer/qml/PlaylistPage.qml
import QtQuick 1.1
import com.nokia.symbian 1.1
Page {
property int numOfSelectedItems: 0
property alias removeMode: playlist.removeMode
property alias backgroundImage: background.source
function clearSelection(remove) {
var currentSongRemoved = false
for (var i = 0; i < player.playlistModel.count; i++) {
if (player.playlistModel.get(i).selected) {
if (remove) {
if (i == player.index)
currentSongRemoved = true
player.remove(i)
i--
} else {
player.playlistModel.setProperty(i, "selected", false)
}
}
}
if (currentSongRemoved)
player.refreshSong()
numOfSelectedItems = 0
}
tools: playlistTools
Image {
id: background
anchors.fill: parent
z: -1
}
Component {
id: heading
PageHeading {
width: parent.width
text: qsTr("Playlist")
}
}
Playlist {
id: playlist
anchors.fill: parent
header: heading
}
ToolBarLayout {
id: playlistTools
visible: !removeMode
ToolButton {
flat: true
iconSource:"qrc:///qml/images/tb_back.svg"
onClicked: pageStack.pop()
}
ToolButton {
flat: true
iconSource: "qrc:///qml/images/tb_plus.svg"
onClicked: pageStack.push(musicPickerPage)
}
ToolButton {
flat: true
iconSource: "qrc:///qml/images/tb_minus.svg"
enabled: player.playlistModel.count
onClicked: {
removeMode = true
toolbar.setTools(removeTools, "replace")
}
}
}
ToolBarLayout {
id: removeTools
visible: removeMode
ToolButton {
text: qsTr("REMOVE")
enabled: numOfSelectedItems > 0
onClicked: {
clearSelection(true)
removeMode = false
toolbar.setTools(playlistTools, "replace")
}
}
ToolButton {
text: qsTr("CANCEL")
onClicked: {
clearSelection(false)
removeMode = false
toolbar.setTools(playlistTools, "replace")
}
}
ToolButton {
flat: true
iconSource: "qrc:///qml/images/tb_menu.svg"
onClicked: viewMenu.open()
}
}
Menu {
id: viewMenu
content:
Column {
width: viewMenu.width
MenuItem {
text: qsTr("Select All")
onClicked: {
viewMenu.close()
for (var i = 0; i < player.playlistModel.count; i++)
player.playlistModel.setProperty(i, "selected", true)
numOfSelectedItems = player.playlistModel.count
}
}
MenuItem {
text: qsTr("Unselect All")
onClicked: {
viewMenu.close()
for (var i = 0; i < player.playlistModel.count; i++)
player.playlistModel.setProperty(i, "selected", false)
numOfSelectedItems = 0
}
}
}
}
}