JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
OptionsModel.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <QObject>
7#include <QString>
8#include <QStringList>
9#include <QtQmlIntegration>
10
11namespace core {
12class MemoryLogSink;
13}
14
19
20namespace hmi {
21
49class OptionsModel : public QObject {
50 Q_OBJECT
51 QML_ELEMENT
52 QML_SINGLETON
53
54 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
55 Q_PROPERTY(bool vsync READ vsync WRITE setVsync NOTIFY vsyncChanged)
56 Q_PROPERTY(bool diagnostics READ diagnostics WRITE setDiagnostics NOTIFY diagnosticsChanged)
57 Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged)
58 Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
59
62 Q_PROPERTY(QStringList languages READ languages CONSTANT)
63
69 Q_PROPERTY(QStringList languageNames READ languageNames CONSTANT)
70
73 Q_PROPERTY(bool logsAvailable READ logsAvailable CONSTANT)
74
75public:
76 explicit OptionsModel(QObject* parent = nullptr);
77
80 void setSessionLog(core::MemoryLogSink* sessionLog) noexcept;
81
82 [[nodiscard]] bool fullscreen() const noexcept {
83 return _fullscreen;
84 }
85 [[nodiscard]] bool vsync() const noexcept {
86 return _vsync;
87 }
88 [[nodiscard]] bool diagnostics() const noexcept {
89 return _diagnostics;
90 }
91 [[nodiscard]] int volume() const noexcept {
92 return _volume;
93 }
94 [[nodiscard]] QString language() const {
95 return _language;
96 }
97 [[nodiscard]] QStringList languages() const;
98 [[nodiscard]] QStringList languageNames() const;
99 [[nodiscard]] bool logsAvailable() const noexcept {
100 return _sessionLog != nullptr;
101 }
102
103 void setFullscreen(bool enabled);
104 void setVsync(bool enabled);
105 void setDiagnostics(bool enabled);
106 void setVolume(int percent);
107 void setLanguage(const QString& code);
108
115 [[nodiscard]] Q_INVOKABLE QString saveLogs();
116
117signals:
123
124private:
126 bool _fullscreen = false;
127 bool _vsync = true;
128 bool _diagnostics = false;
129 int _volume = 100;
130 QString _language;
131};
132
133} // namespace hmi
Sink de test : mémorise les messages reçus pour inspection.
Definition MemoryLogSink.h:21
bool _diagnostics
Definition OptionsModel.h:128
QString language
Definition OptionsModel.h:58
int volume
Definition OptionsModel.h:57
void setFullscreen(bool enabled)
Definition OptionsModel.cpp:60
bool logsAvailable() const noexcept
Definition OptionsModel.h:99
QString _language
Definition OptionsModel.h:130
bool vsync() const noexcept
Definition OptionsModel.h:85
core::MemoryLogSink * _sessionLog
Definition OptionsModel.h:125
void setLanguage(const QString &code)
Definition OptionsModel.cpp:97
OptionsModel(QObject *parent=nullptr)
Definition OptionsModel.cpp:36
int _volume
Definition OptionsModel.h:129
void setDiagnostics(bool enabled)
Definition OptionsModel.cpp:78
void fullscreenChanged()
QStringList languages
Les langues que le jeu propose, par leur code (fr, en).
Definition OptionsModel.h:62
QStringList languageNames
Les mêmes, par leur nom, dans le même ordre — et chacun écrit dans sa propre langue.
Definition OptionsModel.h:69
bool _vsync
Definition OptionsModel.h:127
int volume() const noexcept
Definition OptionsModel.h:91
void diagnosticsChanged()
bool vsync
Definition OptionsModel.h:55
bool diagnostics() const noexcept
Definition OptionsModel.h:88
bool _fullscreen
Definition OptionsModel.h:126
Q_INVOKABLE QString saveLogs()
Écrit les journaux de la session dans un fichier horodaté, à côté de l'exécutable.
Definition OptionsModel.cpp:106
void setVsync(bool enabled)
Definition OptionsModel.cpp:69
void setSessionLog(core::MemoryLogSink *sessionLog) noexcept
Désigne le puits mémoire des journaux de session.
Definition OptionsModel.cpp:45
void setVolume(int percent)
Definition OptionsModel.cpp:87
QML_SINGLETONbool fullscreen
Definition OptionsModel.h:54
QString language() const
Definition OptionsModel.h:94
bool logsAvailable
false en Release, où aucun puits mémoire ne collecte les journaux de session.
Definition OptionsModel.h:73
bool diagnostics
Definition OptionsModel.h:56
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
Definition AudioEngine.cpp:15