diff --git a/YACReaderLibrary/db/comic_model.cpp b/YACReaderLibrary/db/comic_model.cpp index a67b4ad3..099fa0f7 100644 --- a/YACReaderLibrary/db/comic_model.cpp +++ b/YACReaderLibrary/db/comic_model.cpp @@ -680,7 +680,8 @@ ComicDB ComicModel::getComic(const QModelIndex &mi) QString connectionName = ""; { QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); - c = DBHelper::loadComic(_data.at(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + c = DBHelper::loadComic(_data.at(mi.row())->data(ComicModel::Id).toULongLong(), db, found); connectionName = db.connectionName(); } QSqlDatabase::removeDatabase(connectionName); @@ -694,7 +695,8 @@ ComicDB ComicModel::_getComic(const QModelIndex &mi) QString connectionName = ""; { QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); - c = DBHelper::loadComic(_data.at(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + c = DBHelper::loadComic(_data.at(mi.row())->data(ComicModel::Id).toULongLong(), db, found); connectionName = db.connectionName(); } QSqlDatabase::removeDatabase(connectionName); @@ -734,7 +736,8 @@ QList ComicModel::getAllComics() int numComics = _data.count(); for (int i = 0; i < numComics; i++) { - comics.append(DBHelper::loadComic(_data.value(i)->data(ComicModel::Id).toULongLong(), db)); + bool found; + comics.append(DBHelper::loadComic(_data.value(i)->data(ComicModel::Id).toULongLong(), db, found)); } db.commit(); @@ -763,7 +766,8 @@ QVector ComicModel::setComicsRead(QList l foreach (QModelIndex mi, list) { if (read == YACReader::Read) { _data.value(mi.row())->setData(ComicModel::ReadColumn, QVariant(true)); - ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); c.info.read = true; DBHelper::update(&(c.info), db); } @@ -771,7 +775,8 @@ QVector ComicModel::setComicsRead(QList l _data.value(mi.row())->setData(ComicModel::ReadColumn, QVariant(false)); _data.value(mi.row())->setData(ComicModel::CurrentPage, QVariant(1)); _data.value(mi.row())->setData(ComicModel::HasBeenOpened, QVariant(false)); - ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); c.info.read = false; c.info.currentPage = 1; c.info.hasBeenOpened = false; @@ -796,7 +801,8 @@ void ComicModel::setComicsManga(QList list, bool isManga) QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); db.transaction(); foreach (QModelIndex mi, list) { - ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); c.info.manga = isManga; DBHelper::update(&(c.info), db); } @@ -816,7 +822,8 @@ qint64 ComicModel::asignNumbers(QList list, int startingNumber) idFirst = _data.value(list[0].row())->data(ComicModel::Id).toULongLong(); int i = 0; foreach (QModelIndex mi, list) { - ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db); + bool found; + ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); c.info.number = startingNumber + i; c.info.edited = true; DBHelper::update(&(c.info), db); @@ -872,7 +879,8 @@ void ComicModel::finishTransaction() void ComicModel::removeInTransaction(int row) { auto dbTransaction = QSqlDatabase::database(_databaseConnection); - ComicDB c = DBHelper::loadComic(_data.at(row)->data(ComicModel::Id).toULongLong(), dbTransaction); + bool found; + ComicDB c = DBHelper::loadComic(_data.at(row)->data(ComicModel::Id).toULongLong(), dbTransaction, found); DBHelper::removeFromDB(&c, dbTransaction); beginRemoveRows(QModelIndex(), row, row); diff --git a/YACReaderLibrary/db_helper.cpp b/YACReaderLibrary/db_helper.cpp index d7f77c26..54d8e1f9 100644 --- a/YACReaderLibrary/db_helper.cpp +++ b/YACReaderLibrary/db_helper.cpp @@ -143,7 +143,8 @@ ComicDB DBHelper::getComicInfo(qulonglong libraryId, qulonglong id) { QSqlDatabase db = DataBaseManagement::loadDatabase(libraryPath + "/.yacreaderlibrary"); - comic = DBHelper::loadComic(id, db); + bool found; + comic = DBHelper::loadComic(id, db, found); connectionName = db.connectionName(); } QSqlDatabase::removeDatabase(connectionName); @@ -807,7 +808,8 @@ void DBHelper::updateProgress(qulonglong libraryId, const ComicInfo &comicInfo) { QSqlDatabase db = DataBaseManagement::loadDatabase(libraryPath + "/.yacreaderlibrary"); - ComicDB comic = DBHelper::loadComic(comicInfo.id, db); + bool found; + ComicDB comic = DBHelper::loadComic(comicInfo.id, db, found); comic.info.currentPage = comicInfo.currentPage; comic.info.hasBeenOpened = comicInfo.currentPage > 0 || comic.info.hasBeenOpened; comic.info.read = comic.info.read || comic.info.currentPage == comic.info.numPages; @@ -827,7 +829,8 @@ void DBHelper::setComicAsReading(qulonglong libraryId, const ComicInfo &comicInf { QSqlDatabase db = DataBaseManagement::loadDatabase(libraryPath + "/.yacreaderlibrary"); - ComicDB comic = DBHelper::loadComic(comicInfo.id, db); + bool found; + ComicDB comic = DBHelper::loadComic(comicInfo.id, db, found); comic.info.hasBeenOpened = true; comic.info.read = comic.info.read || comic.info.currentPage == comic.info.numPages; @@ -866,7 +869,8 @@ void DBHelper::updateFromRemoteClient(qulonglong libraryId, const ComicInfo &com { QSqlDatabase db = DataBaseManagement::loadDatabase(libraryPath + "/.yacreaderlibrary"); - ComicDB comic = DBHelper::loadComic(comicInfo.id, db); + bool found; + ComicDB comic = DBHelper::loadComic(comicInfo.id, db, found); if (comic.info.hash == comicInfo.hash) { if (comicInfo.currentPage > 0) { @@ -956,7 +960,8 @@ QMap> DBHelper::updateFromRemoteClient(const QMap