Mercurial > minori
comparison include/gui/pages/anime_list.h @ 64:fe719c109dbc
*: update
1. add media tracking ability, and it displays info on the `now playing` page
2. the `now playing` page now actually shows something
3. renamed every page class to be more accurate to what it is
4. ...
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Sun, 01 Oct 2023 23:15:43 -0400 |
parents | 3d2decf093bb |
children | 6f7385bd334c |
comparison
equal
deleted
inserted
replaced
63:3d2decf093bb | 64:fe719c109dbc |
---|---|
6 #include <QStyledItemDelegate> | 6 #include <QStyledItemDelegate> |
7 #include <QTreeView> | 7 #include <QTreeView> |
8 #include <QWidget> | 8 #include <QWidget> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 class AnimeListWidgetDelegate : public QStyledItemDelegate { | 11 class AnimeListPageDelegate : public QStyledItemDelegate { |
12 Q_OBJECT | 12 Q_OBJECT |
13 | 13 |
14 public: | 14 public: |
15 explicit AnimeListWidgetDelegate(QObject* parent); | 15 explicit AnimeListPageDelegate(QObject* parent); |
16 | 16 |
17 QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const override; | 17 QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const override; |
18 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; | 18 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; |
19 }; | 19 }; |
20 | 20 |
21 class AnimeListWidgetSortFilter : public QSortFilterProxyModel { | 21 class AnimeListPageSortFilter : public QSortFilterProxyModel { |
22 Q_OBJECT | 22 Q_OBJECT |
23 | 23 |
24 public: | 24 public: |
25 AnimeListWidgetSortFilter(QObject* parent = nullptr); | 25 AnimeListPageSortFilter(QObject* parent = nullptr); |
26 | 26 |
27 protected: | 27 protected: |
28 bool lessThan(const QModelIndex& l, const QModelIndex& r) const override; | 28 bool lessThan(const QModelIndex& l, const QModelIndex& r) const override; |
29 }; | 29 }; |
30 | 30 |
31 class AnimeListWidgetModel : public QAbstractListModel { | 31 class AnimeListPageModel : public QAbstractListModel { |
32 Q_OBJECT | 32 Q_OBJECT |
33 | 33 |
34 public: | 34 public: |
35 enum columns { | 35 enum columns { |
36 AL_TITLE, | 36 AL_TITLE, |
46 AL_NOTES, | 46 AL_NOTES, |
47 | 47 |
48 NB_COLUMNS | 48 NB_COLUMNS |
49 }; | 49 }; |
50 | 50 |
51 AnimeListWidgetModel(QWidget* parent, Anime::ListStatus _status); | 51 AnimeListPageModel(QWidget* parent, Anime::ListStatus _status); |
52 ~AnimeListWidgetModel() override = default; | 52 ~AnimeListPageModel() override = default; |
53 int rowCount(const QModelIndex& parent = QModelIndex()) const override; | 53 int rowCount(const QModelIndex& parent = QModelIndex()) const override; |
54 int columnCount(const QModelIndex& parent = QModelIndex()) const override; | 54 int columnCount(const QModelIndex& parent = QModelIndex()) const override; |
55 QVariant data(const QModelIndex& index, int role) const override; | 55 QVariant data(const QModelIndex& index, int role) const override; |
56 QVariant headerData(const int section, const Qt::Orientation orientation, const int role) const override; | 56 QVariant headerData(const int section, const Qt::Orientation orientation, const int role) const override; |
57 void UpdateAnime(int id); | 57 void UpdateAnime(int id); |
63 std::vector<Anime::Anime> list; | 63 std::vector<Anime::Anime> list; |
64 }; | 64 }; |
65 | 65 |
66 /* todo: rename these to "page" or something more | 66 /* todo: rename these to "page" or something more |
67 sensible than "widget" */ | 67 sensible than "widget" */ |
68 class AnimeListWidget : public QWidget { | 68 class AnimeListPage : public QWidget { |
69 Q_OBJECT | 69 Q_OBJECT |
70 | 70 |
71 public: | 71 public: |
72 AnimeListWidget(QWidget* parent); | 72 AnimeListPage(QWidget* parent); |
73 void Refresh(); | 73 void Refresh(); |
74 void Reset(); | 74 void Reset(); |
75 | 75 |
76 protected: | 76 protected: |
77 void paintEvent(QPaintEvent*) override; | 77 void paintEvent(QPaintEvent*) override; |
92 | 92 |
93 private: | 93 private: |
94 QTabBar* tab_bar; | 94 QTabBar* tab_bar; |
95 QTreeView* tree_view; | 95 QTreeView* tree_view; |
96 QRect panelRect; | 96 QRect panelRect; |
97 AnimeListWidgetSortFilter* sort_models[5]; | 97 AnimeListPageSortFilter* sort_models[5]; |
98 }; | 98 }; |
99 #endif // __gui__pages__anime_list_h | 99 #endif // __gui__pages__anime_list_h |