]> git.tdb.fi Git - xinema.git/blobdiff - remote/source/browsedirectoryitem.h
Add a remote control program for Sailfish OS
[xinema.git] / remote / source / browsedirectoryitem.h
diff --git a/remote/source/browsedirectoryitem.h b/remote/source/browsedirectoryitem.h
new file mode 100644 (file)
index 0000000..84f8a6c
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef BROWSEDIRECTORYITEM_H_
+#define BROWSEDIRECTORYITEM_H_
+
+#include <QQuickItem>
+
+class XinemaControlItem;
+
+class BrowseDirectoryItem: public QQuickItem
+{
+       Q_OBJECT
+
+       Q_PROPERTY(XinemaControlItem *control READ get_control WRITE set_control NOTIFY control_changed)
+       Q_PROPERTY(QString directory READ get_directory WRITE set_directory NOTIFY directory_changed)
+       Q_PROPERTY(QStringList subdirectories READ get_subdirectories NOTIFY subdirectories_changed)
+       Q_PROPERTY(QStringList files READ get_files NOTIFY files_changed)
+
+private:
+       XinemaControlItem *control;
+       QString directory;
+       QStringList subdirectories;
+       QStringList files;
+
+public:
+       BrowseDirectoryItem();
+
+       void set_control(XinemaControlItem *);
+       XinemaControlItem *get_control() const { return control; }
+
+       void set_directory(const QString &);
+       const QString &get_directory() const { return directory; }
+
+       const QStringList &get_subdirectories() const { return subdirectories; }
+       const QStringList &get_files() const { return files; }
+
+signals:
+       void control_changed();
+       void directory_changed();
+       void subdirectories_changed();
+       void files_changed();
+
+private slots:
+       void directory_started(const QString &);
+       void file_added(const QString &);
+       void subdirectory_added(const QString &);
+};
+
+#endif