diff options
| author | Al <gabriel.cortesi@outlook.com> | 2019-01-01 22:10:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-01 22:10:56 +0100 |
| commit | 523cb203ce5da9d70cafe9d00e3e48d62c066755 (patch) | |
| tree | 2d255de69f5c09b4ede269f16adec2bfcc7821d5 /src/downloadlistwidget.h | |
| parent | 619a0887d8ce109f384690317adbd253e3ad6ae6 (diff) | |
| parent | 6fa416fc52f21ddb3eebcd1568baf8394e89ef6b (diff) | |
Merge pull request #606 from przester/download-tab
Revamp the downloads tab, fix some UI bugs
Diffstat (limited to 'src/downloadlistwidget.h')
| -rw-r--r-- | src/downloadlistwidget.h | 69 |
1 files changed, 22 insertions, 47 deletions
diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index fe7f3b22..0002e2b4 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -21,49 +21,48 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #define DOWNLOADLISTWIDGET_H
#include "downloadmanager.h"
+#include "downloadlist.h"
+#include "downloadlistsortproxy.h"
#include <QWidget>
#include <QItemDelegate>
#include <QLabel>
#include <QProgressBar>
#include <QTreeView>
+#include <QStyledItemDelegate>
+
namespace Ui {
- class DownloadListWidget;
+ class DownloadListWidget;
}
-class DownloadListWidget : public QWidget
+class DownloadProgressDelegate : public QStyledItemDelegate
{
- Q_OBJECT
+ Q_OBJECT
public:
- explicit DownloadListWidget(QWidget *parent = 0);
- ~DownloadListWidget();
+ DownloadProgressDelegate(DownloadManager *manager, DownloadListSortProxy *sortProxy, QWidget *parent = 0) : QStyledItemDelegate(parent), m_Manager(manager), m_SortProxy(sortProxy) {}
+ void paint(QPainter *painter, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const override;
private:
- Ui::DownloadListWidget *ui;
+ DownloadManager *m_Manager;
+ DownloadListSortProxy *m_SortProxy;
};
-class DownloadManager;
-
-class DownloadListWidgetDelegate : public QItemDelegate
+class DownloadListWidget : public QTreeView
{
-
Q_OBJECT
public:
+ explicit DownloadListWidget(QWidget *parent = 0);
+ ~DownloadListWidget();
- DownloadListWidgetDelegate(DownloadManager *manager, bool metaDisplay, 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;
-
- void paintPendingDownload(int downloadIndex) const;
- void paintRegularDownload(int downloadIndex) const;
+ void setManager(DownloadManager *manager);
+ void setSourceModel(DownloadList *sourceModel);
+ void setMetaDisplay(bool metaDisplay);
signals:
-
void installDownload(int index);
void queryInfo(int index);
void removeDownload(int index, bool deleteFile);
@@ -75,19 +74,10 @@ signals: void openFile(int index);
void openInDownloadsFolder(int index);
-protected:
-
- QString sizeFormat(quint64 size) const;
- 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 onDoubleClick(const QModelIndex &index);
+ void onCustomContextMenu(const QPoint &point);
+ void onHeaderCustomContextMenu(const QPoint &point);
void issueInstall();
void issueDelete();
void issueRemoveFromView();
@@ -107,25 +97,10 @@ private slots: void issueRemoveFromViewUninstalled();
void issueQueryInfo();
- void stateChanged(int row, DownloadManager::DownloadState);
- void resetCache(int);
-
private:
-
- DownloadListWidget *m_ItemWidget;
DownloadManager *m_Manager;
-
- bool m_MetaDisplay;
-
- QLabel *m_NameLabel;
- QLabel *m_SizeLabel;
- QProgressBar *m_Progress;
- QLabel *m_InstallLabel;
+ DownloadList *m_SourceModel = 0;
int m_ContextRow;
-
- QTreeView *m_View;
-
- mutable QMap<int, QPixmap> m_Cache;
};
#endif // DOWNLOADLISTWIDGET_H
|
