Mercurial > minori
annotate include/gui/dialog/settings.h @ 258:862d0d8619f6
*: HUUUGE changes
animia has been renamed to animone, so instead of thinking of a
health condition, you think of a beautiful flower :)
I've also edited some of the code for animone, but I have no idea
if it even works or not because I don't have a mac or windows
machine lying around. whoops!
... anyway, all of the changes divergent from Anisthesia are now
licensed under BSD. it's possible that I could even rewrite most
of the code to where I don't even have to keep the MIT license,
but that's thinking too far into the future
I've been slacking off on implementing the anime seasons page,
mostly out of laziness. I think I'd have to create another db file
specifically for the seasons
anyway, this code is being pushed *primarily* because the hard drive
it's on is failing! yay :)
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Mon, 01 Apr 2024 02:43:44 -0400 |
| parents | 4d461ef7d424 |
| children | 3ec7804abf17 |
| rev | line source |
|---|---|
| 9 | 1 #ifndef __gui__dialog__settings_h |
| 2 #define __gui__dialog__settings_h | |
| 85 | 3 |
| 9 | 4 #include "core/anime.h" |
|
101
c537996cf67b
*: multitude of config changes
Paper <mrpapersonic@gmail.com>
parents:
95
diff
changeset
|
5 #include "core/config.h" |
|
116
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
6 #include "core/session.h" |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
7 #include <QDialog> |
| 258 | 8 #include <QListWidget> |
| 108 | 9 #include <QLocale> |
| 258 | 10 #include <QWidget> |
| 9 | 11 |
|
68
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
12 class QLabel; |
|
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
13 class QTabWidget; |
| 69 | 14 class QStackedWidget; |
|
68
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
15 class SideBar; |
|
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
16 |
|
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
17 /* !!! MOVE THIS ELSEWHERE! */ |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
18 class DroppableListWidget : public QListWidget { |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
19 Q_OBJECT |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
20 |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
21 public: |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
22 explicit DroppableListWidget(QWidget* parent); |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
23 |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
24 signals: |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
25 void FilesDropped(QStringList list); |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
26 |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
27 protected: |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
28 void dragEnterEvent(QDragEnterEvent* event) override; |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
29 void dragMoveEvent(QDragMoveEvent* event) override; |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
30 void dropEvent(QDropEvent* event) override; |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
31 }; |
|
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
232
diff
changeset
|
32 |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
33 class SettingsPage : public QWidget { |
| 258 | 34 Q_OBJECT |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
35 |
| 258 | 36 public: |
| 37 SettingsPage(QWidget* parent = nullptr, QString title = ""); | |
| 38 void SetTitle(QString title); | |
| 39 virtual void SaveInfo() = 0; | |
| 40 void AddTab(QWidget* tab, QString title = ""); | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
41 |
| 258 | 42 private: |
| 43 QLabel* page_title; | |
| 44 QTabWidget* tab_widget; | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
45 }; |
|
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
46 |
|
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
85
diff
changeset
|
47 class SettingsPageServices final : public SettingsPage { |
| 258 | 48 Q_OBJECT |
| 108 | 49 |
| 258 | 50 public: |
| 51 SettingsPageServices(QWidget* parent = nullptr); | |
| 52 void SaveInfo() override; | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
53 |
| 258 | 54 private: |
| 55 QWidget* CreateMainPage(); | |
| 56 QWidget* CreateAniListPage(); | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
57 |
| 258 | 58 decltype(session.config.service) service; |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
59 }; |
|
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
60 |
|
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
85
diff
changeset
|
61 class SettingsPageApplication final : public SettingsPage { |
| 258 | 62 Q_OBJECT |
| 108 | 63 |
| 258 | 64 public: |
| 65 SettingsPageApplication(QWidget* parent = nullptr); | |
| 66 void SaveInfo() override; | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
67 |
| 258 | 68 private: |
| 69 QWidget* CreateAnimeListWidget(); | |
| 70 QWidget* CreateGeneralWidget(); | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
71 |
| 258 | 72 Themes theme; |
| 73 QLocale locale; | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
74 |
| 258 | 75 decltype(session.config.anime_list.score_format) format; |
| 76 decltype(session.config.anime_list.language) language; | |
| 77 decltype(session.config.anime_list.display_aired_episodes) display_aired_episodes; | |
| 78 decltype(session.config.anime_list.display_available_episodes) display_available_episodes; | |
| 79 decltype(session.config.anime_list.highlight_anime_if_available) highlight_anime_if_available; | |
| 80 decltype(session.config.anime_list.highlighted_anime_above_others) highlighted_anime_above_others; | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
81 }; |
|
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
82 |
|
116
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
83 class SettingsPageTorrents final : public SettingsPage { |
| 258 | 84 Q_OBJECT |
|
116
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
85 |
| 258 | 86 public: |
| 87 SettingsPageTorrents(QWidget* parent = nullptr); | |
| 88 void SaveInfo() override; | |
|
116
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
89 |
| 258 | 90 private: |
| 91 QWidget* CreateGeneralWidget(); | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
92 |
| 258 | 93 decltype(session.config.torrents.feed_link) feed_link; |
|
116
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
94 }; |
|
254b1d2b7096
settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents:
108
diff
changeset
|
95 |
|
119
4eae379cb1ff
settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents:
116
diff
changeset
|
96 class SettingsPageRecognition final : public SettingsPage { |
| 258 | 97 Q_OBJECT |
|
119
4eae379cb1ff
settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents:
116
diff
changeset
|
98 |
| 258 | 99 public: |
| 100 SettingsPageRecognition(QWidget* parent = nullptr); | |
| 101 void SaveInfo() override; | |
|
119
4eae379cb1ff
settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents:
116
diff
changeset
|
102 |
| 258 | 103 private: |
| 104 QWidget* CreatePlayersWidget(); | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
105 |
| 258 | 106 decltype(session.config.recognition.detect_media_players) detect_media_players; |
| 107 decltype(session.config.recognition.players) players; | |
|
119
4eae379cb1ff
settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents:
116
diff
changeset
|
108 }; |
|
4eae379cb1ff
settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents:
116
diff
changeset
|
109 |
| 226 | 110 class SettingsPageLibrary final : public SettingsPage { |
| 258 | 111 Q_OBJECT |
| 226 | 112 |
| 258 | 113 public: |
| 114 SettingsPageLibrary(QWidget* parent = nullptr); | |
| 115 void SaveInfo() override; | |
| 226 | 116 |
| 258 | 117 private: |
| 118 QWidget* CreateFoldersWidget(); | |
|
232
ff0061e75f0f
theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents:
226
diff
changeset
|
119 |
| 258 | 120 decltype(session.config.library.paths) paths; |
| 121 decltype(session.config.library.real_time_monitor) real_time_monitor; | |
| 226 | 122 }; |
| 123 | |
|
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
85
diff
changeset
|
124 class SettingsDialog final : public QDialog { |
| 258 | 125 Q_OBJECT |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
126 |
| 258 | 127 public: |
| 128 SettingsDialog(QWidget* parent = nullptr); | |
| 129 QWidget* CreateServicesMainPage(QWidget* parent); | |
| 130 void OnOK(); | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
131 |
| 258 | 132 protected: |
| 133 void showEvent(QShowEvent* event) override; | |
| 108 | 134 |
| 258 | 135 private: |
| 136 SideBar* sidebar; | |
| 137 QStackedWidget* stacked; | |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
138 }; |
| 85 | 139 |
| 46 | 140 #endif // __gui__dialog__settings_h |
