--- /dev/null
+#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