Mercurial > minori
annotate include/gui/window.h @ 217:47ddd6b638e3
dep/animia: add missing wayland files
derp
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Sun, 07 Jan 2024 13:27:22 -0500 |
| parents | c8375765f0fc |
| children | 4d461ef7d424 |
| rev | line source |
|---|---|
| 2 | 1 #ifndef __window_h |
| 7 | 2 #define __window_h |
| 9 | 3 #include "core/config.h" |
| 7 | 4 #include <QMainWindow> |
|
114
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
5 #include <memory> |
| 79 | 6 |
|
114
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
7 /* *could* be forward-declared, but this causes |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
8 any file that #includes this to have to #include |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
9 these as well due to unique_ptr */ |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
10 #include <QWidget> |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
11 #include <QStackedWidget> |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
12 #include <QCloseEvent> |
|
170
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
13 #include <QThread> |
|
114
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
14 #include "gui/widgets/sidebar.h" |
| 2 | 15 |
|
170
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
16 Q_DECLARE_METATYPE(std::vector<std::string>); |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
17 |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
18 class PlayingThread : public QThread { |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
19 Q_OBJECT |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
20 |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
21 public: |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
22 PlayingThread(QObject* object = nullptr) : QThread(object) {} |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
23 |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
24 private: |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
25 void run() override; |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
26 |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
27 signals: |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
28 void Done(const std::vector<std::string>& files); |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
29 }; |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
30 |
|
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
79
diff
changeset
|
31 class MainWindow final : public QMainWindow { |
| 9 | 32 Q_OBJECT |
| 33 | |
| 2 | 34 public: |
| 35 MainWindow(QWidget* parent = nullptr); | |
| 36 void SetActivePage(QWidget* page); | |
| 79 | 37 void CreateBars(); |
|
112
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
105
diff
changeset
|
38 void AddMainWidgets(); |
|
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
105
diff
changeset
|
39 void RetranslateUI(); |
|
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
105
diff
changeset
|
40 void AsyncSynchronize(QStackedWidget* stack); |
|
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
105
diff
changeset
|
41 void changeEvent(QEvent* event) override; |
|
105
6d8da6e64d61
theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents:
95
diff
changeset
|
42 void showEvent(QShowEvent* event) override; |
|
4
5af270662505
Set override functions as override
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
43 void closeEvent(QCloseEvent* event) override; |
| 2 | 44 |
| 45 private: | |
|
114
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
46 std::unique_ptr<QWidget> main_widget = nullptr; |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
47 std::unique_ptr<QStackedWidget> stack = nullptr; |
|
ab191e28e69d
*: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
48 std::unique_ptr<SideBar> sidebar = nullptr; |
|
170
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
49 |
|
c8375765f0fc
window: make threading somewhat sane
Paper <mrpapersonic@gmail.com>
parents:
114
diff
changeset
|
50 std::unique_ptr<PlayingThread> thread = nullptr; |
| 2 | 51 }; |
| 52 | |
| 53 #endif // __window_h |
