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

Liste de lignes libellé/valeur, pour un Repeater ou une ListView. More...

#include <SheetRowModel.h>

Inheritance diagram for hmi::SheetRowModel:

Public Types

enum  Role { IdRole = Qt::UserRole + 1 , LabelRole , ValueRole }
 Rôles lisibles depuis QML : model.rowId, model.label, model.value. More...

Public Member Functions

 SheetRowModel (QObject *parent=nullptr)
int rowCount (const QModelIndex &parent={}) const override
QVariant data (const QModelIndex &index, int role) const override
QHash< int, QByteArray > roleNames () const override
void setRows (QVector< SheetRow > rows)
 Remplace toutes les lignes.

Private Attributes

QVector< SheetRow_rows

Detailed Description

Liste de lignes libellé/valeur, pour un Repeater ou une ListView.

Pourquoi un modèle et non une table de chaînes. Les six caractéristiques, les six jets de sauvegarde et les dix-huit compétences sont des répétitions : la conception veut en décrire une et laisser le nombre à la donnée. Avec une table indexée par clé, chaque ligne aurait dû être posée à la main dans le fichier d'interface — ce qui remettait la structure de la fiche dans le fichier, c'est-à-dire exactement ce dont le LOT-85 s'était plaint.

Ce que ce modèle ne fait pas : il ne formate rien. La valeur arrive déjà mise en forme par hmi::characterSheetValues, logique pure et testée. Reformater ici aurait produit deux vérités sur la façon d'écrire un modificateur.

Member Enumeration Documentation

◆ Role

Rôles lisibles depuis QML : model.rowId, model.label, model.value.

Enumerator
IdRole 
LabelRole 
ValueRole 

Constructor & Destructor Documentation

◆ SheetRowModel()

hmi::SheetRowModel::SheetRowModel ( QObject * parent = nullptr)
explicit

Member Function Documentation

◆ data()

QVariant hmi::SheetRowModel::data ( const QModelIndex & index,
int role ) const
nodiscardoverride

◆ roleNames()

QHash< int, QByteArray > hmi::SheetRowModel::roleNames ( ) const
nodiscardoverride

◆ rowCount()

int hmi::SheetRowModel::rowCount ( const QModelIndex & parent = {}) const
nodiscardoverride

◆ setRows()

void hmi::SheetRowModel::setRows ( QVector< SheetRow > rows)

Remplace toutes les lignes.

Réinitialisation complète et non des insertions une à une : la liste est recalculée d'un bloc à chaque changement de fiche, jamais modifiée par morceaux.

Member Data Documentation

◆ _rows

QVector<SheetRow> hmi::SheetRowModel::_rows
private

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