JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
InventoryModel.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 <QObject>
8#include <QString>
9#include <QtQmlIntegration>
10#include <map>
11#include <string>
12
14
19
20namespace hmi {
21
34class InventoryModel : public QObject {
35 Q_OBJECT
36 QML_ELEMENT
37
39 Q_PROPERTY(QAbstractItemModel* equipmentSlots READ equipmentSlots CONSTANT)
40
41 Q_PROPERTY(QString purse READ purse NOTIFY changed)
42 Q_PROPERTY(QString carried READ carried NOTIFY changed)
43 Q_PROPERTY(QString capacity READ capacity NOTIFY changed)
44 Q_PROPERTY(QString backpack READ backpack NOTIFY changed)
45
46public:
47 explicit InventoryModel(QObject* parent = nullptr);
48
51 Q_INVOKABLE void loadDemonstrationCharacter();
52
53 [[nodiscard]] QAbstractItemModel* equipmentSlots() {
54 return &_slots;
55 }
56 [[nodiscard]] QString purse() const {
57 return value("inventory.purse");
58 }
59 [[nodiscard]] QString carried() const {
60 return value("inventory.carried");
61 }
62 [[nodiscard]] QString capacity() const {
63 return value("inventory.capacity");
64 }
65 [[nodiscard]] QString backpack() const {
66 return value("inventory.backpack");
67 }
68
69signals:
73 void changed();
74
75private:
76 [[nodiscard]] QString value(const char* key) const;
77
78 std::map<std::string, std::string> _values;
80};
81
82} // namespace hmi
Les parties répétitives d'un écran, exposées au QML comme un modèle (LOT-86).
QString carried() const
Definition InventoryModel.h:59
QML_ELEMENTQAbstractItemModel * equipmentSlots
Les seize emplacements d'équipement : libellé du corps, objet porté (ou tiret).
Definition InventoryModel.h:39
InventoryModel(QObject *parent=nullptr)
Definition InventoryModel.cpp:57
QString value(const char *key) const
Definition InventoryModel.cpp:59
QString capacity
Definition InventoryModel.h:43
QString carried
Definition InventoryModel.h:42
QString capacity() const
Definition InventoryModel.h:62
QString backpack() const
Definition InventoryModel.h:65
QString backpack
Definition InventoryModel.h:44
SheetRowModel _slots
Definition InventoryModel.h:79
QString purse() const
Definition InventoryModel.h:56
QString purse
Definition InventoryModel.h:41
std::map< std::string, std::string > _values
Definition InventoryModel.h:78
Q_INVOKABLE void loadDemonstrationCharacter()
Charge le personnage de démonstration.
Definition InventoryModel.cpp:67
void changed()
Émis quand l'inventaire change en bloc.
Liste de lignes libellé/valeur, pour un Repeater ou une ListView.
Definition SheetRowModel.h:42
Definition AudioEngine.cpp:15