add reading sublists is done

This commit is contained in:
Luis Ángel San Martín
2014-12-08 10:42:30 +01:00
parent d372a24ea3
commit 8c01ca0762
3 changed files with 38 additions and 1 deletions

View File

@ -325,7 +325,32 @@ void ReadingListModel::addReadingList(const QString &name)
void ReadingListModel::addReadingListAt(const QString &name, const QModelIndex &mi)
{
//TODO
QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath);
beginInsertRows(mi, 0, 0); //TODO calculate the right coordinates before inserting
qulonglong id = DBHelper::insertReadingSubList(name,mi.data(IDRole).toULongLong(),db);
ReadingListItem * newItem;
ReadingListItem * readingListParent = static_cast<ReadingListItem*>(mi.internalPointer());
readingListParent->appendChild(newItem = new ReadingListItem(QList<QVariant>()
<< name
<< id
<< false
<< true
<< mi.data(IDRole).toULongLong()));
items.insert(id, newItem);
int pos = readingListParent->children().indexOf(newItem);
pos += specialLists.count()+1+labels.count()+labels.count()>0?1:0;
endInsertRows();
QSqlDatabase::removeDatabase(_databasePath);
}
bool ReadingListModel::isEditable(const QModelIndex &mi)

View File

@ -472,6 +472,17 @@ qulonglong DBHelper::insertReadingList(const QString &name, QSqlDatabase &db)
return query.lastInsertId().toULongLong();
}
qulonglong DBHelper::insertReadingSubList(const QString &name, qulonglong parentId, QSqlDatabase &db)
{
QSqlQuery query(db);
query.prepare("INSERT INTO reading_list (name, parentId) "
"VALUES (:name, :parentId)");
query.bindValue(":name", name);
query.bindValue(":parentId", parentId);
query.exec();
return query.lastInsertId().toULongLong();
}
void DBHelper::insertComicsInFavorites(const QList<ComicDB> &comicsList, QSqlDatabase &db)
{
db.transaction();

View File

@ -45,6 +45,7 @@ public:
static qulonglong insert(ComicDB * comic, QSqlDatabase & db);
static qulonglong insertLabel(const QString & name, YACReader::LabelColors color , QSqlDatabase & db);
static qulonglong insertReadingList(const QString & name, QSqlDatabase & db);
static qulonglong insertReadingSubList(const QString & name, qulonglong parentId, QSqlDatabase & db);
static void insertComicsInFavorites(const QList<ComicDB> & comicsList, QSqlDatabase & db);
static void insertComicsInLabel(const QList<ComicDB> & comicsList, qulonglong labelId, QSqlDatabase & db);
static void insertComicsInReadingList(const QList<ComicDB> & comicsList, qulonglong readingListId, QSqlDatabase & db);