|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Liste ordonnée des plans d'un niveau, avec leurs réglages. More...
#include <PlanesPanel.h>
Signals | |
| void | planeSelected (std::optional< std::size_t > index) |
| Un plan a été sélectionné dans la liste (ou désélectionné). | |
| void | addRequested () |
| Créer un plan : l'appelant crée le PNG et ajoute l'entrée au brouillon. | |
| void | removeRequested (std::size_t index) |
Retirer l'entrée du plan index. | |
| void | paintRequested (std::size_t index) |
Ouvrir le plan index dans le mode création. | |
| void | reorderRequested (std::size_t index, bool forward) |
| Réordonner : forward rapproche le plan du dessus de la liste. | |
| void | depthChangeRequested (std::size_t index, core::PlaneDepth depth) |
Changer la profondeur du plan index. | |
| void | densityChangeRequested (std::size_t index, int pixelsPerUnit) |
Changer la densité du plan index : l'appelant rééchantillonne l'image et la réécrit. | |
| void | parallaxChangeRequested (std::size_t index, float parallaxX, float parallaxY) |
Changer les facteurs de parallaxe du plan index. | |
| void | opacityChangeRequested (std::size_t index, float opacity) |
Changer l'opacité du plan index. | |
| void | levelParallaxToggled (bool enabled) |
| Changer le drapeau de parallaxe du niveau. | |
| void | visibilityToggled (std::size_t index, bool visible) |
Masquer/réafficher le plan index (aide d'édition, jamais persistée). | |
| void | isolateToggled (std::size_t index, bool isolate) |
Isoler le plan index, ou tout réafficher si isolate est faux. | |
Public Member Functions | |
| PlanesPanel (QWidget *parent=nullptr) | |
| ~PlanesPanel () override | |
| void | refresh (const core::LevelDraft &draft, std::optional< std::size_t > selected, const PlaneVisibility &visibility) |
Repeuple le panneau depuis draft. | |
| std::optional< std::size_t > | selectedIndex () const |
| void | retranslateUi (const Localization &loc) |
| Applique la langue active (titres, libellés, entrées de listes déroulantes). | |
Private Member Functions | |
| void | rebuildTree (const core::LevelDraft &draft, std::optional< std::size_t > selected, const PlaneVisibility &visibility) |
| Repeuple la liste sans réémettre planeSelected (repeuplement, pas geste utilisateur). | |
| void | refreshSettings (const core::LevelDraft &draft, std::optional< std::size_t > selected) |
| Repeuple les champs du plan sélectionné, ou les désactive si aucun ne l'est. | |
| void | connectControls () |
| Branche les signaux des contrôles (une seule fois, à la construction). | |
Private Attributes | |
| Ui::PlanesPanel * | _ui |
| bool | _refreshing = false |
| Vrai pendant un repeuplement : les signaux des contrôles sont alors ignorés, sinon repeupler la vue émettrait des mutations que personne n'a demandées. | |
| core::CameraFramingMode | _framingMode = core::CameraFramingMode::WholeLevel |
| Mode de cadrage du niveau, pour griser la case de parallaxe là où le moteur la neutralise. | |
Liste ordonnée des plans d'un niveau, avec leurs réglages.
Vue du modèle, pas un état : refresh repeuple les champs depuis un core::LevelDraft, aucune copie n'est conservée entre deux appels. Le panneau n'écrit rien — il émet un signal typé, et l'appelant (hmi::MainWindow → hmi::GameViewport) applique la mutation au brouillon, seul propriétaire. Même patron que les autres panneaux de l'éditeur.
L'ordre de la liste est significatif : il décide de la superposition à l'intérieur d'une profondeur. D'où des boutons Monter/Descendre plutôt qu'un tri de colonne, qui laisserait croire que l'ordre n'est qu'un confort d'affichage.
Les champs numériques émettent sur editingFinished, jamais sur valueChanged : taper « 0.75 » dans un facteur de parallaxe produirait sinon quatre mutations, donc quatre pas d'annulation pour un seul geste (leçon du LOT-67).
La visibilité des plans (masquage, isolement) n'est pas une propriété du niveau : elle vit dans hmi::PlaneVisibility, n'est pas persistée, et n'empile aucun pas d'annulation.
|
explicit |
|
override |
|
signal |
Créer un plan : l'appelant crée le PNG et ajoute l'entrée au brouillon.
|
private |
Branche les signaux des contrôles (une seule fois, à la construction).
|
signal |
Changer la densité du plan index : l'appelant rééchantillonne l'image et la réécrit.
|
signal |
Changer la profondeur du plan index.
|
signal |
Isoler le plan index, ou tout réafficher si isolate est faux.
|
signal |
Changer le drapeau de parallaxe du niveau.
|
signal |
Changer l'opacité du plan index.
|
signal |
Ouvrir le plan index dans le mode création.
|
signal |
Changer les facteurs de parallaxe du plan index.
|
signal |
Un plan a été sélectionné dans la liste (ou désélectionné).
|
private |
Repeuple la liste sans réémettre planeSelected (repeuplement, pas geste utilisateur).
| void hmi::PlanesPanel::refresh | ( | const core::LevelDraft & | draft, |
| std::optional< std::size_t > | selected, | ||
| const PlaneVisibility & | visibility ) |
Repeuple le panneau depuis draft.
| draft | Brouillon courant (lecture seule). |
| selected | Rang du plan sélectionné, si un l'est. |
| visibility | Visibilité courante par rang (masquage, isolement). |
|
private |
Repeuple les champs du plan sélectionné, ou les désactive si aucun ne l'est.
|
signal |
Retirer l'entrée du plan index.
Le fichier n'est jamais supprimé : le brouillon annule l'entrée JSON, pas la disparition d'une image — un fichier orphelin est moins grave qu'un travail perdu.
|
signal |
Réordonner : forward rapproche le plan du dessus de la liste.
| void hmi::PlanesPanel::retranslateUi | ( | const Localization & | loc | ) |
Applique la langue active (titres, libellés, entrées de listes déroulantes).
|
nodiscard |
|
signal |
Masquer/réafficher le plan index (aide d'édition, jamais persistée).
|
private |
Mode de cadrage du niveau, pour griser la case de parallaxe là où le moteur la neutralise.
|
private |
Vrai pendant un repeuplement : les signaux des contrôles sont alors ignorés, sinon repeupler la vue émettrait des mutations que personne n'a demandées.
|
private |