From e225f536fa5cdf10259aa1f2f5bf60c5fb9b1e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Thu, 18 Dec 2014 21:47:39 +0100 Subject: [PATCH] reading lists load all sublists comics --- YACReaderLibrary/db/comic_model.cpp | 32 +++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/YACReaderLibrary/db/comic_model.cpp b/YACReaderLibrary/db/comic_model.cpp index 745d1ff9..7ac9f10f 100644 --- a/YACReaderLibrary/db/comic_model.cpp +++ b/YACReaderLibrary/db/comic_model.cpp @@ -340,14 +340,30 @@ void ComicModel::setupReadingListModelData(unsigned long long parentReadingList, _databasePath = databasePath; QSqlDatabase db = DataBaseManagement::loadDatabase(databasePath); { - QSqlQuery selectQuery(db); - selectQuery.prepare("SELECT ci.number,ci.title,c.fileName,ci.numPages,c.id,c.parentId,c.path,ci.hash,ci.read,ci.isBis,ci.currentPage,ci.rating,ci.hasBeenOpened " - "FROM comic c INNER JOIN comic_info ci ON (c.comicInfoId = ci.id) " - "INNER JOIN comic_reading_list crl ON (c.id == crl.comic_id) " - "WHERE crl.reading_list_id = :parentReadingList"); - selectQuery.bindValue(":parentReadingList", parentReadingList); - selectQuery.exec(); - setupModelData(selectQuery); + QList ids; + ids << parentReadingList; + + QSqlQuery subfolders(db); + subfolders.prepare("SELECT id " + "FROM reading_list " + "WHERE parentId = :parentId"); + subfolders.bindValue(":parentId", parentReadingList); + subfolders.exec(); + while(subfolders.next()) + ids << subfolders.record().value(0).toULongLong(); + + foreach(qulonglong id, ids) + { + QSqlQuery selectQuery(db); + selectQuery.prepare("SELECT ci.number,ci.title,c.fileName,ci.numPages,c.id,c.parentId,c.path,ci.hash,ci.read,ci.isBis,ci.currentPage,ci.rating,ci.hasBeenOpened " + "FROM comic c INNER JOIN comic_info ci ON (c.comicInfoId = ci.id) " + "INNER JOIN comic_reading_list crl ON (c.id == crl.comic_id) " + "WHERE crl.reading_list_id = :parentReadingList"); + selectQuery.bindValue(":parentReadingList", id); + selectQuery.exec(); + setupModelData(selectQuery); + } + } db.close(); QSqlDatabase::removeDatabase(_databasePath);