JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
EditorActions.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 <QObject>
7#include <array>
8
11
12class QAction;
13class QActionGroup;
14class QToolBar;
15
20
21namespace hmi {
22
24class Localization;
25struct DesignTokens;
26
35class EditorActions : public QObject {
36 Q_OBJECT
37
38public:
41 explicit EditorActions(const DesignTokens& tokens, QObject* parent = nullptr);
42
44 [[nodiscard]] QAction* action(IconId id) const;
46 [[nodiscard]] QAction* toolAction(EditorTool tool) const;
48 [[nodiscard]] QActionGroup* toolGroup() const noexcept {
49 return _toolGroup;
50 }
51
53 [[nodiscard]] QAction* pixelToolAction(PixelTool tool) const;
56 [[nodiscard]] QActionGroup* pixelToolGroup() const noexcept {
57 return _pixelToolGroup;
58 }
59
63 void populateToolBar(QToolBar& toolBar) const;
66 void populatePixelToolBar(QToolBar& toolBar) const;
67
70 void retranslateUi(const Localization& loc);
71
74 void setActiveTool(EditorTool tool) const;
77 void setActivePixelTool(PixelTool tool) const;
78
82 void setEditingCommandsEnabled(bool enabled) const;
83
86 void refreshIcons(const DesignTokens& tokens);
87
99 void applyShortcuts(const EditorKeyBindings& bindings, const Localization& loc);
100
101private:
102 std::array<QAction*, EDITOR_ACTION_CATALOG_COUNT> _actions{};
103 QActionGroup* _toolGroup;
104 QActionGroup*
106};
107
108} // namespace hmi
Catalogue des actions de l'éditeur : outils et commandes principales (LOT-56 TACHE-04,...
Outil actif du canevas pixel art (LOT-54 TACHE-03/TACHE-04).
QAction * action(IconId id) const
Definition EditorActions.cpp:67
QAction * pixelToolAction(PixelTool tool) const
Definition EditorActions.cpp:82
void applyShortcuts(const EditorKeyBindings &bindings, const Localization &loc)
Fait refléter bindings sur le raccourci effectif de chaque commande concernée (hmi::keyBindingIconCat...
Definition EditorActions.cpp:183
void populateToolBar(QToolBar &toolBar) const
Ajoute les actions d'outils de niveau et les commandes principales à toolBar, dans l'ordre du catalog...
Definition EditorActions.cpp:86
QActionGroup * toolGroup() const noexcept
Definition EditorActions.h:48
void setEditingCommandsEnabled(bool enabled) const
Active/désactive les six commandes qui n'ont de sens qu'en édition (Enregistrer, Essayer,...
Definition EditorActions.cpp:161
void retranslateUi(const Localization &loc)
Applique la langue active : libellé de chaque action, et infobulle incluant son raccourci (jamais sai...
Definition EditorActions.cpp:126
QActionGroup * pixelToolGroup() const noexcept
Definition EditorActions.h:56
void refreshIcons(const DesignTokens &tokens)
Reconstruit les icônes depuis un nouveau jeu de jetons (bascule de thème, LOT-56 TACHE-06) : sans quo...
Definition EditorActions.cpp:175
void setActivePixelTool(PixelTool tool) const
Coche l'action de l'outil de canevas pixel art actif sans émettre triggered — même garde que setActiv...
Definition EditorActions.cpp:152
std::array< QAction *, EDITOR_ACTION_CATALOG_COUNT > _actions
Definition EditorActions.h:102
QActionGroup * _toolGroup
Definition EditorActions.h:103
QAction * toolAction(EditorTool tool) const
Definition EditorActions.cpp:78
EditorActions(const DesignTokens &tokens, QObject *parent=nullptr)
Definition EditorActions.cpp:41
void populatePixelToolBar(QToolBar &toolBar) const
Ajoute les quatre actions d'outil de canevas pixel art à toolBar (LOT-54 TACHE-04) — barre d'outils d...
Definition EditorActions.cpp:108
QActionGroup * _pixelToolGroup
Groupe exclusif des outils de canevas, distinct de _toolGroup.
Definition EditorActions.h:105
void setActiveTool(EditorTool tool) const
Coche l'action de l'outil actif sans émettre triggered : resynchronisation depuis la touche dédiée de...
Definition EditorActions.cpp:143
Association action d'éditeur -> touche, avec persistance JSON (EX-CTRL-012, LOT-29).
Definition EditorKeyBindings.h:53
Catalogue de traduction (i18n) : associe des clés stables à des chaînes selon la langue active,...
Definition Localization.h:29
Definition AudioEngine.cpp:15
EditorTool
Outil actif dans la grille de l'éditeur, changé via Tab ou la barre d'outils (hmi::EditorActions).
Definition EditorTool.h:35
PixelTool
Outil actif du canevas pixel art — détermine ce que produisent les gestes de souris (hmi::PixelCanvas...
Definition PixelTool.h:22
IconId
Identifiant d'une icône : un par outil d'édition et par commande principale.
Definition IconGeometry.h:21
Jeu complet de jetons de design d'une portée (identité invariante ou châssis variable).
Definition DesignTokens.h:139