summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r--archivemodel.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp
index 4b0c720..68b7e4f 100644
--- a/archivemodel.cpp
+++ b/archivemodel.cpp
@@ -1096,7 +1096,16 @@ void ArchiveCollector::setCancelled(bool cancel){
}
void ArchiveCollector::run(){
- mAccessMx.lock();
+ QMutexLocker l(&mAccessMx);
+ // check if db is still connected
+ // if not, skip this run and leave everything as is
+ QSqlQuery dummy(mDb);
+ dummy.prepare("SELECT 1");
+ if(!dummy.exec()){
+ mDb.close();
+ mDb.open();
+ return;
+ }
delete mRootItem;
mRootItem = new SmTreeItem(mNumFields);
switch (mSortOrder){
@@ -1118,7 +1127,6 @@ void ArchiveCollector::run(){
default:
return;
}
- mAccessMx.unlock();
}
void ArchiveCollector::populateBySeriesName() {