Integrated file selection dialogue with the main code. Improved the
[openvpnui.git] / src / filebrowse / searchworker.h
1 #ifndef SEARCHWORKER_H
2 #define SEARCHWORKER_H
3
4 #include <QThread>
5 #include <QDir>
6
7 /**
8 * @brief SearchWorker does searching in the background.
9 */
10 class SearchWorker : public QThread
11 {
12 Q_OBJECT
13
14 public:
15 explicit SearchWorker(QObject *parent = 0);
16 ~SearchWorker();
17
18 void startSearch(QString directory, QString searchTerm);
19
20 void cancel();
21
22 signals: // signals, can be connected from a thread to another
23
24 void progressChanged(QString directory);
25
26 void matchFound(QString fullname);
27
28 // one of these is emitted when thread ends
29 void done();
30 void errorOccurred(QString message, QString filename);
31
32 protected:
33 void run();
34
35 private:
36 enum CancelStatus {
37 Cancelled = 0, NotCancelled = 1
38 };
39
40 QString searchRecursively(QString directory, QString searchTerm);
41
42 QString m_directory;
43 QString m_searchTerm;
44 QAtomicInt m_cancelled; // atomic so no locks needed
45 QString m_currentDirectory;
46 };
47
48 #endif // SEARCHWORKER_H