#pragma once #include #include #include struct SavedDevice { QString serial; QString manufacturer; QString deviceType; QString friendlyName; QString password; }; class AppSettings : public QSettings { Q_OBJECT QML_ELEMENT Q_PROPERTY(int numberOfAppInstances READ numberOfAppInstances WRITE setNumberOfAppInstances NOTIFY numberOfAppInstancesChanged FINAL) Q_PROPERTY(QString solalawebKey READ solalawebKey WRITE setSolalawebKey NOTIFY solalawebKeyChanged FINAL) Q_PROPERTY(QString solalawebCert READ solalawebCert WRITE setSolalawebCert NOTIFY solalawebCertChanged FINAL) Q_PROPERTY(bool showSolalaweb READ showSolalaweb WRITE setShowSolalaweb NOTIFY showSolalawebChanged FINAL) public: std::vector getSavedDevices(); void saveSavedDevices(const std::vector &savedDevices); void refreshSavedDevice(SavedDevice &&savedDevice); void removeSavedDevice(const QString &serial); int numberOfAppInstances() const; void setNumberOfAppInstances(int numberOfAppInstances); QString solalawebKey() const; void setSolalawebKey(const QString &solalawebKey); Q_INVOKABLE bool loadSolalawebKey(const QString &url); QString solalawebCert() const; void setSolalawebCert(const QString &solalawebCert); Q_INVOKABLE bool loadSolalawebCert(const QString &url); bool showSolalaweb() const; void setShowSolalaweb(bool showSolalaweb); signals: void numberOfAppInstancesChanged(int numberOfAppInstances); void solalawebKeyChanged(const QString &solalawebKey); void solalawebCertChanged(const QString &solalawebCert); void showSolalawebChanged(bool showSolalaweb); private: mutable std::optional m_numberOfAppInstances; mutable std::optional m_solalawebKey; mutable std::optional m_solalawebCert; mutable std::optional m_showSolalaweb; };