graphics_settings_proxy.h 930 B

1234567891011121314151617181920212223242526272829303132333435
  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 quality_level READ quality_level WRITE set_quality_level NOTIFY
  9. quality_level_changed)
  10. Q_PROPERTY(
  11. QString quality_name READ quality_name NOTIFY quality_level_changed)
  12. Q_PROPERTY(QStringList quality_options READ quality_options CONSTANT)
  13. public:
  14. explicit GraphicsSettingsProxy(QObject *parent = nullptr);
  15. ~GraphicsSettingsProxy() override = default;
  16. [[nodiscard]] int quality_level() const;
  17. void set_quality_level(int level);
  18. [[nodiscard]] QString quality_name() const;
  19. [[nodiscard]] QStringList quality_options() const;
  20. Q_INVOKABLE void set_quality_by_name(const QString &name);
  21. Q_INVOKABLE QString get_quality_description() const;
  22. signals:
  23. void quality_level_changed();
  24. };
  25. } // namespace App::Models