From 450997762e4501357f0bef8ff30a4265b1b3e0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Tue, 22 May 2018 18:45:12 +0200 Subject: [PATCH] Current comic view only makes sense for folders and reading lists. --- YACReaderLibrary/db/comic_model.h | 90 ++++++++++++++------------- YACReaderLibrary/grid_comics_view.cpp | 8 ++- 2 files changed, 53 insertions(+), 45 deletions(-) diff --git a/YACReaderLibrary/db/comic_model.h b/YACReaderLibrary/db/comic_model.h index e8296e9f..7e33f51a 100644 --- a/YACReaderLibrary/db/comic_model.h +++ b/YACReaderLibrary/db/comic_model.h @@ -21,6 +21,50 @@ class ComicModel : public QAbstractItemModel { Q_OBJECT +public: + enum Columns { + Number = 0, + Title = 1, + FileName = 2, + NumPages = 3, + Id = 4, + Parent_Id = 5, + Path = 6, + Hash = 7, + ReadColumn = 8, + IsBis = 9, + CurrentPage = 10, + Rating = 11, + HasBeenOpened = 12 + }; + + enum Roles { + NumberRole = Qt::UserRole + 1, + TitleRole, + FileNameRole, + NumPagesRole, + IdRole, + Parent_IdRole, + PathRole, + HashRole, + ReadColumnRole, + IsBisRole, + CurrentPageRole, + RatingRole, + HasBeenOpenedRole, + CoverPathRole + + }; + + enum Mode { + Folder, + Favorites, + Reading, + Label, + ReadingList + }; + + public: ComicModel(QObject *parent = 0); ComicModel( QSqlQuery &sqlquery, QObject *parent = 0); @@ -86,52 +130,10 @@ public: bool isFavorite(const QModelIndex &index); + ComicModel::Mode getMode() {return mode;} + QHash roleNames() const; - enum Columns { - Number = 0, - Title = 1, - FileName = 2, - NumPages = 3, - Id = 4, - Parent_Id = 5, - Path = 6, - Hash = 7, - ReadColumn = 8, - IsBis = 9, - CurrentPage = 10, - Rating = 11, - HasBeenOpened = 12 -}; - - enum Roles { - NumberRole = Qt::UserRole + 1, - TitleRole, - FileNameRole, - NumPagesRole, - IdRole, - Parent_IdRole, - PathRole, - HashRole, - ReadColumnRole, - IsBisRole, - CurrentPageRole, - RatingRole, - HasBeenOpenedRole, - CoverPathRole - - }; - - enum Mode { - Folder, - Favorites, - Reading, - Label, - ReadingList - }; - - - public slots: void remove(int row); void startTransaction(); diff --git a/YACReaderLibrary/grid_comics_view.cpp b/YACReaderLibrary/grid_comics_view.cpp index 246740f2..c55db2eb 100644 --- a/YACReaderLibrary/grid_comics_view.cpp +++ b/YACReaderLibrary/grid_comics_view.cpp @@ -455,7 +455,13 @@ void GridComicsView::setCurrentComicIfNeeded() QQmlContext *ctxt = view->rootContext(); - if (found && filterEnabled == false) { + ComicModel::Mode mode = model->getMode(); + + bool showCurrentComic = found && + filterEnabled == false && + (mode == ComicModel::Mode::Folder || mode == ComicModel::Mode::ReadingList); + + if (showCurrentComic) { ctxt->setContextProperty("currentComic", ¤tComic); ctxt->setContextProperty("currentComicInfo", &(currentComic.info)); ctxt->setContextProperty("showCurrentComic", true);