#pragma once #include #include #include #include #include #include "singletons/Settings.hpp" namespace chatterino { class SettingsDialogTab; class SettingsPage : public QWidget { public: SettingsPage(const QString &name, const QString &iconResource); const QString &getName(); const QString &getIconResource(); SettingsDialogTab *tab() const; void setTab(SettingsDialogTab *tab); void cancel(); QCheckBox *createCheckBox(const QString &text, pajlada::Settings::Setting &setting); QComboBox *createComboBox(const QStringList &items, pajlada::Settings::Setting &setting); QLineEdit *createLineEdit(pajlada::Settings::Setting &setting); QSpinBox *createSpinBox(pajlada::Settings::Setting &setting, int min = 0, int max = 2500); virtual void onShow() { } protected: QString name_; QString iconResource_; SettingsDialogTab *tab_; pajlada::Signals::NoArgSignal onCancel_; std::vector managedConnections_; }; } // namespace chatterino