Mercurial > minori
comparison include/gui/window.h @ 170:c8375765f0fc
window: make threading somewhat sane
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Tue, 21 Nov 2023 11:04:13 -0500 |
parents | ab191e28e69d |
children | 4d461ef7d424 |
comparison
equal
deleted
inserted
replaced
169:e44b7c428d7c | 170:c8375765f0fc |
---|---|
8 any file that #includes this to have to #include | 8 any file that #includes this to have to #include |
9 these as well due to unique_ptr */ | 9 these as well due to unique_ptr */ |
10 #include <QWidget> | 10 #include <QWidget> |
11 #include <QStackedWidget> | 11 #include <QStackedWidget> |
12 #include <QCloseEvent> | 12 #include <QCloseEvent> |
13 #include <QThread> | |
13 #include "gui/widgets/sidebar.h" | 14 #include "gui/widgets/sidebar.h" |
15 | |
16 Q_DECLARE_METATYPE(std::vector<std::string>); | |
17 | |
18 class PlayingThread : public QThread { | |
19 Q_OBJECT | |
20 | |
21 public: | |
22 PlayingThread(QObject* object = nullptr) : QThread(object) {} | |
23 | |
24 private: | |
25 void run() override; | |
26 | |
27 signals: | |
28 void Done(const std::vector<std::string>& files); | |
29 }; | |
14 | 30 |
15 class MainWindow final : public QMainWindow { | 31 class MainWindow final : public QMainWindow { |
16 Q_OBJECT | 32 Q_OBJECT |
17 | 33 |
18 public: | 34 public: |
28 | 44 |
29 private: | 45 private: |
30 std::unique_ptr<QWidget> main_widget = nullptr; | 46 std::unique_ptr<QWidget> main_widget = nullptr; |
31 std::unique_ptr<QStackedWidget> stack = nullptr; | 47 std::unique_ptr<QStackedWidget> stack = nullptr; |
32 std::unique_ptr<SideBar> sidebar = nullptr; | 48 std::unique_ptr<SideBar> sidebar = nullptr; |
49 | |
50 std::unique_ptr<PlayingThread> thread = nullptr; | |
33 }; | 51 }; |
34 | 52 |
35 #endif // __window_h | 53 #endif // __window_h |