#pragma once #include #include #include #include "preferences/usersettings.h" #include "preferences/broadcastsettingsmodel.h" #include "preferences/broadcastprofile.h" class BroadcastSettings : public QObject { Q_OBJECT public: BroadcastSettings(UserSettingsPointer pConfig, QObject* parent = nullptr); bool saveProfile(BroadcastProfilePtr profile); void saveAll(); QList profiles(); BroadcastProfilePtr profileAt(int index); void applyModel(BroadcastSettingsModel* pModel); signals: void profileAdded(BroadcastProfilePtr profile); void profileRemoved(BroadcastProfilePtr profile); void profileRenamed(const QString& oldName, BroadcastProfilePtr profile); void profilesChanged(); private slots: void onProfileNameChanged(const QString& oldName, const QString& newName); void onConnectionStatusChanged(int newStatus); private: void loadProfiles(); bool addProfile(BroadcastProfilePtr profile); QString filePathForProfile(BroadcastProfilePtr profile); QString filePathForProfile(const QString& profileName); bool deleteFileForProfile(BroadcastProfilePtr profile); QString getProfilesFolder(); void loadLegacySettings(BroadcastProfilePtr profile); // Pointer to config object UserSettingsPointer m_pConfig; QMap m_profiles; }; typedef QSharedPointer BroadcastSettingsPointer;