JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::PalettePanel Class Reference

Palette de tuiles en arbre (QTreeView) : catégories → sous-groupes → tuiles. More...

#include <PalettePanel.h>

Inheritance diagram for hmi::PalettePanel:

Signals

void tileSelected (core::TileType type)
 Émis quand l'utilisateur sélectionne une tuile (feuille) dans l'arbre.

Public Member Functions

 PalettePanel (QWidget *parent=nullptr)
 ~PalettePanel () override
 Hors-ligne : std::unique_ptr<Ui::PalettePanel> porte un type incomplet.
core::TileType selectedTile () const noexcept
void retranslateUi (const Localization &loc)
 Applique la langue active (reconstruit l'arbre avec les libellés traduits).
void setSkinSource (std::filesystem::path skinsDirectory, const SkinCatalog *catalog)
 Désigne de quoi afficher des vignettes fidèles au canevas (LOT-42).
void refreshThumbnails (RenderMode mode, const std::string &setName)
 Rafraîchit les vignettes de la palette (EX-EDIT-027).
void clearThumbnailCache ()
 Vide le cache d'images décodées (rechargement à chaud, LOT-43 TACHE-03).

Protected Member Functions

bool event (QEvent *event) override
 Régénère les vignettes lors d'un changement d'écran (QEvent::ScreenChangeInternal) : l'échelle d'affichage a pu changer (LOT-56 TACHE-05).

Private Member Functions

void buildModel ()
void onCurrentChanged (const QModelIndex &current)
QPixmap thumbnailFor (core::TileType type)
 Vignette d'un type dans le mode courant, décodée au premier besoin puis mise en cache.

Private Attributes

std::unique_ptr< Ui::PalettePanel > _ui
 Mise en page issue de PalettePanel.ui (LOT-68) : le C++ ne branche plus que le fonctionnel, conformément à la convention du projet.
QTreeView * _tree
QStandardItemModel * _model
core::TileType _selected = core::TileType::Solid
const Localization_loc = nullptr
 Catalogue courant (nul avant première retraduction).
std::filesystem::path _skinsDirectory
const SkinCatalog_catalog = nullptr
 Non possédé (propriété de GameViewport).
RenderMode _mode = DEFAULT_RENDER_MODE
std::string _skinSet
std::unordered_map< std::string, QPixmap > _decoded
 Fichier de skin → image décodée.

Detailed Description

Palette de tuiles en arbre (QTreeView) : catégories → sous-groupes → tuiles.

Alimentée par la taxonomie pure (hmi::tileTaxonomy), elle remplace l'accordéon « maison » (retiré au LOT-38) par un contrôle Qt natif (EX-EDIT-018, EX-IHM-010). Sélectionner une feuille met à jour le type de tuile actif (selectedTile) et émet tileSelected — consommé par l'outil de peinture (LOT-35 TACHE-03). Les en-têtes (catégories, sous-groupes) ne sont pas sélectionnables comme tuile.

Constructor & Destructor Documentation

◆ PalettePanel()

hmi::PalettePanel::PalettePanel ( QWidget * parent = nullptr)
explicit

◆ ~PalettePanel()

hmi::PalettePanel::~PalettePanel ( )
overridedefault

Hors-ligne : std::unique_ptr<Ui::PalettePanel> porte un type incomplet.

Member Function Documentation

◆ buildModel()

void hmi::PalettePanel::buildModel ( )
private

◆ clearThumbnailCache()

void hmi::PalettePanel::clearThumbnailCache ( )

Vide le cache d'images décodées (rechargement à chaud, LOT-43 TACHE-03).

Sans effet visible tant que refreshThumbnails n'est pas rappelé ensuite : un fichier modifié hors de l'application reste caché tant que le décodage n'est pas rejoué.

◆ event()

bool hmi::PalettePanel::event ( QEvent * event)
overrideprotected

Régénère les vignettes lors d'un changement d'écran (QEvent::ScreenChangeInternal) : l'échelle d'affichage a pu changer (LOT-56 TACHE-05).

◆ onCurrentChanged()

void hmi::PalettePanel::onCurrentChanged ( const QModelIndex & current)
private

◆ refreshThumbnails()

void hmi::PalettePanel::refreshThumbnails ( RenderMode mode,
const std::string & setName )

Rafraîchit les vignettes de la palette (EX-EDIT-027).

À appeler quand le mode de rendu bascule, quand le jeu de skins change, ou quand une assignation est modifiée : les trois événements qui rendent les vignettes obsolètes.

Parameters
modeMode de rendu courant.
setNameJeu de skins courant ; vide pour le jeu par défaut du catalogue.

◆ retranslateUi()

void hmi::PalettePanel::retranslateUi ( const Localization & loc)

Applique la langue active (reconstruit l'arbre avec les libellés traduits).

◆ selectedTile()

core::TileType hmi::PalettePanel::selectedTile ( ) const
inlinenodiscardnoexcept
Returns
Le type de tuile actuellement sélectionné (Solid par défaut).

◆ setSkinSource()

void hmi::PalettePanel::setSkinSource ( std::filesystem::path skinsDirectory,
const SkinCatalog * catalog )

Désigne de quoi afficher des vignettes fidèles au canevas (LOT-42).

Parameters
skinsDirectoryDossier des fichiers de skins, décodés côté CPU pour les vignettes.
catalogCatalogue des skins, non possédé.

◆ thumbnailFor()

QPixmap hmi::PalettePanel::thumbnailFor ( core::TileType type)
nodiscardprivate

Vignette d'un type dans le mode courant, décodée au premier besoin puis mise en cache.

◆ tileSelected

void hmi::PalettePanel::tileSelected ( core::TileType type)
signal

Émis quand l'utilisateur sélectionne une tuile (feuille) dans l'arbre.

Member Data Documentation

◆ _catalog

const SkinCatalog* hmi::PalettePanel::_catalog = nullptr
private

Non possédé (propriété de GameViewport).

◆ _decoded

std::unordered_map<std::string, QPixmap> hmi::PalettePanel::_decoded
private

Fichier de skin → image décodée.

La palette affiche une trentaine d'entrées : décoder à chaque redessin, ou pendant le défilement, coûterait bien plus que de les garder.

◆ _loc

const Localization* hmi::PalettePanel::_loc = nullptr
private

Catalogue courant (nul avant première retraduction).

◆ _mode

RenderMode hmi::PalettePanel::_mode = DEFAULT_RENDER_MODE
private

◆ _model

QStandardItemModel* hmi::PalettePanel::_model
private

◆ _selected

core::TileType hmi::PalettePanel::_selected = core::TileType::Solid
private

◆ _skinsDirectory

std::filesystem::path hmi::PalettePanel::_skinsDirectory
private

◆ _skinSet

std::string hmi::PalettePanel::_skinSet
private

◆ _tree

QTreeView* hmi::PalettePanel::_tree
private

◆ _ui

std::unique_ptr<Ui::PalettePanel> hmi::PalettePanel::_ui
private

Mise en page issue de PalettePanel.ui (LOT-68) : le C++ ne branche plus que le fonctionnel, conformément à la convention du projet.


The documentation for this class was generated from the following files:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Editor/PalettePanel.h
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Editor/PalettePanel.cpp