|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Fenêtre principale de l'application Qt : poste de travail d'éditeur à panneaux dockables autour du viewport Direct3D 11. More...
#include <MainWindow.h>
Public Member Functions | |
| MainWindow (core::MemoryLogSink *sessionLog=nullptr) | |
| ~MainWindow () override | |
Protected Member Functions | |
| void | closeEvent (QCloseEvent *event) override |
| Sauvegarde la disposition avant fermeture. | |
| void | resizeEvent (QResizeEvent *event) override |
| Repris de QMainWindow. | |
| void | moveEvent (QMoveEvent *event) override |
| bool | eventFilter (QObject *watched, QEvent *event) override |
| Suit la taille du viewport pour les recouvrements qui s'y superposent (pause, fin de niveau) : enfants ordinaires depuis le LOT-69 TACHE-02, ils se redimensionnent avec leur parent plutôt que d'être repositionnés en coordonnées écran. | |
Private Member Functions | |
| void | applyWorkspace (EditorWorkspace workspace) |
Applique l'espace de travail workspace (LOT-68, EX-IHM-073) : masque les panneaux de l'autre espace, bascule barre d'outils et menu, restaure la disposition propre à cet espace. | |
| void | switchToWorkspace (EditorWorkspace workspace) |
Bascule sur workspace s'il n'est pas déjà actif, en synchronisant le sélecteur du menu sans réémettre. | |
| QAction * | workspaceSelector (EditorWorkspace workspace) const |
| std::array< std::pair< QDockWidget *, hmi::PanelId >, hmi::PANEL_COUNT > | workspacePanels () const |
| void | connectPlanesPanel () |
| Branche le panneau « Plans » (LOT-69 TACHE-08) : il demande, le viewport applique. | |
| std::filesystem::path | planesDirectory () const |
| void | createPlane () |
| Crée un plan : un PNG entièrement transparent aux dimensions exactes, puis l'entrée dans le brouillon. | |
| void | changePlaneDensity (std::size_t index, int pixelsPerUnit) |
| Change la densité d'un plan : rééchantillonne l'image puis met à jour la déclaration, sans quoi le fichier et le format diraient deux choses différentes. | |
| void | buildUi () |
| Crée les panneaux (contenu des docks du .ui) et branche les actions de la barre de menus. | |
| void | restoreLayout () |
| void | saveLayout () |
| void | openResizeDialog () |
| Ouvre la boîte de dialogue de redimensionnement du niveau (avec confirmation si destructeur). | |
| void | openShortcutsDialog () |
| Ouvre l'aperçu des raccourcis (ShortcutsDialog.ui). | |
| void | retranslateUi () |
| Applique la langue active à tous les textes de l'IHM (fenêtre, menus, docks, panneaux). | |
| void | refreshStatusHelp () |
| Recalcule et réaffiche la barre d'état (zones permanentes + aide contextuelle) depuis l'état courant du viewport (LOT-57 TACHE-01, hmi::editorStatusLines) — seule voie de mise à jour, appelée par tout changement pertinent (outil, survol, zoom, brouillon) ainsi qu'à l'expiration d'un message transitoire, pour la restaurer. | |
| void | showTransientStatusMessage (const QString &message, int timeoutMs) |
Affiche message pour timeoutMs dans la barre d'état, puis restaure l'aide contextuelle (refreshStatusHelp). | |
| void | applyPanelFocus (hmi::EditorTool tool) |
Met en avant le panneau associé à tool (hmi::panelForTool), si le réglage est actif et que l'utilisateur n'a rien imposé lui-même (LOT-57 TACHE-02) — jamais un masquage, une simple suggestion de premier plan parmi les onglets regroupés. | |
| void | applyPixelPanelFocus (hmi::PixelTool tool) |
| Équivalent pour les outils du canevas pixel art (hmi::panelForPixelTool, LOT-54 TACHE-04) — même garde, même règle de non-masquage. | |
| void | raisePanel (hmi::PanelId panel) |
Met en avant panel (résolution PanelId -> QDockWidget*), sans jamais voler le focus clavier — factorisé entre applyPanelFocus et applyPixelPanelFocus. | |
| void | updateActiveEditContext (QWidget *focused) |
| Réassigne le contexte d'édition actif (_editContext) et le contexte de la barre d'état selon le widget qui vient de recevoir le focus clavier (LOT-54 TACHE-04, EX-IHM-062) : le canevas pixel art si le focus y entre, le niveau sinon. | |
| bool | confirmDiscardPixelChanges () |
| void | openPixelAssetOpenDialog () |
| Ouvre un asset existant choisi par l'utilisateur (bibliothèque Assets/), après le garde-fou de perte de travail. | |
| void | openPixelAssetCreateDialog () |
| Crée un nouvel asset à une taille choisie parmi celles admises par le contrat de sa famille (hmi::validAssetSizes), après le garde-fou de perte de travail. | |
| void | savePixelAsset (bool saveAs) |
| Enregistre l'asset ouvert. | |
| std::string | pixelAssetCacheKey () const |
| Nom logique de l'asset ouvert, relatif à Assets/ (ex. | |
| void | updateLivePreview () |
| Écrit l'image en cours sur _pixelAssetPath et invalide son entrée de TextureCache, pour que le niveau affiché reflète l'édition en cours — sans effet tant qu'aucun chemin n'est associé (asset pas encore enregistré une première fois, TACHE-05). | |
| void | loadPlaneIntoCanvas (std::size_t index) |
Charge le PNG du plan index dans _pixelCanvas, avec ses repères (pelure d'oignon des tuiles sous le plan, plans voisins aplatis dessous et dessus, grille de tuiles). | |
| void | savePlaneImage () |
| Écrit l'image du canevas dans le PNG du plan ouvert (Ctrl+S dans l'espace « Plans »). | |
| void | closePlaneInCanvas () |
| Vide le canevas de son plan et retire les repères — l'atelier pixel art retrouve alors son comportement du LOT-54, sans repère hérité du mode création. | |
| void | refreshPlaneReferences () |
| Reconstruit les repères du plan ouvert depuis le brouillon courant : appelé après toute mutation qui les périme (ordre, densité, opacité, visibilité, taille du niveau). | |
| bool | confirmDiscardPlaneChanges () |
| std::filesystem::path | planeFilePath (std::size_t index) const |
| void | openPixelColorPicker () |
| Ouvre un sélecteur de couleur (QColorDialog) pour choisir librement la couleur courante du canevas — seul moyen d'atteindre une couleur absente à la fois de l'image ouverte (pipette) et de la palette de projet (pastilles). | |
| void | updatePixelColorButtonIcon (std::uint32_t color) |
| Met à jour le témoin de couleur de la barre d'outils du canevas (pastille de _pixelColorButton). | |
| void | syncPaletteToCanvas () |
| Recopie les couleurs de _pixelPalette vers _pixelCanvas (mode contraint) — à appeler après toute mutation qui change les couleurs ou leur ordre (l'ordre affecte le départage à distance égale, hmi::nearestPaletteColor). | |
| void | savePixelPalette () |
| Enregistre _pixelPalette dans Assets/palettes.json, journalise un échec éventuel. | |
| void | changeLanguage (const QString &code) |
| Change la langue active (recharge le catalogue, persiste, retraduit tout). | |
| void | saveSessionLogs () |
| Enregistre les journaux de session accumulés dans un fichier horodaté. | |
| QString | text (const char *key) const |
| Raccourci : texte localisé d'une clé, en QString. | |
| void | showEditor () |
| Affiche l'éditeur (viewport + docks + barre de menu). | |
| void | setDocksVisible (bool visible) |
| Montre/masque tous les panneaux dockables. | |
| void | playInterfaceSound (GameEvent event) |
Joue le son associé à event (hmi::SoundTriggers), sans effet si aucun son ne lui est associé (LOT-60 TACHE-03) – point d'appel unique pour tous les sons d'interface. | |
Static Private Member Functions | |
| static QString | layoutKeyFor (EditorWorkspace workspace) |
| static QString | workspaceSettingsName (EditorWorkspace workspace) |
| static EditorWorkspace | workspaceFromSettingsName (const QString &name) |
Private Attributes | |
| std::unique_ptr< Ui::EditorMainWindow > | _ui |
| Mise en page (MainWindow.ui : menubar + docks). | |
| GameViewport * | _viewport |
| Surface de rendu QRhi, et widget central depuis le LOT-86. | |
| EditContextTarget * | _editContext = nullptr |
| Contexte d'édition actif, cible d'Annuler/Refaire/Copier/Coller (LOT-57 TACHE-04) :
_viewport (niveau) ou _pixelCanvas (atelier pixel art, LOT-54 TACHE-04), selon le widget qui a le focus clavier (updateActiveEditContext) — le dispatch lui-même ne change jamais. | |
| PalettePanel * | _palette |
| Arbre de sélection du type de tuile (contenu du dock Palette). | |
| PlanesPanel * | _planes |
| Liste des plans picturaux (LOT-69, contenu du dock Plans). | |
| LevelBrowserPanel * | _levels |
| Liste/gestion des fichiers de niveaux (contenu du dock Niveaux). | |
| LinkPanel * | _links |
| Placement/inspection de décors (dock Décors, LOT-57 amendement) — contenait déjà tout ce qui concerne les décors (ToolPanel, LOT-56 TACHE-04) avant d'y accueillir aussi l'inspecteur déplacé du panneau Textures. | |
| TexturePanel * | _textures |
| Habillage : jeu de skins et assignations (dock Textures, LOT-42). | |
| PixelCanvas * | _pixelCanvas |
| Réglages de gameplay de l'élément sélectionné et du tableau (dock Propriétés, LOT-67). | |
| PixelHistoryPanel * | _pixelHistoryPanel |
| Historique visuel de l'atelier (dock, LOT-54 TACHE-04). | |
| PixelPalettePanel * | _pixelPalettePanel |
| Édition de la palette de projet (dock, LOT-54 TACHE-07). | |
| PixelPalette | _pixelPalette |
| Palette de projet, chargée/enregistrée dans Assets/palettes.json. | |
| std::filesystem::path | _pixelAssetPath |
| Chemin complet du fichier de l'asset ouvert dans l'atelier, vide si aucun ou pas encore enregistré (LOT-54 TACHE-05) — PixelCanvas::assetName() n'en garde que le nom de fichier, pour l'affichage ; ce chemin sert à savePixelAsset pour retrouver le dossier. | |
| std::optional< std::size_t > | _paintedPlane |
| Rang du plan actuellement peint dans _pixelCanvas (mode création, LOT-69 TACHE-08) ; absent dès que le canevas sert à l'atelier pixel art. | |
| EditorActions * | _actions |
| Outils et commandes principales, barre d'outils (LOT-56 TACHE-04). | |
| bool | _closing = false |
| Espace de travail actif (LOT-68). | |
| EditorWorkspace | _workspace = EditorWorkspace::Level |
| QToolBar * | _toolBar |
| Barre d'outils de l'éditeur, alimentée par _actions. | |
| QToolBar * | _pixelToolBar |
| Barre d'outils du canevas pixel art (LOT-54 TACHE-04). | |
| QToolButton * | _pixelColorButton |
| Témoin + sélecteur de couleur courante (canevas). | |
| QMenu * | _pixelMenu |
| Menu « Atelier » : ouvrir/créer/enregistrer (LOT-54 TACHE-05). | |
| QMenu * | _themeMenu |
| Sous-menu Affichage > Thème (LOT-56 TACHE-06). | |
| QAction * | _themeSystemAction |
| QAction * | _themeLightAction |
| QAction * | _themeDarkAction |
| QByteArray | _defaultState |
| Disposition par défaut (pour « Réinitialiser la disposition »). | |
| QAction * | _actFollowActiveTool = nullptr |
| Réglage persisté (menu Affichage). | |
| bool | _userPickedTab = false |
| true dès que l'utilisateur a choisi un onglet ou déplacé un panneau lui-même : la mise en avant automatique cesse alors pour la session (jamais persisté, cf. | |
| std::array< QAction *, 7 > | _layerVisibilityActions {} |
| QAction * | _actShowAllLayers = nullptr |
| bool | _suppressPanelFocusTracking = false |
| true pendant un changement de visibilité provoqué par le code (mise en avant automatique, bascule de mode, restauration de disposition) : évite qu'un tel changement soit pris pour un choix explicite de l'utilisateur (QDockWidget::visibilityChanged). | |
| QLabel * | _statusLevel = nullptr |
| QLabel * | _statusDirty = nullptr |
| QLabel * | _statusTool = nullptr |
| QLabel * | _statusHover = nullptr |
| QLabel * | _statusZoom = nullptr |
| QLabel * | _statusColor = nullptr |
| Couleur courante de l'atelier pixel art (LOT-54 TACHE-04) ; vide hors contexte d'atelier. | |
| QLabel * | _statusCameraFraming = nullptr |
| Mode de cadrage de caméra du niveau courant (EX-EDIT-028, LOT-64) ; vide hors contexte de niveau. | |
| QTimer * | _statusMessageTimer = nullptr |
| Restaure l'aide contextuelle à l'expiration d'un message transitoire (showTransientStatusMessage). | |
| Localization | _loc |
| Catalogue de traduction (i18n), source de tous les textes. | |
| hmi::AudioEngine | _audio |
| Moteur audio (LOT-60) : ouvert au démarrage (EX-REN-047), dégrade en silence sans périphérique (EX-NFR-040). | |
| hmi::SoundCatalog | _sounds |
| Catalogue de sons (LOT-60 TACHE-02), lu une fois au démarrage depuis Audio/sounds.json et entièrement préchargé dans _audio. | |
| core::MemoryLogSink * | _sessionLog |
| Sink mémoire des logs (nul en Release). | |
Fenêtre principale de l'application Qt : poste de travail d'éditeur à panneaux dockables autour du viewport Direct3D 11.
Le widget central est le viewport (GameViewport, LOT-34), non dockable. Autour, des QDockWidget (Palette, Outils, Statut) déplaçables, redimensionnables, détachables (EX-IHM-010). La disposition (géométrie + agencement des docks) est persistée hors code via QSettings (EX-IHM-011) : restaurée au lancement, sauvegardée à la fermeture, et réinitialisable à une disposition par défaut (menu « Affichage »).
À cette tâche (LOT-35 TACHE-01), les panneaux sont des coquilles : leur contenu (arbre de palette, barre d'outils, barre d'état) est rempli aux tâches suivantes.
|
explicit |
| sessionLog | Sink mémoire des logs (build développement) pour « Enregistrer les journaux » ; nullptr en Release (bouton indisponible). |
< Seule implémentation aujourd'hui (LOT-57 TACHE-04).
|
overridedefault |
|
private |
Met en avant le panneau associé à tool (hmi::panelForTool), si le réglage est actif et que l'utilisateur n'a rien imposé lui-même (LOT-57 TACHE-02) — jamais un masquage, une simple suggestion de premier plan parmi les onglets regroupés.
|
private |
Équivalent pour les outils du canevas pixel art (hmi::panelForPixelTool, LOT-54 TACHE-04) — même garde, même règle de non-masquage.
|
private |
Applique l'espace de travail workspace (LOT-68, EX-IHM-073) : masque les panneaux de l'autre espace, bascule barre d'outils et menu, restaure la disposition propre à cet espace.
N'enregistre pas la disposition qu'on quitte — c'est switchToWorkspace qui sait qu'on quitte vraiment un espace, et l'initialisation n'a rien à enregistrer.
|
private |
Crée les panneaux (contenu des docks du .ui) et branche les actions de la barre de menus.
|
private |
Change la langue active (recharge le catalogue, persiste, retraduit tout).
|
private |
Change la densité d'un plan : rééchantillonne l'image puis met à jour la déclaration, sans quoi le fichier et le format diraient deux choses différentes.
|
overrideprotected |
Sauvegarde la disposition avant fermeture.
|
private |
Vide le canevas de son plan et retire les repères — l'atelier pixel art retrouve alors son comportement du LOT-54, sans repère hérité du mode création.
|
nodiscardprivate |
|
nodiscardprivate |
|
private |
Branche le panneau « Plans » (LOT-69 TACHE-08) : il demande, le viewport applique.
|
private |
Crée un plan : un PNG entièrement transparent aux dimensions exactes, puis l'entrée dans le brouillon.
Les deux vont ensemble — une entrée sans fichier afficherait un damier.
|
overrideprotected |
Suit la taille du viewport pour les recouvrements qui s'y superposent (pause, fin de niveau) : enfants ordinaires depuis le LOT-69 TACHE-02, ils se redimensionnent avec leur parent plutôt que d'être repositionnés en coordonnées écran.
|
staticnodiscardprivate |
workspace. Chaque espace persiste la sienne : une disposition unique rouvrirait les docks de l'atelier par-dessus l'édition.
|
private |
Charge le PNG du plan index dans _pixelCanvas, avec ses repères (pelure d'oignon des tuiles sous le plan, plans voisins aplatis dessous et dessus, grille de tuiles).
Sans effet — et le canevas est refermé — si le rang n'existe pas. Le garde-fou de perte de travail est à la charge de l'appelant : cette méthode écrase le contenu du canevas.
|
overrideprotected |
|
private |
Crée un nouvel asset à une taille choisie parmi celles admises par le contrat de sa famille (hmi::validAssetSizes), après le garde-fou de perte de travail.
|
private |
Ouvre un asset existant choisi par l'utilisateur (bibliothèque Assets/), après le garde-fou de perte de travail.
|
private |
Ouvre un sélecteur de couleur (QColorDialog) pour choisir librement la couleur courante du canevas — seul moyen d'atteindre une couleur absente à la fois de l'image ouverte (pipette) et de la palette de projet (pastilles).
|
private |
Ouvre la boîte de dialogue de redimensionnement du niveau (avec confirmation si destructeur).
|
private |
Ouvre l'aperçu des raccourcis (ShortcutsDialog.ui).
Le tableau est rempli depuis les raccourcis effectifs des actions, jamais un texte figé : il reste juste après un remappage.
|
nodiscardprivate |
Nom logique de l'asset ouvert, relatif à Assets/ (ex.
"Skins/mur.png") : la clé sous laquelle hmi::TextureCache/GameViewport::invalidateAsset connaissent cet asset — un simple nom de fichier ne suffit pas, le cache est indexé par chemin complet (préfixe de sous-dossier compris).
|
nodiscardprivate |
index, vide si le rang n'existe pas.
|
nodiscardprivate |
|
private |
Joue le son associé à event (hmi::SoundTriggers), sans effet si aucun son ne lui est associé (LOT-60 TACHE-03) – point d'appel unique pour tous les sons d'interface.
|
private |
Met en avant panel (résolution PanelId -> QDockWidget*), sans jamais voler le focus clavier — factorisé entre applyPanelFocus et applyPixelPanelFocus.
|
private |
Reconstruit les repères du plan ouvert depuis le brouillon courant : appelé après toute mutation qui les périme (ordre, densité, opacité, visibilité, taille du niveau).
|
private |
Recalcule et réaffiche la barre d'état (zones permanentes + aide contextuelle) depuis l'état courant du viewport (LOT-57 TACHE-01, hmi::editorStatusLines) — seule voie de mise à jour, appelée par tout changement pertinent (outil, survol, zoom, brouillon) ainsi qu'à l'expiration d'un message transitoire, pour la restaurer.
|
overrideprotected |
Repris de QMainWindow.
Il resynchronisait la géométrie des recouvrements d'écran, qui appartiennent au jeu depuis le LOT-86 ; il ne reste que le comportement de base.
|
private |
|
private |
Applique la langue active à tous les textes de l'IHM (fenêtre, menus, docks, panneaux).
|
private |
|
private |
Enregistre l'asset ouvert.
saveAs force le choix d'un nouveau chemin (copie), même sans chemin existant ; sans saveAs, réutilise le chemin d'ouverture s'il y en a un. Un écrasement d'asset référencé demande confirmation, nommant les références (LOT-43).
|
private |
Enregistre _pixelPalette dans Assets/palettes.json, journalise un échec éventuel.
|
private |
Écrit l'image du canevas dans le PNG du plan ouvert (Ctrl+S dans l'espace « Plans »).
Sans effet si aucun plan n'y est chargé.
|
private |
Enregistre les journaux de session accumulés dans un fichier horodaté.
|
private |
Montre/masque tous les panneaux dockables.
|
private |
Affiche l'éditeur (viewport + docks + barre de menu).
|
private |
Affiche message pour timeoutMs dans la barre d'état, puis restaure l'aide contextuelle (refreshStatusHelp).
La barre d'état n'est jamais laissée vide : à l'expiration d'un message transitoire, elle reprend l'aide du contexte courant. C'est pourquoi le minuteur est porté ici et non délégué à QStatusBar::showMessage, dont l'expiration ne rappelle rien.
|
private |
Bascule sur workspace s'il n'est pas déjà actif, en synchronisant le sélecteur du menu sans réémettre.
Point d'entrée unique : applyWorkspace applique, celle-ci décide.
|
private |
Recopie les couleurs de _pixelPalette vers _pixelCanvas (mode contraint) — à appeler après toute mutation qui change les couleurs ou leur ordre (l'ordre affecte le départage à distance égale, hmi::nearestPaletteColor).
|
nodiscardprivate |
Raccourci : texte localisé d'une clé, en QString.
|
private |
Réassigne le contexte d'édition actif (_editContext) et le contexte de la barre d'état selon le widget qui vient de recevoir le focus clavier (LOT-54 TACHE-04, EX-IHM-062) : le canevas pixel art si le focus y entre, le niveau sinon.
|
private |
Écrit l'image en cours sur _pixelAssetPath et invalide son entrée de TextureCache, pour que le niveau affiché reflète l'édition en cours — sans effet tant qu'aucun chemin n'est associé (asset pas encore enregistré une première fois, TACHE-05).
|
private |
Met à jour le témoin de couleur de la barre d'outils du canevas (pastille de _pixelColorButton).
|
staticnodiscardprivate |
name ; l'édition de niveau si le nom est inconnu (y compris les anciens 0/1 du LOT-68).
|
nodiscardprivate |
|
nodiscardprivate |
workspace.
|
staticnodiscardprivate |
workspace est persisté. Un nom, jamais l'indice de l'énumération : le LOT-68 écrivait 0/1, et insérer « Plans » entre les deux aurait fait rouvrir en mode création l'éditeur laissé dans l'atelier.
|
private |
Réglage persisté (menu Affichage).
|
private |
Outils et commandes principales, barre d'outils (LOT-56 TACHE-04).
|
private |
|
private |
Moteur audio (LOT-60) : ouvert au démarrage (EX-REN-047), dégrade en silence sans périphérique (EX-NFR-040).
Partagé avec _viewport (setAudioEngine), qui déclenche les sons de jeu ; les sons d'interface se jouent directement d'ici (playInterfaceSound).
|
private |
Espace de travail actif (LOT-68).
Persisté : on rouvre l'éditeur là où on l'a laissé. Vrai dès que la fenêtre a reçu sa demande de fermeture. Coupe les traitements différés qui toucheraient au thème ou à la disposition pendant le démontage.
|
private |
Disposition par défaut (pour « Réinitialiser la disposition »).
|
private |
Contexte d'édition actif, cible d'Annuler/Refaire/Copier/Coller (LOT-57 TACHE-04) : _viewport (niveau) ou _pixelCanvas (atelier pixel art, LOT-54 TACHE-04), selon le widget qui a le focus clavier (updateActiveEditContext) — le dispatch lui-même ne change jamais.
|
private |
|
private |
Liste/gestion des fichiers de niveaux (contenu du dock Niveaux).
|
private |
Placement/inspection de décors (dock Décors, LOT-57 amendement) — contenait déjà tout ce qui concerne les décors (ToolPanel, LOT-56 TACHE-04) avant d'y accueillir aussi l'inspecteur déplacé du panneau Textures.
La barre d'outils reste hors de ce panneau. Liste/gestion des liaisons de mécanismes (dock Liens, LOT-37).
|
private |
Catalogue de traduction (i18n), source de tous les textes.
|
private |
Rang du plan actuellement peint dans _pixelCanvas (mode création, LOT-69 TACHE-08) ; absent dès que le canevas sert à l'atelier pixel art.
C'est ce qui distingue les deux usages du même canevas : où Ctrl+S écrit, quels repères afficher, et ce que la barre d'état annonce. Un plan et un asset n'y sont jamais ouverts en même temps.
|
private |
Arbre de sélection du type de tuile (contenu du dock Palette).
|
private |
Chemin complet du fichier de l'asset ouvert dans l'atelier, vide si aucun ou pas encore enregistré (LOT-54 TACHE-05) — PixelCanvas::assetName() n'en garde que le nom de fichier, pour l'affichage ; ce chemin sert à savePixelAsset pour retrouver le dossier.
|
private |
Réglages de gameplay de l'élément sélectionné et du tableau (dock Propriétés, LOT-67).
Canevas de l'atelier pixel art (dock Atelier, LOT-54 TACHE-04) : seconde implémentation de EditContextTarget, cible d'Annuler/Refaire/Copier/Coller quand elle a le focus clavier.
|
private |
Témoin + sélecteur de couleur courante (canevas).
|
private |
Historique visuel de l'atelier (dock, LOT-54 TACHE-04).
|
private |
Menu « Atelier » : ouvrir/créer/enregistrer (LOT-54 TACHE-05).
|
private |
Palette de projet, chargée/enregistrée dans Assets/palettes.json.
|
private |
Édition de la palette de projet (dock, LOT-54 TACHE-07).
|
private |
Barre d'outils du canevas pixel art (LOT-54 TACHE-04).
|
private |
Liste des plans picturaux (LOT-69, contenu du dock Plans).
|
private |
Sink mémoire des logs (nul en Release).
|
private |
Catalogue de sons (LOT-60 TACHE-02), lu une fois au démarrage depuis Audio/sounds.json et entièrement préchargé dans _audio.
|
private |
Mode de cadrage de caméra du niveau courant (EX-EDIT-028, LOT-64) ; vide hors contexte de niveau.
|
private |
Couleur courante de l'atelier pixel art (LOT-54 TACHE-04) ; vide hors contexte d'atelier.
|
private |
|
private |
|
private |
|
private |
Restaure l'aide contextuelle à l'expiration d'un message transitoire (showTransientStatusMessage).
|
private |
|
private |
|
private |
true pendant un changement de visibilité provoqué par le code (mise en avant automatique, bascule de mode, restauration de disposition) : évite qu'un tel changement soit pris pour un choix explicite de l'utilisateur (QDockWidget::visibilityChanged).
|
private |
Habillage : jeu de skins et assignations (dock Textures, LOT-42).
|
private |
|
private |
|
private |
Sous-menu Affichage > Thème (LOT-56 TACHE-06).
|
private |
|
private |
Barre d'outils de l'éditeur, alimentée par _actions.
|
private |
Mise en page (MainWindow.ui : menubar + docks).
|
private |
true dès que l'utilisateur a choisi un onglet ou déplacé un panneau lui-même : la mise en avant automatique cesse alors pour la session (jamais persisté, cf.
|
private |
Surface de rendu QRhi, et widget central depuis le LOT-86.
Elle partageait jusque-là une pile avec le menu principal, les options, les crédits et les neuf écrans du RPG, tous passés en QML dans l'application du jeu. L'éditeur n'a plus qu'une chose à montrer. Surface de rendu D3D11 (possédée par le conteneur central).
|
private |