mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
Add a output parameter to know if a comic is found in the DB when we try to load it
This commit is contained in:
@ -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<ComicDB> 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<YACReaderComicReadStatus> ComicModel::setComicsRead(QList<QModelIndex> 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<YACReaderComicReadStatus> ComicModel::setComicsRead(QList<QModelIndex> 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<QModelIndex> 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<QModelIndex> 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);
|
||||
|
Reference in New Issue
Block a user