]> git.tdb.fi Git - xinema.git/blob - remote/source/browsedirectoryitem.cpp
Add a remote control program for Sailfish OS
[xinema.git] / remote / source / browsedirectoryitem.cpp
1 #include "browsedirectoryitem.h"
2 #include "xinemacontrol.h"
3 #include "xinemacontrolitem.h"
4
5 #include <QDebug>
6
7 BrowseDirectoryItem::BrowseDirectoryItem():
8         control(0)
9 { }
10
11 void BrowseDirectoryItem::set_control(XinemaControlItem *c)
12 {
13         if(control)
14                 disconnect(&control->get_control(), 0, this, 0);
15
16         control = c;
17         XinemaControl &xc = control->get_control();
18         connect(&xc, &XinemaControl::directory_started, this, &BrowseDirectoryItem::directory_started);
19         connect(&xc, &XinemaControl::file_added, this, &BrowseDirectoryItem::file_added);
20         connect(&xc, &XinemaControl::subdirectory_added, this, &BrowseDirectoryItem::subdirectory_added);
21
22         emit control_changed();
23 }
24
25 void BrowseDirectoryItem::set_directory(const QString &d)
26 {
27         if(d==directory)
28                 return;
29
30         directory = d;
31         if(control)
32                 control->get_control().list_directory(directory);
33         emit directory_changed();
34 }
35
36 void BrowseDirectoryItem::directory_started(const QString &dir)
37 {
38         if(dir!=directory)
39         {
40                 directory = dir;
41                 emit directory_changed();
42         }
43
44         subdirectories.clear();
45         files.clear();
46         emit subdirectories_changed();
47         emit files_changed();
48 }
49
50 void BrowseDirectoryItem::file_added(const QString &name)
51 {
52         files.push_back(name);
53         emit files_changed();
54 }
55
56 void BrowseDirectoryItem::subdirectory_added(const QString &name)
57 {
58         subdirectories.push_back(name);
59         emit subdirectories_changed();
60 }