summaryrefslogtreecommitdiff
path: root/src/downloadlistwidget.h
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-06-29 18:04:10 +0200
committerTannin <devnull@localhost>2013-06-29 18:04:10 +0200
commitfe37b48dffd8edcd6e30f4e304d3e27a731ac8ae (patch)
treee996c5d329d9abf77bcd12af4d05238fd6ebca1f /src/downloadlistwidget.h
parentf8c683f700a3fff30540ff343df2bfba15080e86 (diff)
- caching of downloadwidgets to fix performance problem, currently broken and disabled
- added new state for downloads "uninstalled" for mods that were at one point installed and then removed - user-configured server preference is now used - updated tutorial to account for removal of integrated browser - reverted to qt 4 - using performance optimised findfirstfile on win vista and up - bugfix: it was possible to disable all columns of the mod list - bugfix: hook.dll doesn't load on win xp
Diffstat (limited to 'src/downloadlistwidget.h')
-rw-r--r--src/downloadlistwidget.h177
1 files changed, 94 insertions, 83 deletions
diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h
index 6f9fa24b..5379356f 100644
--- a/src/downloadlistwidget.h
+++ b/src/downloadlistwidget.h
@@ -17,86 +17,97 @@ You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DOWNLOADLISTWIDGET_H
-#define DOWNLOADLISTWIDGET_H
-
-#include <QWidget>
-#include <QItemDelegate>
-#include <QLabel>
-#include <QProgressBar>
-#include <QTreeView>
-
-namespace Ui {
- class DownloadListWidget;
-}
-
-class DownloadListWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit DownloadListWidget(QWidget *parent = 0);
- ~DownloadListWidget();
-
-
-private:
- Ui::DownloadListWidget *ui;
-};
-
-class DownloadManager;
-
-class DownloadListWidgetDelegate : public QItemDelegate
-{
-
- Q_OBJECT
-
-public:
-
- DownloadListWidgetDelegate(DownloadManager *manager, QTreeView *view, QObject *parent = 0);
- ~DownloadListWidgetDelegate();
-
- virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
- virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
-
-signals:
-
- void installDownload(int index);
- void queryInfo(int index);
- void removeDownload(int index, bool deleteFile);
- void cancelDownload(int index);
- void pauseDownload(int index);
- void resumeDownload(int index);
-
-protected:
-
- bool editorEvent(QEvent *event, QAbstractItemModel *model,
- const QStyleOptionViewItem &option, const QModelIndex &index);
-
-private slots:
-
- void issueInstall();
- void issueDelete();
- void issueRemoveFromView();
- void issueCancel();
- void issuePause();
- void issueResume();
- void issueDeleteAll();
- void issueDeleteCompleted();
- void issueRemoveFromViewAll();
- void issueRemoveFromViewCompleted();
- void issueQueryInfo();
-
-private:
-
- DownloadListWidget *m_ItemWidget;
- DownloadManager *m_Manager;
-
- QLabel *m_NameLabel;
- QProgressBar *m_Progress;
- QLabel *m_InstallLabel;
- int m_ContextRow;
-
- QTreeView *m_View;
-};
-
-#endif // DOWNLOADLISTWIDGET_H
+#ifndef DOWNLOADLISTWIDGET_H
+#define DOWNLOADLISTWIDGET_H
+
+#include <QWidget>
+#include <QItemDelegate>
+#include <QLabel>
+#include <QProgressBar>
+#include <QTreeView>
+
+#include "downloadmanager.h"
+
+namespace Ui {
+ class DownloadListWidget;
+}
+
+class DownloadListWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit DownloadListWidget(QWidget *parent = 0);
+ ~DownloadListWidget();
+
+
+private:
+ Ui::DownloadListWidget *ui;
+};
+
+class DownloadManager;
+
+class DownloadListWidgetDelegate : public QItemDelegate
+{
+
+ Q_OBJECT
+
+public:
+
+ DownloadListWidgetDelegate(DownloadManager *manager, QTreeView *view, QObject *parent = 0);
+ ~DownloadListWidgetDelegate();
+
+ virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+
+signals:
+
+ void installDownload(int index);
+ void queryInfo(int index);
+ void removeDownload(int index, bool deleteFile);
+ void cancelDownload(int index);
+ void pauseDownload(int index);
+ void resumeDownload(int index);
+
+protected:
+
+ bool editorEvent(QEvent *event, QAbstractItemModel *model,
+ const QStyleOptionViewItem &option, const QModelIndex &index);
+
+private:
+
+ void drawCache(QPainter *painter, const QStyleOptionViewItem &option, const QPixmap &cache) const;
+
+private slots:
+
+ void issueInstall();
+ void issueDelete();
+ void issueRemoveFromView();
+ void issueCancel();
+ void issuePause();
+ void issueResume();
+ void issueDeleteAll();
+ void issueDeleteCompleted();
+ void issueRemoveFromViewAll();
+ void issueRemoveFromViewCompleted();
+ void issueQueryInfo();
+
+ void stateChanged(int row, DownloadManager::DownloadState);
+ void resetCache(int);
+
+private:
+
+ DownloadListWidget *m_ItemWidget;
+ DownloadManager *m_Manager;
+
+ QLabel *m_NameLabel;
+ QProgressBar *m_Progress;
+ QLabel *m_InstallLabel;
+ int m_ContextRow;
+
+ QTreeView *m_View;
+
+ mutable QMap<int, QPixmap> m_Cache;
+};
+
+#endif // DOWNLOADLISTWIDGET_H