X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=remote%2Fqml%2Fpages%2FBrowsePage.qml;h=d1b74e606b7f1b34983c78be4532b27692adeece;hb=9df8ccc2820a4ffa8e9f34810ad715d58aef3fe8;hp=59ebff330c512c048904aa14ccec1b38ab2e6a6c;hpb=1abfbdd94fa45883f6d742df00508715f79c9954;p=xinema.git diff --git a/remote/qml/pages/BrowsePage.qml b/remote/qml/pages/BrowsePage.qml index 59ebff3..d1b74e6 100644 --- a/remote/qml/pages/BrowsePage.qml +++ b/remote/qml/pages/BrowsePage.qml @@ -6,79 +6,81 @@ 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 { - id: column + MenuItem + { + text: "Set as default location" + } + + 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 - 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); - } - } + 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 @@ -87,20 +89,25 @@ Page control: xinemaControl } - Connections - { - target: xinemaControl - onConnectedChanged: - { - if(xinemaControl.connected) - browseDirectory.directory = "/"; - } - } - Component.onCompleted: { if(xinemaControl.connected) browseDirectory.directory = "/"; } + + StreamControl + { + id: streamControl + control: xinemaControl + onPlaybackStateChanged: + { + if(playbackState==StreamControl.Playing) + { + if(pageContainer.busy) + pageContainer.completeAnimation(); + pageStack.push("PlaybackPage.qml"); + } + } + } }