X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=remote%2Fqml%2Fpages%2FBrowsePage.qml;h=74758a69c74e8e0ca42bb47087aa09c42fbf843a;hb=6962c02f4f1b83a1367883fcdee6c54e245283fd;hp=f85388098409e48e9d104827ebef3cbd173fc223;hpb=6fd809bbdbfe628ef1e63b68665f374751838baf;p=xinema.git diff --git a/remote/qml/pages/BrowsePage.qml b/remote/qml/pages/BrowsePage.qml index f853880..74758a6 100644 --- a/remote/qml/pages/BrowsePage.qml +++ b/remote/qml/pages/BrowsePage.qml @@ -1,88 +1,90 @@ import QtQuick 2.0 import Sailfish.Silica 1.0 +import org.nemomobile.configuration 1.0 import fi.mikkosoft.xinema 0.1 +import "../components" Page { id: page - SilicaFlickable + 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 - contentHeight: column.height - Column + 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 { - id: column + title: qsTr("Browse files") + } + + model: browseDirectory.model + delegate: DirectoryEntry + { width: parent.width - spacing: Theme.paddingLarge - PageHeader + icon: { - title: qsTr("Browse files") + if(type==DirectoryModel.ParentDir) + return "image://theme/icon-m-back"; + else if(type==DirectoryModel.SubDir) + return "image://theme/icon-m-folder"; + else + return ""; } - // This really should be SilicaListView, but I can't figure out an - // easy way to turn the string lists into a suitable ListModel - Column + text: name + + onClicked: { - width: parent.width - spacing: Theme.paddingSmall - - DirectoryEntry - { - visible: browseDirectory.directory!="/" - icon: "image://theme/icon-m-back" - text: ".." - onPressed: - { - var newDir = browseDirectory.directory; - var slash = newDir.lastIndexOf("/"); - if(slash>0) - newDir = newDir.substring(0, slash); - else - newDir = "/"; - browseDirectory.directory = newDir; - } - } - - Repeater - { - model: browseDirectory.subdirectories - - DirectoryEntry - { - icon: "image://theme/icon-m-folder" - text: modelData - - onPressed: - { - var newDir = browseDirectory.directory; - if(newDir!="/") - newDir += "/"; - newDir += modelData; - browseDirectory.directory = newDir; - } - } - } - - Repeater - { - model: browseDirectory.files - DirectoryEntry - { - text: modelData - - onPressed: - { - xinemaControl.play_file(browseDirectory.directory+"/"+modelData); - pageStack.replace("PlaybackPage.qml"); - } - } - } + 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 @@ -91,20 +93,42 @@ Page control: xinemaControl } + Component.onCompleted: + { + if(xinemaControl.connected) + browseDirectory.directory = defaultLocation.value; + } + Connections { target: xinemaControl onConnectedChanged: { - if(xinemaControl.connected) - browseDirectory.directory = "/"; + if(!xinemaControl.connected) + pageStack.replace("ConnectPage.qml"); } } - Component.onCompleted: + StreamControl { - if(xinemaControl.connected) - browseDirectory.directory = "/"; + id: streamControl + control: xinemaControl + onPlaybackStateChanged: + { + if(playbackState==StreamControl.Playing && pageContainer.currentPage==page) + { + if(pageContainer.busy) + pageContainer.completeAnimation(); + pageStack.push("PlaybackPage.qml"); + } + } + } + + ConfigurationValue + { + id: defaultLocation + key: "/fi/mikkosoft/xinema-remote/defaultLocation" + defaultValue: "/" } }