Mercurial > minori
view include/gui/dialog/settings.h @ 118:39521c47c7a3
*: another huge megacommit, SORRY
The torrents page works a lot better now
Added the edit option to the anime list right click menu
Vectorized currently playing files
Available player and extensions are now loaded at runtime
from files in (dotpath)/players.json and (dotpath)/extensions.json
These paths are not permanent and will likely be moved to
(dotpath)/recognition
...
...
...
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Tue, 07 Nov 2023 23:40:54 -0500 |
parents | 254b1d2b7096 |
children | 4eae379cb1ff |
line wrap: on
line source
#ifndef __gui__dialog__settings_h #define __gui__dialog__settings_h #include "core/anime.h" #include "core/config.h" #include "core/session.h" #include <QDialog> #include <QWidget> #include <QLocale> class QLabel; class QTabWidget; class QStackedWidget; class SideBar; class SettingsPage : public QWidget { Q_OBJECT public: SettingsPage(QWidget* parent = nullptr, QString title = ""); void SetTitle(QString title); virtual void SaveInfo() = 0; void AddTab(QWidget* tab, QString title = ""); private: QLabel* page_title; QTabWidget* tab_widget; }; class SettingsPageServices final : public SettingsPage { Q_OBJECT public: SettingsPageServices(QWidget* parent = nullptr); void SaveInfo() override; private: QWidget* CreateMainPage(); QWidget* CreateAniListPage(); QString username; Anime::Services service; }; class SettingsPageApplication final : public SettingsPage { Q_OBJECT public: SettingsPageApplication(QWidget* parent = nullptr); void SaveInfo() override; private: QWidget* CreateAnimeListWidget(); Themes theme; QLocale locale; Anime::TitleLanguage language; bool display_aired_episodes; bool display_available_episodes; bool highlight_anime_if_available; bool highlighted_anime_above_others; }; class SettingsPageTorrents final : public SettingsPage { Q_OBJECT public: SettingsPageTorrents(QWidget* parent = nullptr); void SaveInfo() override; private: QWidget* CreateGeneralWidget(); decltype(session.config.torrents.feed_link) feed_link; }; class SettingsDialog final : public QDialog { Q_OBJECT public: SettingsDialog(QWidget* parent = nullptr); QWidget* CreateServicesMainPage(QWidget* parent); void OnOK(); protected: void showEvent(QShowEvent* event) override; private: SideBar* sidebar; QStackedWidget* stacked; }; #endif // __gui__dialog__settings_h