]> git.tdb.fi Git - xinema.git/blob - remote/qml/pages/BrowsePage.qml
cfd518b02412acdc3c82e59894538a7fb871824b
[xinema.git] / remote / qml / pages / BrowsePage.qml
1 import QtQuick 2.0
2 import Sailfish.Silica 1.0
3 import fi.mikkosoft.xinema 0.1
4
5 Page
6 {
7         id: page
8
9         function navigate(dir)
10         {
11                 var newDir = browseDirectory.directory;
12                 if(newDir!="/")
13                         newDir += "/";
14                 newDir += dir;
15                 browseDirectory.directory = newDir;
16         }
17
18         function navigateUp()
19         {
20                 var newDir = browseDirectory.directory;
21                 var slash = newDir.lastIndexOf("/");
22                 if(slash>0)
23                         newDir = newDir.substring(0, slash);
24                 else
25                         newDir = "/";
26                 browseDirectory.directory = newDir;
27         }
28
29         SilicaListView
30         {
31                 anchors.fill: parent
32
33                 header: PageHeader
34                 {
35                         title: qsTr("Browse files")
36                 }
37
38                 model: browseDirectory.model
39
40                 delegate: DirectoryEntry
41                 {
42                         width: parent.width
43
44                         icon:
45                         {
46                                 if(type==DirectoryModel.ParentDir)
47                                         return "image://theme/icon-m-back";
48                                 else if(type==DirectoryModel.SubDir)
49                                         return "image://theme/icon-m-folder";
50                                 else
51                                         return "";
52                         }
53
54                         text: name
55
56                         onClicked:
57                         {
58                                 if(type==DirectoryModel.File)
59                                         xinemaControl.play_file(browseDirectory.directory+"/"+name);
60                                 else if(type==DirectoryModel.ParentDir)
61                                         page.navigateUp();
62                                 else if(type==DirectoryModel.SubDir)
63                                         page.navigate(name);
64                         }
65                 }
66
67                 VerticalScrollDecorator { }
68         }
69
70         BrowseDirectory
71         {
72                 id: browseDirectory
73                 control: xinemaControl
74         }
75
76         Connections
77         {
78                 target: xinemaControl
79                 onConnectedChanged:
80                 {
81                         if(xinemaControl.connected)
82                                 browseDirectory.directory = "/";
83                 }
84         }
85
86         Component.onCompleted:
87         {
88                 if(xinemaControl.connected)
89                         browseDirectory.directory = "/";
90         }
91 }
92