summaryrefslogtreecommitdiffstats
path: root/main.h
diff options
context:
space:
mode:
authorJan Dalheimer <jan@dalheimer.de>2013-12-30 23:39:10 +0100
committerJan Dalheimer <jan@dalheimer.de>2013-12-30 23:39:10 +0100
commit8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf (patch)
tree15c704510fc4f3c783e609dd476add7d033fcf22 /main.h
parente6be883d14a4147ffd58a1c8066bb70879d775fb (diff)
downloadMultiMC-8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf.tar
MultiMC-8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf.tar.gz
MultiMC-8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf.tar.lz
MultiMC-8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf.tar.xz
MultiMC-8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf.zip
Progress indicators
Diffstat (limited to 'main.h')
-rw-r--r--main.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/main.h b/main.h
new file mode 100644
index 00000000..f4c7a3f8
--- /dev/null
+++ b/main.h
@@ -0,0 +1,53 @@
+#ifndef MAIN_H
+#define MAIN_H
+
+#include <QObject>
+#include <QTimer>
+#include <QList>
+#include <QStandardItem>
+#include <QDebug>
+
+#include "CategorizedView.h"
+
+class Progresser : public QObject
+{
+ Q_OBJECT
+public:
+ explicit Progresser(QObject *parent = 0) : QObject(parent)
+ {
+ QTimer *timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
+ timer->start(50);
+ }
+
+ QStandardItem *addTrackedIndex(QStandardItem *item)
+ {
+ item->setData(1000, CategorizedViewRoles::ProgressMaximumRole);
+ m_items.append(item);
+ return item;
+ }
+
+public slots:
+ void timeout()
+ {
+ foreach (QStandardItem *item, m_items)
+ {
+ int value = item->data(CategorizedViewRoles::ProgressValueRole).toInt();
+ value += qrand() % 3;
+ if (value >= item->data(CategorizedViewRoles::ProgressMaximumRole).toInt())
+ {
+ item->setData(item->data(CategorizedViewRoles::ProgressMaximumRole).toInt(),
+ CategorizedViewRoles::ProgressValueRole);
+ }
+ else
+ {
+ item->setData(value, CategorizedViewRoles::ProgressValueRole);
+ }
+ }
+ }
+
+private:
+ QList<QStandardItem *> m_items;
+};
+
+#endif // MAIN_H