annotate include/gui/dialog/settings.h @ 316:180714442770

settings: clean up code
author Paper <paper@paper.us.eu.org>
date Tue, 11 Jun 2024 15:11:09 -0400
parents 657fda1b9cac
children b1f4d1867ab1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
1 #ifndef MINORI_GUI_DIALOG_SETTINGS_H_
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
2 #define MINORI_GUI_DIALOG_SETTINGS_H_
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 69
diff changeset
3
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 7
diff changeset
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"
316
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
7 #include "gui/widgets/sidebar.h"
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
8 #include <QDialog>
316
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
9 #include <QDialogButtonBox>
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
10 #include <QLabel>
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
11 #include <QListWidget>
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
12 #include <QLocale>
316
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
13 #include <QStackedWidget>
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
14 #include <QTabWidget>
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
15 #include <QVBoxLayout>
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
16 #include <QWidget>
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 7
diff changeset
17
236
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
18 /* !!! MOVE THIS ELSEWHERE! */
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
19 class DroppableListWidget : public QListWidget {
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
20 Q_OBJECT
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
21
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
22 public:
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
23 explicit DroppableListWidget(QWidget* parent);
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
24
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
25 signals:
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
26 void FilesDropped(QStringList list);
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
27
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
28 protected:
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
29 void dragEnterEvent(QDragEnterEvent* event) override;
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
30 void dragMoveEvent(QDragMoveEvent* event) override;
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
31 void dropEvent(QDropEvent* event) override;
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
32 };
4d461ef7d424 HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents: 232
diff changeset
33
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
34 class SettingsPage : public QWidget {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
35 Q_OBJECT
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
36
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
37 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
38 SettingsPage(QWidget* parent = nullptr, QString title = "");
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
39 void SetTitle(QString title);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
40 virtual void SaveInfo() = 0;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
41 void AddTab(QWidget* tab, QString title = "");
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
42
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
43 private:
316
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
44 QLabel page_title_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
45 QTabWidget tab_widget_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
46 QVBoxLayout layout_;
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
47 };
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
48
95
8043152ef9d4 include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
49 class SettingsPageServices final : public SettingsPage {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
50 Q_OBJECT
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
51
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
52 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
53 SettingsPageServices(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
54 void SaveInfo() override;
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
55
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
56 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
57 QWidget* CreateMainPage();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
58 QWidget* CreateAniListPage();
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
59
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
60 decltype(session.config.service) service;
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
61 };
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
62
95
8043152ef9d4 include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
63 class SettingsPageApplication final : public SettingsPage {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
64 Q_OBJECT
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
65
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
66 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
67 SettingsPageApplication(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
68 void SaveInfo() override;
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
69
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
70 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
71 QWidget* CreateAnimeListWidget();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
72 QWidget* CreateGeneralWidget();
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
73
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
74 Theme::Theme theme;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
75 QLocale locale;
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
76
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
77 decltype(session.config.anime_list.score_format) format;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
78 decltype(session.config.anime_list.language) language;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
79 decltype(session.config.anime_list.display_aired_episodes) display_aired_episodes;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
80 decltype(session.config.anime_list.display_available_episodes) display_available_episodes;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
81 decltype(session.config.anime_list.highlight_anime_if_available) highlight_anime_if_available;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
82 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
83 };
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
84
116
254b1d2b7096 settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
85 class SettingsPageTorrents final : public SettingsPage {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
86 Q_OBJECT
116
254b1d2b7096 settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
87
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
88 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
89 SettingsPageTorrents(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
90 void SaveInfo() override;
116
254b1d2b7096 settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
91
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
92 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
93 QWidget* CreateGeneralWidget();
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
94
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
95 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
96 };
254b1d2b7096 settings: add torrents page, make rss feed configurable
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
97
119
4eae379cb1ff settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents: 116
diff changeset
98 class SettingsPageRecognition final : public SettingsPage {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
99 Q_OBJECT
119
4eae379cb1ff settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents: 116
diff changeset
100
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
101 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
102 SettingsPageRecognition(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
103 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
104
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
105 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
106 QWidget* CreatePlayersWidget();
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
107
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
108 decltype(session.config.recognition.detect_media_players) detect_media_players;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
109 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
110 };
4eae379cb1ff settings: add a very early recognition tab for configuring players and extensions
Paper <mrpapersonic@gmail.com>
parents: 116
diff changeset
111
226
f784b5b1914c settings: add library page
Paper <mrpapersonic@gmail.com>
parents: 195
diff changeset
112 class SettingsPageLibrary final : public SettingsPage {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
113 Q_OBJECT
226
f784b5b1914c settings: add library page
Paper <mrpapersonic@gmail.com>
parents: 195
diff changeset
114
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
115 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
116 SettingsPageLibrary(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
117 void SaveInfo() override;
226
f784b5b1914c settings: add library page
Paper <mrpapersonic@gmail.com>
parents: 195
diff changeset
118
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
119 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
120 QWidget* CreateFoldersWidget();
232
ff0061e75f0f theme: add OS detection with glib
Paper <mrpapersonic@gmail.com>
parents: 226
diff changeset
121
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
122 decltype(session.config.library.paths) paths;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
123 decltype(session.config.library.real_time_monitor) real_time_monitor;
226
f784b5b1914c settings: add library page
Paper <mrpapersonic@gmail.com>
parents: 195
diff changeset
124 };
f784b5b1914c settings: add library page
Paper <mrpapersonic@gmail.com>
parents: 195
diff changeset
125
95
8043152ef9d4 include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
126 class SettingsDialog final : public QDialog {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
127 Q_OBJECT
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
128
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
129 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
130 SettingsDialog(QWidget* parent = nullptr);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
131 QWidget* CreateServicesMainPage(QWidget* parent);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
132 void OnOK();
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
133
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
134 protected:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
135 void showEvent(QShowEvent* event) override;
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
136
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
137 private:
316
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
138 QVBoxLayout layout_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
139
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
140 QWidget widget_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
141 QHBoxLayout widget_layout_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
142
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
143 SideBar sidebar_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
144 QStackedWidget stacked_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
145
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
146 SettingsPageServices services_page_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
147 SettingsPageApplication application_page_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
148 SettingsPageTorrents torrents_page_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
149 SettingsPageRecognition recognition_page_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
150 SettingsPageLibrary library_page_;
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
151
180714442770 settings: clean up code
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
152 QDialogButtonBox button_box_;
6
1d82f6e04d7d Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
153 };
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 69
diff changeset
154
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
155 #endif // MINORI_GUI_DIALOG_SETTINGS_H_