JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
PlanesPanel.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 <QWidget>
7#include <cstddef>
8#include <optional>
9
11#include "Core/Levels/Plane.h"
13
19
20namespace Ui {
21class PlanesPanel;
22}
23
24namespace core {
25class LevelDraft;
26}
27
28namespace hmi {
29
30class Localization;
31
51class PlanesPanel : public QWidget {
52 Q_OBJECT
53
54public:
55 explicit PlanesPanel(QWidget* parent = nullptr);
56 ~PlanesPanel() override;
57
64 void refresh(const core::LevelDraft& draft, std::optional<std::size_t> selected,
65 const PlaneVisibility& visibility);
66
68 [[nodiscard]] std::optional<std::size_t> selectedIndex() const;
69
71 void retranslateUi(const Localization& loc);
72
73signals:
75 void planeSelected(std::optional<std::size_t> index);
81 void removeRequested(std::size_t index);
83 void paintRequested(std::size_t index);
85 void reorderRequested(std::size_t index, bool forward);
87 void depthChangeRequested(std::size_t index, core::PlaneDepth depth);
89 void densityChangeRequested(std::size_t index, int pixelsPerUnit);
91 void parallaxChangeRequested(std::size_t index, float parallaxX, float parallaxY);
93 void opacityChangeRequested(std::size_t index, float opacity);
95 void levelParallaxToggled(bool enabled);
97 void visibilityToggled(std::size_t index, bool visible);
99 void isolateToggled(std::size_t index, bool isolate);
100
101private:
103 void rebuildTree(const core::LevelDraft& draft, std::optional<std::size_t> selected,
104 const PlaneVisibility& visibility);
106 void refreshSettings(const core::LevelDraft& draft, std::optional<std::size_t> selected);
108 void connectControls();
109
110 Ui::PlanesPanel* _ui;
113 bool _refreshing = false;
116};
117
118} // namespace hmi
Mode de cadrage de caméra porté par le niveau (EX-LVL-006, EX-REN-016, LOT-64).
Visibilité par rang de plan dans l'éditeur (EX-DEC-045, LOT-69 TACHE-05).
Plan pictural d'un niveau : image couvrant le niveau entier (EX-DEC-040, LOT-69).
Niveau mutable en cours d'édition, distinct de Level (immuable, LOT-07).
Definition LevelDraft.h:43
Catalogue de traduction (i18n) : associe des clés stables à des chaînes selon la langue active,...
Definition Localization.h:29
Jeu de visibilités des plans picturaux d'un niveau, adressé par rang.
Definition PlaneVisibility.h:39
void addRequested()
Créer un plan : l'appelant crée le PNG et ajoute l'entrée au brouillon.
void densityChangeRequested(std::size_t index, int pixelsPerUnit)
Changer la densité du plan index : l'appelant rééchantillonne l'image et la réécrit.
bool _refreshing
Vrai pendant un repeuplement : les signaux des contrôles sont alors ignorés, sinon repeupler la vue é...
Definition PlanesPanel.h:113
void reorderRequested(std::size_t index, bool forward)
Réordonner : forward rapproche le plan du dessus de la liste.
void levelParallaxToggled(bool enabled)
Changer le drapeau de parallaxe du niveau.
Ui::PlanesPanel * _ui
Definition PlanesPanel.h:110
void isolateToggled(std::size_t index, bool isolate)
Isoler le plan index, ou tout réafficher si isolate est faux.
void parallaxChangeRequested(std::size_t index, float parallaxX, float parallaxY)
Changer les facteurs de parallaxe du plan index.
PlanesPanel(QWidget *parent=nullptr)
Definition PlanesPanel.cpp:32
void paintRequested(std::size_t index)
Ouvrir le plan index dans le mode création.
void opacityChangeRequested(std::size_t index, float opacity)
Changer l'opacité du plan index.
~PlanesPanel() override
Definition PlanesPanel.cpp:43
core::CameraFramingMode _framingMode
Mode de cadrage du niveau, pour griser la case de parallaxe là où le moteur la neutralise.
Definition PlanesPanel.h:115
void planeSelected(std::optional< std::size_t > index)
Un plan a été sélectionné dans la liste (ou désélectionné).
void visibilityToggled(std::size_t index, bool visible)
Masquer/réafficher le plan index (aide d'édition, jamais persistée).
void removeRequested(std::size_t index)
Retirer l'entrée du plan index.
std::optional< std::size_t > selectedIndex() const
Definition PlanesPanel.cpp:47
void depthChangeRequested(std::size_t index, core::PlaneDepth depth)
Changer la profondeur du plan index.
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.
Definition PlanesPanel.cpp:189
void connectControls()
Branche les signaux des contrôles (une seule fois, à la construction).
Definition PlanesPanel.cpp:59
void retranslateUi(const Localization &loc)
Applique la langue active (titres, libellés, entrées de listes déroulantes).
Definition PlanesPanel.cpp:222
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).
Definition PlanesPanel.cpp:170
void refresh(const core::LevelDraft &draft, std::optional< std::size_t > selected, const PlaneVisibility &visibility)
Repeuple le panneau depuis draft.
Definition PlanesPanel.cpp:152
Definition AssetThumbnailView.h:26
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
CameraFramingMode
Mode de cadrage de caméra d'un niveau (EX-REN-016) : décision de conception, pas une règle déduite de...
Definition CameraFraming.h:22
@ WholeLevel
Le niveau entier tient dans le cadre (EX-REN-013).
Definition CameraFraming.h:23
PlaneDepth
Position d'un plan dans l'ordonnancement de rendu, relativement au personnage (EX-DEC-042).
Definition Plane.h:28
Definition AudioEngine.cpp:15