diff options
author | Jan Dalheimer <jan@dalheimer.de> | 2013-12-30 23:39:10 +0100 |
---|---|---|
committer | Jan Dalheimer <jan@dalheimer.de> | 2013-12-30 23:39:10 +0100 |
commit | 8cfd0881ac3fcbb45fd42dedcb1caf0be38eacaf (patch) | |
tree | 15c704510fc4f3c783e609dd476add7d033fcf22 /main.h | |
parent | e6be883d14a4147ffd58a1c8066bb70879d775fb (diff) | |
download | MultiMC-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.h | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -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 |