summaryrefslogtreecommitdiff
path: root/rockwork/screenshotmodel.h
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2016-02-11 23:55:16 +0100
committerAndrew Branson <andrew.branson@cern.ch>2016-02-11 23:55:16 +0100
commit29aaea2d80a9eb1715b6cddfac2d2aacf76358bd (patch)
tree012795b6bec16c72f38d33cff46324c9a0225868 /rockwork/screenshotmodel.h
launchpad ~mzanetti/rockwork/trunk r87
Diffstat (limited to 'rockwork/screenshotmodel.h')
-rw-r--r--rockwork/screenshotmodel.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/rockwork/screenshotmodel.h b/rockwork/screenshotmodel.h
new file mode 100644
index 0000000..bc855f1
--- /dev/null
+++ b/rockwork/screenshotmodel.h
@@ -0,0 +1,38 @@
+#ifndef SCREENSHOTMODEL_H
+#define SCREENSHOTMODEL_H
+
+#include <QAbstractListModel>
+
+class ScreenshotModel : public QAbstractListModel
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QString latestScreenshot READ latestScreenshot NOTIFY latestScreenshotChanged)
+
+public:
+ enum Role {
+ RoleFileName
+ };
+
+ ScreenshotModel(QObject *parent = nullptr);
+ QString path() const;
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+ QVariant data(const QModelIndex &index, int role) const override;
+ QHash<int, QByteArray> roleNames() const override;
+
+ Q_INVOKABLE QString get(int index) const;
+ QString latestScreenshot() const;
+
+ void clear();
+ void insert(const QString &filename);
+ void remove(const QString &filename);
+
+signals:
+ void latestScreenshotChanged();
+
+private:
+ QStringList m_files;
+};
+
+#endif // SCREENSHOTMODEL_H