/* 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 #include class SmTreeItem; class SmDirWatcher : public QThread { Q_OBJECT public: enum DWEvent { Added, Deleted, Modified }; explicit SmDirWatcher(QObject *parent = 0); ~SmDirWatcher(); signals: void dwEvent(const QString& file, int event); void needRefresh(); public slots: void run(); void setDir(const QString &dir); private: int mFd; int mDescr; QMutex mWatchMx; QString mCurrent; }; class SmDataGatherer : public QThread { Q_OBJECT public: explicit SmDataGatherer(const int numFields, QObject *parent = 0); void setCurrent(const QString ¤t, int mode = -1); public slots: void run(); //void setFile(const QString &fullPath, int event); //void populate(const QString &dir); signals: void newData(const QList,int); void population(SmTreeItem*); void needRefresh(); private: //QList > populate(); SmTreeItem *populate(); const QList fileData(const QFileInfo &fi) const; QString mCurrent; QMutex mRunMx; QMutex mSetMx; int mMode; const int mNumFields; }; #endif // SMDIRWATCHER_H