|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Vue-modèle des options : lit et persiste les réglages, et publie leur changement. More...
#include <OptionsModel.h>
Signals | |
| void | fullscreenChanged () |
| void | vsyncChanged () |
| void | diagnosticsChanged () |
| void | volumeChanged () |
| void | languageChanged () |
Public Member Functions | |
| OptionsModel (QObject *parent=nullptr) | |
| void | setSessionLog (core::MemoryLogSink *sessionLog) noexcept |
| Désigne le puits mémoire des journaux de session. | |
| bool | fullscreen () const noexcept |
| bool | vsync () const noexcept |
| bool | diagnostics () const noexcept |
| int | volume () const noexcept |
| QString | language () const |
| QStringList | languages () const |
| QStringList | languageNames () const |
| bool | logsAvailable () const noexcept |
| void | setFullscreen (bool enabled) |
| void | setVsync (bool enabled) |
| void | setDiagnostics (bool enabled) |
| void | setVolume (int percent) |
| void | setLanguage (const QString &code) |
| Q_INVOKABLE QString | saveLogs () |
| Écrit les journaux de la session dans un fichier horodaté, à côté de l'exécutable. | |
Properties | |
| QML_SINGLETONbool | fullscreen |
| bool | vsync |
| bool | diagnostics |
| int | volume |
| QString | language |
| QStringList | languages |
| Les langues que le jeu propose, par leur code (fr, en). | |
| QStringList | languageNames |
| Les mêmes, par leur nom, dans le même ordre — et chacun écrit dans sa propre langue. | |
| bool | logsAvailable |
| false en Release, où aucun puits mémoire ne collecte les journaux de session. | |
Private Attributes | |
| core::MemoryLogSink * | _sessionLog = nullptr |
| bool | _fullscreen = false |
| bool | _vsync = true |
| bool | _diagnostics = false |
| int | _volume = 100 |
| QString | _language |
Vue-modèle des options : lit et persiste les réglages, et publie leur changement.
EX-IHM-083 : tout réglage exposé doit atteindre le moteur. Une case à cocher qui ne fait rien est pire qu'une case absente — elle fait croire à un réglage, et l'utilisateur cherche ensuite pourquoi il n'a pas d'effet.
Cette classe ne fait donc que deux choses : persister, et prévenir. C'est l'application qui branche chaque signal sur ce qu'il doit atteindre — le moteur audio, la fenêtre, les traducteurs. Le faire ici obligerait la présentation à connaître le moteur, et c'est précisément la frontière que le lot établit.
| Réglage | Atteint |
|---|---|
| plein écran | la fenêtre, immédiatement |
| volume | le moteur audio, immédiatement |
| langue | les traducteurs et le QML, immédiatement |
| synchronisation verticale | le format de surface, au prochain lancement |
| compteur de diagnostic | l'affichage tête haute, quand il existera |
Les deux dernières lignes sont dites à l'écran, et non tues : un réglage qui s'applique plus tard atteint bien le moteur, mais l'utilisateur doit savoir quand.
|
explicit |
|
inlinenodiscardnoexcept |
|
signal |
|
inlinenodiscardnoexcept |
|
signal |
|
inlinenodiscard |
|
signal |
|
nodiscard |
|
nodiscard |
|
inlinenodiscardnoexcept |
|
nodiscard |
Écrit les journaux de la session dans un fichier horodaté, à côté de l'exécutable.
| void hmi::OptionsModel::setDiagnostics | ( | bool | enabled | ) |
| void hmi::OptionsModel::setFullscreen | ( | bool | enabled | ) |
| void hmi::OptionsModel::setLanguage | ( | const QString & | code | ) |
|
noexcept |
Désigne le puits mémoire des journaux de session.
Appelé par l'application au démarrage : la présentation ne va pas le chercher elle-même, elle ne sait pas qu'il existe.
| void hmi::OptionsModel::setVolume | ( | int | percent | ) |
| void hmi::OptionsModel::setVsync | ( | bool | enabled | ) |
|
inlinenodiscardnoexcept |
|
signal |
|
inlinenodiscardnoexcept |
|
signal |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
readwrite |
|
readwrite |
|
readwrite |
|
read |
Les mêmes, par leur nom, dans le même ordre — et chacun écrit dans sa propre langue.
Un code est une clé technique : l'afficher aurait demandé au joueur de savoir que « en » désigne l'anglais, et ce sont précisément les clés à l'écran que ce lot supprime ailleurs. Ils ne passent pas par qsTr : « English » ne se traduit pas en français, il s'écrit ainsi dans la liste quelle que soit la langue courante — c'est ce qui permet d'en sortir.
|
read |
Les langues que le jeu propose, par leur code (fr, en).
Constantes : une langue s'ajoute avec son catalogue, donc par une construction, jamais à l'exécution.
|
read |
false en Release, où aucun puits mémoire ne collecte les journaux de session.
Le bouton se désactive alors plutôt que d'échouer une fois cliqué.
|
readwrite |
|
readwrite |