diff options
| author | Tannin <devnull@localhost> | 2013-06-29 18:04:10 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2013-06-29 18:04:10 +0200 |
| commit | fe37b48dffd8edcd6e30f4e304d3e27a731ac8ae (patch) | |
| tree | e996c5d329d9abf77bcd12af4d05238fd6ebca1f /src/downloadlistwidget.h | |
| parent | f8c683f700a3fff30540ff343df2bfba15080e86 (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.h | 177 |
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 |
