JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
SheetRowModel.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 <QAbstractItemModel>
7#include <QAbstractListModel>
8#include <QString>
9#include <QVector>
10
15
16namespace hmi {
17
19struct SheetRow {
20 QString id;
21 QString label;
22 QString value;
23};
24
38// Volontairement PAS déclaré comme type QML. Un modèle ne s'instancie jamais depuis le QML : il
39// est fourni par la vue-modèle, et le QML le consomme par son type de base `QAbstractItemModel*`,
40// comme tout modèle Qt. L'exposer aurait obligé le registrar à enregistrer aussi sa classe de
41// base, qui appartient à un autre module — et la compilation du fichier engendré échouait.
42class SheetRowModel : public QAbstractListModel {
43 Q_OBJECT
44
45public:
47 enum Role {
48 IdRole = Qt::UserRole + 1,
51 };
52
53 explicit SheetRowModel(QObject* parent = nullptr);
54
55 [[nodiscard]] int rowCount(const QModelIndex& parent = {}) const override;
56 [[nodiscard]] QVariant data(const QModelIndex& index, int role) const override;
57 [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
58
61 void setRows(QVector<SheetRow> rows);
62
63private:
64 QVector<SheetRow> _rows;
65};
66
67} // namespace hmi
QVariant data(const QModelIndex &index, int role) const override
Definition SheetRowModel.cpp:18
QVector< SheetRow > _rows
Definition SheetRowModel.h:64
QHash< int, QByteArray > roleNames() const override
Definition SheetRowModel.cpp:35
int rowCount(const QModelIndex &parent={}) const override
Definition SheetRowModel.cpp:12
SheetRowModel(QObject *parent=nullptr)
Definition SheetRowModel.cpp:10
Role
Rôles lisibles depuis QML : model.rowId, model.label, model.value.
Definition SheetRowModel.h:47
@ ValueRole
Definition SheetRowModel.h:50
@ LabelRole
Definition SheetRowModel.h:49
@ IdRole
Definition SheetRowModel.h:48
void setRows(QVector< SheetRow > rows)
Remplace toutes les lignes.
Definition SheetRowModel.cpp:45
Definition AudioEngine.cpp:15
Une ligne : ce qu'elle désigne, comment on l'appelle, ce qu'elle vaut.
Definition SheetRowModel.h:19
QString label
Libellé lisible, tel que le catalogue de règles le donne.
Definition SheetRowModel.h:21
QString value
Valeur déjà formatée par la couche pure (« 16 (+3) », « +5 • »).
Definition SheetRowModel.h:22
QString id
Identifiant stable (strength, athletics) — clé de traduction.
Definition SheetRowModel.h:20