diff options
| author | Arno <am@disconnect.de> | 2014-12-10 22:10:50 +0100 |
|---|---|---|
| committer | Arno <am@disconnect.de> | 2014-12-10 22:10:50 +0100 |
| commit | 2c022561f692a813b44da39d6ffdcb373aa4c7ba (patch) | |
| tree | a500c3623572e1230b12b2302b00bf558502dadd /smdirwatcher.cpp | |
| parent | 343d3db5f5ad571527a7ca70457cbb6ccb1bbb71 (diff) | |
| download | SheMov-2c022561f692a813b44da39d6ffdcb373aa4c7ba.tar.gz SheMov-2c022561f692a813b44da39d6ffdcb373aa4c7ba.tar.bz2 SheMov-2c022561f692a813b44da39d6ffdcb373aa4c7ba.zip | |
Various Bugfixes and cleanups
* remove debug statements from SmDirWatcher
* Don't crash on parentDir when current Dir is already deleted
* Fix PicFilesModel MappingQuery. It needlessly referenced the table
pics in FROM causing an expensive full table scan!
* Fix findRecursive in PicFilesModel: Stupid typo!
* Give SmDirWatcher a separate DB-Connection. One Thread, one Connection
* Remove several includes
This should have been 6 commits, but that's how debugging works :(
Diffstat (limited to 'smdirwatcher.cpp')
| -rw-r--r-- | smdirwatcher.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/smdirwatcher.cpp b/smdirwatcher.cpp index 24deee1..8c0570e 100644 --- a/smdirwatcher.cpp +++ b/smdirwatcher.cpp @@ -25,6 +25,8 @@ SmDirWatcher::SmDirWatcher(int numFields, QObject *parent) : QThread(parent), mF mBufLen = 1024 * (sizeof(struct inotify_event) + 16); mINdata = new char[mBufLen]; mFd = inotify_init(); + mDb = QSqlDatabase::cloneDatabase(QSqlDatabase::database("treedb"), "dirwatcherdb"); + mDb.open(); } void SmDirWatcher::setDir(const QString &dir){ @@ -95,8 +97,7 @@ QList<QVariant> SmDirWatcher::generalData(const QString &path){ int SmDirWatcher::presenceData(QString &md5){ int retval = SmDirModel::InNone; - QSqlDatabase db = QSqlDatabase::database("treedb"); - QSqlQuery present1Q(db); + QSqlQuery present1Q(mDb); present1Q.prepare("SELECT COUNT(*) FROM files WHERE cmd5sum = :md5"); present1Q.bindValue(":md5", md5); present1Q.exec(); @@ -106,7 +107,7 @@ int SmDirWatcher::presenceData(QString &md5){ retval = SmDirModel::InFiles; } } - QSqlQuery present2Q(db); + QSqlQuery present2Q(mDb); present2Q.prepare("SELECT COUNT(*) from files_origin WHERE cmd5sum = :md5"); present2Q.bindValue(":md5", md5); while(present2Q.next()){ @@ -115,7 +116,7 @@ int SmDirWatcher::presenceData(QString &md5){ retval = SmDirModel::InOrigin; } } - QSqlQuery present3Q(db); + QSqlQuery present3Q(mDb); present3Q.prepare("SELECT COUNT(*) FROM pics WHERE cmd5sum = :md5"); present3Q.bindValue(":md5", md5); while(present3Q.next()){ @@ -127,8 +128,6 @@ int SmDirWatcher::presenceData(QString &md5){ return retval; } -#include <QDebug> - void SmDirWatcher::run(){ struct pollfd pfd[1]; pfd[0].fd = mFd; @@ -153,16 +152,12 @@ void SmDirWatcher::run(){ QString name = QString("%1/%2").arg(mCurrent).arg(e->name); QList<QVariant> d = generalData(name); if(mask & IN_CREATE || mask & IN_MOVED_TO){ - qDebug() << "Adding" << name; emit newData(d, Added); }else if(mask & IN_DELETE || mask & IN_MOVED_FROM){ - qDebug() << "DEL|MOVE" << name; emit newData(d, Deleted); }else if(mask & IN_MODIFY){ - qDebug() << "MOD" << name; emit newData(d, Modified); }else if(mask & IN_CLOSE_WRITE){ - qDebug() << "CLOSEW" << name; emit newData(d, CloseWrite); } i += sizeof(inotify_event) + e->len; |
