summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r--filestreemodel.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index f47f8c3..5bb0741 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -33,6 +33,8 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mUpdateQualityQuery->prepare("UPDATE files SET siquality = :quality WHERE ifiles_id = :id");
mUpdatePartNoQuery = new QSqlQuery(mDb);
mUpdatePartNoQuery->prepare("UPDATE files SET sifileno = :partno WHERE ifiles_id = :id");
+ mUpdateFileTypeQuery = new QSqlQuery(mDb);
+ mUpdateFileTypeQuery->prepare("UPDATE files SET sifiletype = :filetype WHERE ifiles_id = :id");
mInsertFileQuery = new QSqlQuery(mDb);
mInsertFileQuery->prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality) VALUES(:seriespartid, :fname, :md5, :size, :dvd, :type, :fileno, :quality)");
mFilesQuery = new QSqlQuery(mDb);
@@ -60,6 +62,10 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
//misc
mSeriesModel = static_cast<SeriesTreeModel*>(SmGlobals::instance()->model("SeriesModel"));
readCache();
+ mEditableColumns.insert(tr("Set part no."), PartNo);
+ mEditableColumns.insert(tr("Set quality"), Quality);
+ mEditableColumns.insert(tr("Set file type"), FileType);
+ mEditableColumns.insert(tr("Set dvd no."), DvdNo);
}
FilesTreeModel::~FilesTreeModel(){
@@ -277,6 +283,25 @@ bool FilesTreeModel::setData(const QModelIndex &index, const QVariant &value, in
return true;
}
}
+ if(index.column() == FileType){
+ mUpdateFileTypeQuery->bindValue(":id", index.data(FilesIdRole));
+ mUpdateFileTypeQuery->bindValue(":filetype", value);
+ if(mUpdateFileTypeQuery->exec()){
+ int oldFileType = index.data(FileTypeRole).toInt();
+ item->setData(FileType, value);
+ QModelIndex newParent = QModelIndex();
+ if((oldFileType == 1) && (value.toInt() != 1)){
+ newParent = find("Covers");
+ }
+ if((oldFileType > 1) && (value.toInt() == 1)){
+ newParent = find("Movies");
+ }
+ if(newParent.isValid()){
+ reparent(index, newParent);
+ }
+ return true;
+ }
+ }
}
return false;
}
@@ -289,8 +314,8 @@ Qt::ItemFlags FilesTreeModel::flags(const QModelIndex &index) const{
return Qt::ItemIsEnabled;
}
Qt::ItemFlags retval = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
- if(index.column() == DvdNo || index.column() == Quality || index.column() == PartNo){
- return retval | Qt::ItemIsEditable;
+ if(mEditableColumns.values().contains(index.column())){
+ retval |= Qt::ItemIsEditable;
}
return retval;
}