graphics_settings_proxy.h 899 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <QObject>
  3. #include <QString>
  4. #include <QStringList>
  5. namespace App::Models {
  6. class GraphicsSettingsProxy : public QObject {
  7. Q_OBJECT
  8. Q_PROPERTY(int qualityLevel READ qualityLevel WRITE setQualityLevel NOTIFY
  9. qualityLevelChanged)
  10. Q_PROPERTY(QString qualityName READ qualityName NOTIFY qualityLevelChanged)
  11. Q_PROPERTY(QStringList qualityOptions READ qualityOptions CONSTANT)
  12. public:
  13. explicit GraphicsSettingsProxy(QObject *parent = nullptr);
  14. ~GraphicsSettingsProxy() override = default;
  15. [[nodiscard]] int qualityLevel() const;
  16. void setQualityLevel(int level);
  17. [[nodiscard]] QString qualityName() const;
  18. [[nodiscard]] QStringList qualityOptions() const;
  19. Q_INVOKABLE void setQualityByName(const QString &name);
  20. Q_INVOKABLE QString getQualityDescription() const;
  21. signals:
  22. void qualityLevelChanged();
  23. };
  24. } // namespace App::Models