// settingsdialog.h — Settings dialog with category list #pragma once #include #include #include #include #include #include #include class NetworkSettingsPage; class DatabaseSettingsPage; class StatusPage; class NodesPage; class SoundSettingsPage; class AudioDeviceSettingsPage; class StorageSettingsPage; class DbManager; class UtunNode; class AudioRecorder; class SettingsDialog : public QDialog { Q_OBJECT public: explicit SettingsDialog(const QString& configPath, DbManager* db, UtunNode* node, AudioRecorder* recorder, QWidget* parent = nullptr); private slots: void onCategoryChanged(int row); void onSave(); private: void loadProfileFromConfig(const QString& path); QString m_configPath; QListWidget* m_categoryList; QStackedWidget* m_pages; QPushButton* m_saveBtn; QLineEdit* m_nicknameEdit; QComboBox* m_sortCombo; QString m_oldNickname; NetworkSettingsPage* m_networkPage; DatabaseSettingsPage* m_databasePage; StatusPage* m_statusPage; NodesPage* m_nodesPage; SoundSettingsPage* m_soundPage; AudioDeviceSettingsPage* m_audioDevicePage; StorageSettingsPage* m_storagePage; };