added support for deleting folders

This commit is contained in:
Luis Ángel San Martín
2014-10-22 12:57:32 +02:00
parent e6620a46ed
commit a8ef8d07f1
14 changed files with 208 additions and 15 deletions

View File

@ -68,6 +68,11 @@ void TreeItem::setData(int column, const QVariant & value)
itemData[column] = value;
}
void TreeItem::removeChild(int childIndex)
{
childItems.removeAt(childIndex);
}
void TreeItem::clearChildren()
{
qDeleteAll(childItems);

View File

@ -65,6 +65,7 @@ public:
QList<QString> comicNames;
TreeItem * originalItem;
void setData(int column, const QVariant &value);
void removeChild(int childIndex);
void clearChildren();
QList<TreeItem*> children();
private:

View File

@ -621,3 +621,22 @@ void TreeModel::fetchMoreFromDB(const QModelIndex &parent)
db.close();
QSqlDatabase::removeDatabase(_databasePath);
}
void TreeModel::deleteFolder(const QModelIndex &mi)
{
beginRemoveRows(mi.parent(),mi.row(),mi.row());
TreeItem * item = static_cast<TreeItem*>(mi.internalPointer());
TreeItem * parent = item->parent();
parent->removeChild(mi.row());
Folder f;
f.setId(item->id);
QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath);
DBHelper::removeFromDB(&f,db);
QSqlDatabase::removeDatabase(_databasePath);
endRemoveRows();
}

View File

@ -96,6 +96,9 @@ public:
Completed = 3
};//id INTEGER PRIMARY KEY, parentId INTEGER NOT NULL, name TEXT NOT NULL, path TEXT NOT NULL
public slots:
void deleteFolder(const QModelIndex & mi);
private:
void setupModelData( QSqlQuery &sqlquery, TreeItem *parent);
void updateFolderModelData( QSqlQuery &sqlquery, TreeItem *parent);