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/downloadlistwidgetcompact.h | 183 +++++++++++++++++++++------------------- 1 file changed, 96 insertions(+), 87 deletions(-) (limited to 'src/downloadlistwidgetcompact.h') diff --git a/src/downloadlistwidgetcompact.h b/src/downloadlistwidgetcompact.h index 65b110b6..3ac36e8d 100644 --- a/src/downloadlistwidgetcompact.h +++ b/src/downloadlistwidgetcompact.h @@ -17,90 +17,99 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#ifndef DOWNLOADLISTWIDGETCOMPACT_H -#define DOWNLOADLISTWIDGETCOMPACT_H - -#include -#include -#include -#include -#include - - -namespace Ui { -class DownloadListWidgetCompact; -} - -class DownloadListWidgetCompact : public QWidget -{ - Q_OBJECT - -public: - explicit DownloadListWidgetCompact(QWidget *parent = 0); - ~DownloadListWidgetCompact(); - -private: - Ui::DownloadListWidgetCompact *ui; - int m_ContextRow; -}; - -class DownloadManager; - -class DownloadListWidgetCompactDelegate : public QItemDelegate -{ - - Q_OBJECT - -public: - - DownloadListWidgetCompactDelegate(DownloadManager *manager, QTreeView *view, QObject *parent = 0); - ~DownloadListWidgetCompactDelegate(); - - 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: - - DownloadListWidgetCompact *m_ItemWidget; - DownloadManager *m_Manager; - - QLabel *m_NameLabel; - QProgressBar *m_Progress; - QLabel *m_DoneLabel; - - QModelIndex m_ContextIndex; - - QTreeView *m_View; - -}; - -#endif // DOWNLOADLISTWIDGETCOMPACT_H - +#ifndef DOWNLOADLISTWIDGETCOMPACT_H +#define DOWNLOADLISTWIDGETCOMPACT_H + +#include +#include +#include +#include +#include +#include "downloadmanager.h" + + +namespace Ui { +class DownloadListWidgetCompact; +} + +class DownloadListWidgetCompact : public QWidget +{ + Q_OBJECT + +public: + explicit DownloadListWidgetCompact(QWidget *parent = 0); + ~DownloadListWidgetCompact(); + +private: + Ui::DownloadListWidgetCompact *ui; + int m_ContextRow; +}; + +class DownloadManager; + +class DownloadListWidgetCompactDelegate : public QItemDelegate +{ + + Q_OBJECT + +public: + + DownloadListWidgetCompactDelegate(DownloadManager *manager, QTreeView *view, QObject *parent = 0); + ~DownloadListWidgetCompactDelegate(); + + 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: + + DownloadListWidgetCompact *m_ItemWidget; + DownloadManager *m_Manager; + + QLabel *m_NameLabel; + QProgressBar *m_Progress; + QLabel *m_DoneLabel; + + QModelIndex m_ContextIndex; + + QTreeView *m_View; + + mutable QMap m_Cache; + +}; + +#endif // DOWNLOADLISTWIDGETCOMPACT_H + -- cgit v1.3.1