JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
PalettePanel.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 <QPixmap>
7#include <QWidget>
8#include <filesystem>
9#include <memory>
10#include <string>
11#include <unordered_map>
12
16
21
22class QEvent;
23class QModelIndex;
24class QStandardItemModel;
25class QTreeView;
26
27namespace Ui {
28class PalettePanel;
29}
30
31namespace hmi {
32
33class Localization;
34
44class PalettePanel : public QWidget {
45 Q_OBJECT
46
47public:
48 explicit PalettePanel(QWidget* parent = nullptr);
49
51 ~PalettePanel() override;
52
54 [[nodiscard]] core::TileType selectedTile() const noexcept {
55 return _selected;
56 }
57
59 void retranslateUi(const Localization& loc);
60
66 void setSkinSource(std::filesystem::path skinsDirectory, const SkinCatalog* catalog);
67
76 void refreshThumbnails(RenderMode mode, const std::string& setName);
77
85
86signals:
89
90protected:
93 bool event(QEvent* event) override;
94
95private:
96 void buildModel();
97 void onCurrentChanged(const QModelIndex& current);
99 [[nodiscard]] QPixmap thumbnailFor(core::TileType type);
100
103 std::unique_ptr<Ui::PalettePanel> _ui;
104 QTreeView* _tree;
105 QStandardItemModel* _model;
107 const Localization* _loc = nullptr;
108
109 std::filesystem::path _skinsDirectory;
110 const SkinCatalog* _catalog = nullptr;
112 std::string _skinSet;
115 std::unordered_map<std::string, QPixmap> _decoded;
116};
117
118} // namespace hmi
Mode de rendu Physique/Texture et sa persistance (EX-REN-046).
Association type de tuile → asset et mode de rendu, groupée en jeux nommés (EX-EDIT-042,...
Types de tuiles d'une carte et utilitaires associés.
Catalogue de traduction (i18n) : associe des clés stables à des chaînes selon la langue active,...
Definition Localization.h:29
std::filesystem::path _skinsDirectory
Definition PalettePanel.h:109
void refreshThumbnails(RenderMode mode, const std::string &setName)
Rafraîchit les vignettes de la palette (EX-EDIT-027).
Definition PalettePanel.cpp:138
std::unique_ptr< Ui::PalettePanel > _ui
Mise en page issue de PalettePanel.ui (LOT-68) : le C++ ne branche plus que le fonctionnel,...
Definition PalettePanel.h:103
core::TileType selectedTile() const noexcept
Definition PalettePanel.h:54
std::unordered_map< std::string, QPixmap > _decoded
Fichier de skin → image décodée.
Definition PalettePanel.h:115
void setSkinSource(std::filesystem::path skinsDirectory, const SkinCatalog *catalog)
Désigne de quoi afficher des vignettes fidèles au canevas (LOT-42).
Definition PalettePanel.cpp:133
QStandardItemModel * _model
Definition PalettePanel.h:105
void tileSelected(core::TileType type)
Émis quand l'utilisateur sélectionne une tuile (feuille) dans l'arbre.
void retranslateUi(const Localization &loc)
Applique la langue active (reconstruit l'arbre avec les libellés traduits).
Definition PalettePanel.cpp:126
bool event(QEvent *event) override
Régénère les vignettes lors d'un changement d'écran (QEvent::ScreenChangeInternal) : l'échelle d'affi...
Definition PalettePanel.cpp:216
QTreeView * _tree
Definition PalettePanel.h:104
QPixmap thumbnailFor(core::TileType type)
Vignette d'un type dans le mode courant, décodée au premier besoin puis mise en cache.
Definition PalettePanel.cpp:154
void clearThumbnailCache()
Vide le cache d'images décodées (rechargement à chaud, LOT-43 TACHE-03).
Definition PalettePanel.cpp:149
core::TileType _selected
Definition PalettePanel.h:106
RenderMode _mode
Definition PalettePanel.h:111
void onCurrentChanged(const QModelIndex &current)
Definition PalettePanel.cpp:228
~PalettePanel() override
Hors-ligne : std::unique_ptr<Ui::PalettePanel> porte un type incomplet.
const SkinCatalog * _catalog
Non possédé (propriété de GameViewport).
Definition PalettePanel.h:110
PalettePanel(QWidget *parent=nullptr)
Definition PalettePanel.cpp:87
std::string _skinSet
Definition PalettePanel.h:112
const Localization * _loc
Catalogue courant (nul avant première retraduction).
Definition PalettePanel.h:107
void buildModel()
Definition PalettePanel.cpp:105
Catalogue des jeux de skins : (jeu, type de tuile) → { asset, mode }.
Definition SkinCatalog.h:100
Definition AssetThumbnailView.h:26
TileType
Type d'une tuile de la grille d'une carte (EX-GP-001).
Definition TileType.h:32
@ Solid
Definition TileType.h:34
Definition AudioEngine.cpp:15
constexpr RenderMode DEFAULT_RENDER_MODE
Mode appliqué au premier lancement et à défaut de préférence exploitable.
Definition RenderMode.h:39
RenderMode
Mode de rendu de la scène : lecture directe des collisions, ou habillage.
Definition RenderMode.h:23