aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/library/library.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/library/library.h')
-rw-r--r--src/plugins/General/library/library.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/General/library/library.h b/src/plugins/General/library/library.h
index 053571a5c..766488908 100644
--- a/src/plugins/General/library/library.h
+++ b/src/plugins/General/library/library.h
@@ -24,9 +24,9 @@
#include <QObject>
#include <QElapsedTimer>
#include <QPointer>
-#include <QFuture>
-#include <QFutureWatcher>
#include <QStringList>
+#include <QThread>
+#include <atomic>
#include <qmmp/trackinfo.h>
#include <qmmp/qmmp.h>
@@ -36,15 +36,13 @@ class SoundCore;
class PlayListTrack;
class LibraryWidget;
-class Library : public QObject
+class Library : public QThread
{
Q_OBJECT
public:
explicit Library(QPointer<LibraryWidget> *libraryWidget, QObject *parent = nullptr);
~Library();
- bool isRunning() const;
-
QAction *showAction() const;
private slots:
@@ -54,6 +52,7 @@ private slots:
void startDirectoryScanning();
private:
+ void run() override;
bool createTables();
void addTrack(TrackInfo *track, const QString &filePath);
QByteArray serializeAudioInfo(const QMap<Qmmp::TrackProperty, QString> &properties);
@@ -63,13 +62,10 @@ private:
bool checkFile(const QFileInfo &info);
void removeIgnoredTracks(QList<TrackInfo *> *tracks, const QStringList &ignoredPaths);
- QFuture<bool> m_future;
QStringList m_filters, m_dirs;
- bool m_stopped = false;
+ std::atomic_bool m_stopped = ATOMIC_VAR_INIT(false);
QPointer<LibraryWidget> *m_libraryWidget;
- QFutureWatcher<bool> m_watcher;
QAction *m_showAction;
-
};
#endif // LIBRARY_H