summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r--filestreemodel.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index e59bd99..5fa926e 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -45,6 +45,8 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mFileTypeQuery = new QSqlQuery(mDb);
mFileTypeQuery->prepare("SELECT sifiletype FROM files WHERE cmd5sum = :md5");
mFileSizeLessThanQueryTemplate = QString("SELECT cmd5sum FROM files WHERE bisize <= :size AND sifiletype = 1 AND idvd = -1 ORDER BY bisize DESC LIMIT %1");
+ mUpdateSeriesPartQuery = new QSqlQuery(mDb);
+ mUpdateSeriesPartQuery->prepare("UPDATE files SET iseriespart_id = :partid WHERE ifiles_id = :fileid");
//file types
mFileTypes.insert(1, tr("Movie"));
@@ -79,6 +81,7 @@ FilesTreeModel::~FilesTreeModel(){
}
void FilesTreeModel::setIds(const QList<int> &seriesPartIds){
+ mCurrentIds = seriesPartIds;
QStringList ids;
foreach(int s, seriesPartIds){
ids << QString::number(s);
@@ -175,7 +178,7 @@ QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{
if(index.column() == FileName){
if(item->data(Favorite).toBool() == true){
return mFavoriteColor;
- }else if(item->data(DvdNo) == -1){
+ }else if(item->data(DvdNo) == -1){
return mLocalColor;
}else if(item->data(DvdNo).toInt() > 0){
return mArchivedColor;
@@ -492,6 +495,25 @@ bool FilesTreeModel::deleteFiles(const QModelIndexList &files){
return true;
}
+bool FilesTreeModel::updateSeries(int newSeries, QList<QPersistentModelIndex> files){
+ if(files.isEmpty()){
+ return false;
+ }
+ mDb.transaction();
+ foreach(QPersistentModelIndex idx, files){
+ mUpdateSeriesPartQuery->bindValue(":partid", newSeries);
+ mUpdateSeriesPartQuery->bindValue(":fileid", idx.data(FilesTreeModel::FilesIdRole));
+ if(!mUpdateSeriesPartQuery->exec()){
+ mDb.rollback();
+ return false;
+ }
+ }
+ mDb.commit();
+ refresh();
+ return true;
+}
+
+
void FilesTreeModel::readCache(){
QString settingsDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
QString cacheFile = QString("%1/%2").arg(settingsDir).arg("sizeduration.cache");
@@ -545,6 +567,10 @@ void FilesTreeModel::readSettings(){
mFavoriteColor = favorite.value<QColor>();
}
+void FilesTreeModel::refresh(){
+ setIds(mCurrentIds);
+}
+
void FilesTreeModel::populate(QSqlQuery &filesQuery){
SmTreeItem *root = new SmTreeItem(16);
SmTreeItem *files = new SmTreeItem(16, root);