diff options
author | Arno <am@disconnect.de> | 2013-06-26 10:09:24 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-06-26 10:09:24 +0200 |
commit | 9e228a178d0e0b9382f5ce554083f905e65aac25 (patch) | |
tree | f1aa368086b0f90dc284d3964f95b3b0e260c3d1 /archivemodel.h | |
parent | eb697d7a3b7fc8b8af052b6f025610dd85eb176b (diff) | |
download | SheMov-9e228a178d0e0b9382f5ce554083f905e65aac25.tar.gz SheMov-9e228a178d0e0b9382f5ce554083f905e65aac25.tar.bz2 SheMov-9e228a178d0e0b9382f5ce554083f905e65aac25.zip |
Fix behavior of view when refreshing
Cancel the collectors if they're still running. Otherwise we may get
outdated results when refreshing the view after an update or delete.
Diffstat (limited to 'archivemodel.h')
-rw-r--r-- | archivemodel.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/archivemodel.h b/archivemodel.h index be69346..3848d94 100644 --- a/archivemodel.h +++ b/archivemodel.h @@ -61,7 +61,6 @@ class ArchiveModel : public SmTreeModel { const QString cacheFile(int o) const; QSqlDatabase mDb; QHash<QString, int> mAvailableOrders; - QMutex mDoneMx; QList<ArchiveCollector*> mCollectors; int mOrder; }; @@ -72,6 +71,7 @@ class ArchiveCollector : public QThread { explicit ArchiveCollector(int numFields, int order, QObject *parent = 0); SmTreeItem *rootItem(); int sortOrder() const { return mSortOrder; } + void cancel(); signals: void message(const QString message); @@ -86,11 +86,14 @@ class ArchiveCollector : public QThread { void fetchChildren(SmTreeItem *parent); void fetchSeries(const QVariant &id, SmTreeItem *parent); void fetchParts(const QVariant &id, SmTreeItem *parent); + void checkCancelled(); QSqlDatabase mDb; SmTreeItem *mRootItem; QMutex mAccessMx; + QMutex mCancelledMx; int mNumFields; int mSortOrder; + bool mCancelled; }; #endif // ARCHIVEMODEL_H |