diff options
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index 5369ff7..578ff5c 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -62,6 +62,19 @@ ArchiveModel::~ArchiveModel(){ } } +Qt::ItemFlags ArchiveModel::flags(const QModelIndex &index) const{ + SmTreeItem *item = itemAt(index); + Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled; + if(item->data(Type).toInt() == ArchiveModel::SeriesPartNode){ + retval |= Qt::ItemIsDropEnabled; + } + return retval; +} + +Qt::DropActions ArchiveModel::supportedDragActions() const{ + return Qt::MoveAction; +} + const QStringList ArchiveModel::availableOrders() const { QStringList retval = mAvailableOrders.keys(); qSort(retval); @@ -896,7 +909,7 @@ Qt::ItemFlags ArchiveFilesModel::flags(const QModelIndex &index) const{ return Qt::ItemIsEnabled; } } - return SmTreeModel::flags(index); + return (Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled); } int ArchiveFilesModel::nextDvd() const{ @@ -982,6 +995,14 @@ QStringList ArchiveFilesModel::filesForSeriespart(int seriesPartId) const{ return retval; } +void ArchiveFilesModel::updateSeriesPartForFile(const QString &md5sum, int newSeriesPart){ + QSqlQuery q(mDb); + q.prepare("UPDATE files SET iseriespart_id = :id WHERE cmd5sum = :md5"); + q.bindValue(":id", newSeriesPart); + q.bindValue(":md5", md5sum); + q.exec(); +} + void ArchiveFilesModel::refresh(){ populate(mSeriesPartIds); } |