mirror of
https://github.com/YACReader/yacreader
synced 2025-12-07 01:42:51 -05:00
Make "delete" icon work properly in the "Reading" list
Only the "Favorites" special list was handled.
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
#include "comic_db.h"
|
||||
#include "db_helper.h"
|
||||
#include "query_parser.h"
|
||||
#include "reading_list_model.h"
|
||||
|
||||
//ci.number,ci.title,c.fileName,ci.numPages,c.id,c.parentId,c.path,ci.hash,ci.read
|
||||
#include "QsLog.h"
|
||||
@ -986,6 +987,36 @@ void ComicModel::deleteComicsFromFavorites(const QList<QModelIndex> &comicsList)
|
||||
deleteComicsFromModel(comicsList);
|
||||
}
|
||||
|
||||
void ComicModel::deleteComicsFromReading(const QList<QModelIndex> &comicsList)
|
||||
{
|
||||
QList<ComicDB> comics = getComics(comicsList);
|
||||
QString connectionName = "";
|
||||
{
|
||||
QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath);
|
||||
|
||||
DBHelper::deleteComicsFromReading(comics, db);
|
||||
connectionName = db.connectionName();
|
||||
}
|
||||
QSqlDatabase::removeDatabase(connectionName);
|
||||
|
||||
if (mode == Reading)
|
||||
deleteComicsFromModel(comicsList);
|
||||
}
|
||||
|
||||
void ComicModel::deleteComicsFromSpecialList(const QList<QModelIndex> &comicsList, qulonglong specialListId)
|
||||
{
|
||||
auto type = (ReadingListModel::TypeSpecialList)specialListId;
|
||||
|
||||
switch (type) {
|
||||
case ReadingListModel::TypeSpecialList::Reading:
|
||||
deleteComicsFromReading(comicsList);
|
||||
break;
|
||||
case ReadingListModel::TypeSpecialList::Favorites:
|
||||
deleteComicsFromFavorites(comicsList);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ComicModel::deleteComicsFromLabel(const QList<QModelIndex> &comicsList, qulonglong labelId)
|
||||
{
|
||||
QList<ComicDB> comics = getComics(comicsList);
|
||||
|
||||
@ -119,6 +119,8 @@ public:
|
||||
void addComicsToReadingList(const QList<QModelIndex> &comicsList, qulonglong readingListId);
|
||||
|
||||
void deleteComicsFromFavorites(const QList<QModelIndex> &comicsList);
|
||||
void deleteComicsFromReading(const QList<QModelIndex> &comicsList);
|
||||
void deleteComicsFromSpecialList(const QList<QModelIndex> &comicsList, qulonglong specialListId);
|
||||
void deleteComicsFromLabel(const QList<QModelIndex> &comicsList, qulonglong labelId);
|
||||
void deleteComicsFromReadingList(const QList<QModelIndex> &comicsList, qulonglong readingListId);
|
||||
|
||||
|
||||
@ -44,6 +44,15 @@ QIcon SpecialListItem::getIcon() const
|
||||
return QIcon();
|
||||
}
|
||||
|
||||
qulonglong SpecialListItem::getId() const
|
||||
{
|
||||
if (itemData.count() > Id) {
|
||||
return itemData.at(Id).toInt();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ReadingListModel::TypeSpecialList SpecialListItem::getType() const
|
||||
{
|
||||
if (itemData.count() > Id) {
|
||||
|
||||
@ -27,6 +27,7 @@ class SpecialListItem : public ListItem
|
||||
public:
|
||||
SpecialListItem(const QList<QVariant> &data);
|
||||
QIcon getIcon() const override;
|
||||
qulonglong getId() const override;
|
||||
ReadingListModel::TypeSpecialList getType() const;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user