#pragma once #include #include "./ui_settingsdialog.h" #include "settings_interface.h" QT_BEGIN_NAMESPACE namespace Ui { class SettingsDialog; } QT_END_NAMESPACE class SettingsDialog : public QDialog { Q_OBJECT public: SettingsDialog(QWidget *parent = nullptr); ~SettingsDialog(); static void initialize_default_settings(); public slots: void set_instance_address(const QString &url); void defaults_button_clicked(); void apply_button_clicked(); void cancel_button_clicked(); private slots: // General tab: void on_timezoneCombo_activated(int index); // Network tab: void on_connectToTheInternetCheckBox_clicked(bool checked); void on_DownloadCustomEmojiCheckBox_clicked(bool checked); void on_downloadAttachmentsCheckBox_clicked(bool checked); void on_instanceTypeComboBox_activated(int index); void on_instanceAddressLineEdit_editingFinished(); void on_tokenLineEdit_editingFinished(); void on_instanceActionsLabel_linkActivated(const QString& link); private: Ui::SettingsDialog* ui; SettingsInterface settings_interface; bool update_ui_in_progress = false; QString instance_address; void update_ui(); };