New method for getting the comics being read, plus added the read state to comics loaded for being served.

This commit is contained in:
Luis Ángel San Martín 2016-08-23 22:22:46 +02:00
parent a6204bcc65
commit 983a035c31
2 changed files with 43 additions and 2 deletions

View File

@ -169,7 +169,7 @@ QList<ComicDB> DBHelper::getLabelComics(qulonglong libraryId, qulonglong labelId
{
QSqlQuery selectQuery(db);
selectQuery.prepare("SELECT c.id,c.fileName,ci.title,ci.currentPage,ci.numPages,ci.hash "
selectQuery.prepare("SELECT c.id,c.fileName,ci.title,ci.currentPage,ci.numPages,ci.hash,ci.read "
"FROM comic c INNER JOIN comic_info ci ON (c.comicInfoId = ci.id) "
"INNER JOIN comic_label cl ON (c.id == cl.comic_id) "
"WHERE cl.label_id = :parentLabelId "
@ -193,6 +193,7 @@ QList<ComicDB> DBHelper::getLabelComics(qulonglong libraryId, qulonglong labelId
comic.info.currentPage = record.value(3).toInt();
comic.info.numPages = record.value(4).toInt();
comic.info.hash = record.value(5).toString();
comic.info.read = record.value(6).toBool();
list.append(comic);
}
@ -214,7 +215,7 @@ QList<ComicDB> DBHelper::getFavorites(qulonglong libraryId)
{
QSqlQuery selectQuery(db);
selectQuery.prepare("SELECT c.id,c.fileName,ci.title,ci.currentPage,ci.numPages,ci.hash "
selectQuery.prepare("SELECT c.id,c.fileName,ci.title,ci.currentPage,ci.numPages,ci.hash,ci.read "
"FROM comic c INNER JOIN comic_info ci ON (c.comicInfoId = ci.id) "
"INNER JOIN comic_default_reading_list cdrl ON (c.id == cdrl.comic_id) "
"WHERE cdrl.default_reading_list_id = :parentDefaultListId "
@ -235,6 +236,45 @@ QList<ComicDB> DBHelper::getFavorites(qulonglong libraryId)
comic.info.currentPage = record.value(3).toInt();
comic.info.numPages = record.value(4).toInt();
comic.info.hash = record.value(5).toString();
comic.info.read = record.value(6).toBool();
list.append(comic);
}
db.close();
}
return list;
}
QList<ComicDB> DBHelper::getReading(qulonglong libraryId)
{
QString libraryPath = DBHelper::getLibraries().getPath(libraryId);
QSqlDatabase db = DataBaseManagement::loadDatabase(libraryPath+"/.yacreaderlibrary");
QList<ComicDB> list;
{
QSqlQuery selectQuery(db);
selectQuery.prepare("SELECT c.id,c.parentId,c.fileName,ci.title,ci.currentPage,ci.numPages,ci.hash,ci.read "
"FROM comic c INNER JOIN comic_info ci ON (c.comicInfoId = ci.id) "
"WHERE ci.hasBeenOpened = 1 AND ci.read = 0 AND ci.currentPage != ci.numPages AND ci.currentPage != 1");
selectQuery.exec();
while (selectQuery.next())
{
ComicDB comic;
QSqlRecord record = selectQuery.record();
comic.id = record.value(0).toULongLong();
comic.parentId = record.value(1).toULongLong();
comic.name = record.value(2).toString();
comic.info.title = record.value(3).toString();
comic.info.currentPage = record.value(4).toInt();
comic.info.numPages = record.value(5).toInt();
comic.info.hash = record.value(6).toString();
comic.info.read = record.value(7).toBool();
list.append(comic);
}

View File

@ -33,6 +33,7 @@ public:
static QString getLibraryName(int id);
static QList<ComicDB> getLabelComics(qulonglong libraryId, qulonglong labelId);
static QList<ComicDB> getFavorites(qulonglong libraryId);
static QList<ComicDB> getReading(qulonglong libraryId);
//objects management
//deletes