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