diff options
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index c169b4d..a5d2298 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -9,6 +9,7 @@ #include <QSqlQuery> #include <QFile> #include <QSettings> +#include <QMutexLocker> #include "smtreeitem.h" #include "archivemodel.h" @@ -70,6 +71,10 @@ bool ArchiveModel::setData(const QModelIndex &idx, const QVariant &value, int ro if(role != Qt::EditRole){ return false; } + // any other column is invisible, hence... + if(idx.column() != Name){ + return false; + } SmTreeItem *item = itemAt(idx); int nodeType = item->data(Type).toInt(); QSqlQuery updateQuery(mDb); @@ -86,15 +91,14 @@ bool ArchiveModel::setData(const QModelIndex &idx, const QVariant &value, int ro updateQuery.bindValue(":value", value); updateQuery.bindValue(":id", id); if(updateQuery.exec()){ - if(nodeType == GenreNode || nodeType == ActorNode){ - item->setData(Name, value); - emit dataChanged(idx, idx); - return true; - }else if(nodeType == SeriesNode){ - item->setData(Name, value); + item->setData(Name, value); + emit dataChanged(idx, idx); + if(nodeType == SeriesNode){ emit needRefresh(); return true; } + writeCache(mOrder); + return true; }else{ emitDatabaseError(updateQuery.lastError()); } @@ -333,7 +337,18 @@ ArchiveCollector::ArchiveCollector(int numFields, QObject *parent) : QThread(par mDb.open(); } +SmTreeItem *ArchiveCollector::rootItem() { + QMutexLocker l(&mAccessMx); + return mRootItem; +} + +int ArchiveCollector::sortOrder() { + QMutexLocker l(&mAccessMx); + return mSortOrder; +} + void ArchiveCollector::populate(int order, SmTreeItem *rootItem){ + QMutexLocker l(&mAccessMx); mRootItem = rootItem; mSortOrder = order; } |