diff options
Diffstat (limited to 'smdirwatcher.cpp')
-rw-r--r-- | smdirwatcher.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/smdirwatcher.cpp b/smdirwatcher.cpp index 371e7cf..64ab330 100644 --- a/smdirwatcher.cpp +++ b/smdirwatcher.cpp @@ -70,17 +70,19 @@ void SmDirWatcher::run(){ quint32 mask = e->mask; QString name = QString("%1/%2").arg(mCurrent).arg(e->name); DWEvent curEvent = None; + QPair<QString, DWEvent> c; if(mask & IN_CREATE || mask & IN_MOVED_TO){ curEvent = Added; - } - if(mask & IN_DELETE || mask & IN_MOVED_FROM){ + }else if(mask & IN_DELETE || mask & IN_MOVED_FROM){ curEvent = Deleted; - } - if(mask & IN_CLOSE_WRITE || e->mask & IN_MODIFY){ + }else if(mask & IN_CLOSE_WRITE || e->mask & IN_MODIFY){ curEvent = Modified; + }else{ + goto out; } - QPair<QString, DWEvent> c = qMakePair(name, curEvent); + c = qMakePair(name, curEvent); mDataQueue->enqueue(c); + out: mSemUsed->release(); i += sizeof(inotify_event) + e->len; } |