import QtQuick 2.0 import Sailfish.Silica 1.0 import org.nemomobile.configuration 1.0 import fi.mikkosoft.xinema 0.1 Page { id: page function navigate(dir) { var newDir = browseDirectory.directory; if(newDir!="/") newDir += "/"; newDir += dir; browseDirectory.directory = newDir; } function navigateUp() { var newDir = browseDirectory.directory; var slash = newDir.lastIndexOf("/"); if(slash>0) newDir = newDir.substring(0, slash); else newDir = "/"; browseDirectory.directory = newDir; } SilicaListView { anchors.fill: parent PullDownMenu { MenuItem { text: "Set as default location" onClicked: defaultLocation.value = browseDirectory.directory } MenuItem { visible: streamControl.title text: streamControl.title onClicked: pageStack.push("PlaybackPage.qml"); } } header: PageHeader { title: qsTr("Browse files") } model: browseDirectory.model delegate: DirectoryEntry { width: parent.width icon: { if(type==DirectoryModel.ParentDir) return "image://theme/icon-m-back"; else if(type==DirectoryModel.SubDir) return "image://theme/icon-m-folder"; else return ""; } text: name onClicked: { if(type==DirectoryModel.File) xinemaControl.play_file(browseDirectory.directory+"/"+name); else if(type==DirectoryModel.ParentDir) page.navigateUp(); else if(type==DirectoryModel.SubDir) page.navigate(name); } } VerticalScrollDecorator { } } BrowseDirectory { id: browseDirectory control: xinemaControl } Component.onCompleted: { if(xinemaControl.connected) browseDirectory.directory = defaultLocation.value; } StreamControl { id: streamControl control: xinemaControl onPlaybackStateChanged: { if(playbackState==StreamControl.Playing) { if(pageContainer.busy) pageContainer.completeAnimation(); pageStack.push("PlaybackPage.qml"); } } } ConfigurationValue { id: defaultLocation key: "/fi/mikkosoft/xinema-remote/defaultLocation" defaultValue: "/" } }