mainwindow.qml Example File
demos/symbian/musicplayer/qml/mainwindow.qml
import QtQuick 1.1
import com.nokia.symbian 1.1
import MediaKeysObserver 1.0
import "Storage.js" as Storage
Window {
id: mainwindow
property Item musicPickerPage
Player {
id: player
onPlaylistLoaded: {
if (player.playlistModel.count == 0) {
pageStack.clear()
pageStack.push([controlPage, playlistPage, musicPickerPage])
}
}
Component.onCompleted: {
Storage.initialize()
Storage.getPlaylist(playlist)
playlistLoaded()
var res = Storage.getSetting("volume")
if (res != "Unknown")
volume = parseFloat(res)
res = Storage.getSetting("repeat")
if (res != "Unknown")
repeat = res == "true"
res = Storage.getSetting("shuffle")
if (res != "Unknown")
shuffle = res == "true"
res = Storage.getSetting("index")
if (res != "Unknown") {
index = parseInt(res)
refreshSong()
}
}
Component.onDestruction: {
Storage.setSetting("volume", volume)
Storage.setSetting("repeat", repeat)
Storage.setSetting("shuffle", shuffle)
Storage.setSetting("index", index)
Storage.setPlaylist(playlist)
}
MediaKeysObserver {
id: mediakeysobserver
property int key
onMediaKeyClicked: {
switch (key) {
case MediaKeysObserver.EVolIncKey:
audio.volume += 0.1
break
case MediaKeysObserver.EVolDecKey:
audio.volume -= 0.1
break
case MediaKeysObserver.EStopKey:
stop()
break
case MediaKeysObserver.EBackwardKey:
previous()
break
case MediaKeysObserver.EForwardKey:
next()
break
case MediaKeysObserver.EPlayPauseKey:
if (playing)
pause()
else
play()
break
}
}
onMediaKeyPressed: {
mediakeysobserver.key = key
timer.start()
}
onMediaKeyReleased: {
timer.stop()
}
}
Timer {
id: timer
interval: 300
repeat: true
onTriggered: {
switch (mediakeysobserver.key) {
case MediaKeysObserver.EVolIncKey:
player.volume += 0.1
break
case MediaKeysObserver.EVolDecKey:
player.volume -= 0.1
break
}
}
}
}
StatusBar {id: statusbar}
PageStack {
id: pageStack
anchors.top: statusbar.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: toolbar.top
toolBar: toolbar
ControlsPage {
id: controlPage
playlistVisible: !inPortrait
backgroundImage: inPortrait ? "qrc:///qml/images/bg_prt.png" : "qrc:///qml/images/bg_lsc.png"
}
PlaylistPage {
id: playlistPage
backgroundImage: inPortrait ? "qrc:///qml/images/bg_prt.png" : "qrc:///qml/images/bg_lsc.png"
}
}
ToolBar {
id: toolbar
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
}
onInPortraitChanged:{
if (musicPickerPage)
musicPickerPage.backgroundImage = inPortrait ? "qrc:///qml/images/bg_prt.png" : "qrc:///qml/images/bg_lsc.png"
}
Component.onCompleted: {
var musicPicker = documentGallery ? "GalleryPage.qml" : "FilePickerPage.qml"
var musicPickerComponent = Qt.createComponent(musicPicker);
musicPickerPage = musicPickerComponent.createObject(pageStack)
musicPickerPage.backgroundImage = inPortrait ? "qrc:///qml/images/bg_prt.png" : "qrc:///qml/images/bg_lsc.png"
pageStack.push(controlPage)
}
}