Mercurial > minori
diff src/include/settings.h @ 6:1d82f6e04d7d
Update: add first parts to the settings dialog
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 16 Aug 2023 00:49:17 -0400 |
parents | |
children | 07a9095eaeed |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/settings.h Wed Aug 16 00:49:17 2023 -0400 @@ -0,0 +1,60 @@ +#ifndef __settings_h +#define __settings_h +#include <QWidget> +#include <QDialog> +#include <QTabWidget> +#include <QLabel> +#include <QLineEdit> +#include <QComboBox> +#include <QHBoxLayout> +#include "sidebar.h" +class SettingsPage : public QWidget { + Q_OBJECT + + public: + SettingsPage(QWidget* parent = nullptr, QString title = ""); + void SetTitle(QString title); + virtual void SaveInfo(); + void AddTab(QWidget* tab, QString title = ""); + + private: + QLabel* page_title; + QTabWidget* tab_widget; +}; + +class SettingsPageServices : public SettingsPage { + public: + SettingsPageServices(QWidget* parent = nullptr); + void SaveInfo() override; + + private: + QWidget* CreateMainPage(); + QWidget* CreateAniListPage(); + QLineEdit* username_entry; + QComboBox* sync_combo_box; +}; + +class SettingsPageApplication : public SettingsPage { + public: + SettingsPageApplication(QWidget* parent = nullptr); + void SaveInfo() override; + + private: + QWidget* CreateAnimeListPage(); +}; + +class SettingsDialog : public QDialog { + Q_OBJECT + + public: + SettingsDialog(QWidget* parent = nullptr); + QWidget* CreateServicesMainPage(QWidget* parent); + void OnSidebar(QListWidgetItem* item); + void OnOK(); + + private: + std::vector<SettingsPage*> pages; + QHBoxLayout* layout; + SideBar* sidebar; +}; +#endif // __settings_h \ No newline at end of file