From 9e228a178d0e0b9382f5ce554083f905e65aac25 Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 26 Jun 2013 10:09:24 +0200 Subject: 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. --- archivemodel.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'archivemodel.h') 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 mAvailableOrders; - QMutex mDoneMx; QList 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 -- cgit v1.2.3-70-g09d2