/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef SMDIRWATCHER_H #define SMDIRWATCHER_H #include #include #include #include class SmTreeItem; class SmDirWatcher : public QThread { Q_OBJECT public: enum DWEvent { None, Added, Deleted, Modified, Populate, CloseWrite }; explicit SmDirWatcher(int numFields, QObject *parent = 0); signals: void dwEvent(const QString& file, int event); void setMd5Sum(QString path, QString md5); void setFfmpeg(QString path, QVariantMap data); void setPicSize(QString path, QVariant size); void needRefresh(); void population(SmTreeItem*); void newData(const QList,int); public slots: void run(); void stop(); void setDir(const QString &dir, bool progress = true); void setExpensiveOps(bool expensiveOps); private: QList generalData(const QString &path); int presenceData(QString &md5); int mFd; int mDescr; QString mCurrent; char *mINdata; int mBufLen; int mNumFields; bool mExpensiveOps; QSqlDatabase mDb; }; #endif // SMDIRWATCHER_H