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 |
