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

Panneau de gestion des niveaux : liste filtrable + créer/renommer/dupliquer/supprimer. More...

#include <LevelBrowserPanel.h>

Inheritance diagram for hmi::LevelBrowserPanel:

Signals

void levelOpenRequested (const QString &path)
 Émis quand l'utilisateur demande l'ouverture d'un niveau (chemin absolu du fichier).

Public Member Functions

 LevelBrowserPanel (std::filesystem::path levelsDir, QWidget *parent=nullptr)
 ~LevelBrowserPanel () override
void refresh ()
 Recharge la liste depuis le dossier (après une opération ou un changement externe).
void retranslateUi (const Localization &loc)
 Applique la langue active (boutons, champ de recherche).

Private Member Functions

void onNew ()
void onRename ()
void onDuplicate ()
void onDelete ()
void onActivated (const QModelIndex &index)
std::filesystem::path selectedPath () const
 Chemin du niveau sélectionné, ou chemin vide si aucune sélection.

Private Attributes

std::unique_ptr< Ui::LevelBrowserPanel > _ui
 Mise en page (LevelBrowserPanel.ui).
std::filesystem::path _dir
QStandardItemModel * _model
 Modèle source (données), rempli par refresh().
QSortFilterProxyModel * _proxy
 Filtre de recherche au-dessus du modèle.
const Localization_loc = nullptr
 Catalogue courant (pour les dialogues localisés).

Detailed Description

Panneau de gestion des niveaux : liste filtrable + créer/renommer/dupliquer/supprimer.

Liste les fichiers .json d'un dossier (EX-IHM-020), avec recherche incrémentale (QSortFilterProxyModel) pour rester lisible quel que soit leur nombre. Les opérations (EX-IHM-021) délèguent à hmi::LevelFileOperations (couche pure, validée/testée) ; les erreurs sont signalées à l'utilisateur, jamais silencieuses. Un double-clic (ou « Ouvrir ») émet levelOpenRequested — le garde-fou des modifications non enregistrées est appliqué par l'appelant (MainWindow).

Constructor & Destructor Documentation

◆ LevelBrowserPanel()

hmi::LevelBrowserPanel::LevelBrowserPanel ( std::filesystem::path levelsDir,
QWidget * parent = nullptr )
explicit

◆ ~LevelBrowserPanel()

hmi::LevelBrowserPanel::~LevelBrowserPanel ( )
overridedefault

Member Function Documentation

◆ levelOpenRequested

void hmi::LevelBrowserPanel::levelOpenRequested ( const QString & path)
signal

Émis quand l'utilisateur demande l'ouverture d'un niveau (chemin absolu du fichier).

◆ onActivated()

void hmi::LevelBrowserPanel::onActivated ( const QModelIndex & index)
private

◆ onDelete()

void hmi::LevelBrowserPanel::onDelete ( )
private

◆ onDuplicate()

void hmi::LevelBrowserPanel::onDuplicate ( )
private

◆ onNew()

void hmi::LevelBrowserPanel::onNew ( )
private

◆ onRename()

void hmi::LevelBrowserPanel::onRename ( )
private

◆ refresh()

void hmi::LevelBrowserPanel::refresh ( )

Recharge la liste depuis le dossier (après une opération ou un changement externe).

◆ retranslateUi()

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

Applique la langue active (boutons, champ de recherche).

◆ selectedPath()

std::filesystem::path hmi::LevelBrowserPanel::selectedPath ( ) const
nodiscardprivate

Chemin du niveau sélectionné, ou chemin vide si aucune sélection.

Member Data Documentation

◆ _dir

std::filesystem::path hmi::LevelBrowserPanel::_dir
private

◆ _loc

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

Catalogue courant (pour les dialogues localisés).

◆ _model

QStandardItemModel* hmi::LevelBrowserPanel::_model
private

Modèle source (données), rempli par refresh().

◆ _proxy

QSortFilterProxyModel* hmi::LevelBrowserPanel::_proxy
private

Filtre de recherche au-dessus du modèle.

◆ _ui

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

Mise en page (LevelBrowserPanel.ui).


The documentation for this class was generated from the following files: