From fe37b48dffd8edcd6e30f4e304d3e27a731ac8ae Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 29 Jun 2013 18:04:10 +0200 Subject: - 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 --- src/downloadlistwidget.h | 177 +++++++++++++++++++++++++---------------------- 1 file changed, 94 insertions(+), 83 deletions(-) (limited to 'src/downloadlistwidget.h') 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 . */ -#ifndef DOWNLOADLISTWIDGET_H -#define DOWNLOADLISTWIDGET_H - -#include -#include -#include -#include -#include - -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 +#include +#include +#include +#include + +#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 m_Cache; +}; + +#endif // DOWNLOADLISTWIDGET_H -- cgit v1.3.1