TODO
| 1004 | } |
| 1005 | // TODO |
| 1006 | QVector<YACReaderComicReadStatus> ComicModel::setComicsRead(QList<QModelIndex> list, YACReaderComicReadStatus read) |
| 1007 | { |
| 1008 | QString connectionName = ""; |
| 1009 | const auto &comicIndexes = list; |
| 1010 | { |
| 1011 | QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); |
| 1012 | db.transaction(); |
| 1013 | for (const auto &mi : comicIndexes) { |
| 1014 | if (read == YACReader::Read) { |
| 1015 | _data.value(mi.row())->setData(ComicModel::ReadColumn, QVariant(true)); |
| 1016 | bool found; |
| 1017 | ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); |
| 1018 | c.info.read = true; |
| 1019 | DBHelper::update(&(c.info), db); |
| 1020 | } |
| 1021 | if (read == YACReader::Unread) { |
| 1022 | _data.value(mi.row())->setData(ComicModel::ReadColumn, QVariant(false)); |
| 1023 | _data.value(mi.row())->setData(ComicModel::CurrentPage, QVariant(1)); |
| 1024 | _data.value(mi.row())->setData(ComicModel::HasBeenOpened, QVariant(false)); |
| 1025 | bool found; |
| 1026 | ComicDB c = DBHelper::loadComic(_data.value(mi.row())->data(ComicModel::Id).toULongLong(), db, found); |
| 1027 | c.info.read = false; |
| 1028 | c.info.currentPage = 1; |
| 1029 | c.info.hasBeenOpened = false; |
| 1030 | c.info.lastTimeOpened.setValue(QVariant()); |
| 1031 | DBHelper::update(&(c.info), db); |
| 1032 | } |
| 1033 | } |
| 1034 | db.commit(); |
| 1035 | connectionName = db.connectionName(); |
| 1036 | } |
| 1037 | QSqlDatabase::removeDatabase(connectionName); |
| 1038 | |
| 1039 | emit dataChanged(index(list.first().row(), ComicModel::ReadColumn), index(list.last().row(), ComicModel::HasBeenOpened), QVector<int>() << ReadColumnRole << CurrentPageRole << HasBeenOpenedRole); |
| 1040 | |
| 1041 | return getReadList(); |
| 1042 | } |
| 1043 | |
| 1044 | void ComicModel::setComicsType(QList<QModelIndex> list, FileType type) |
| 1045 | { |