Items can be added to model dynamically.

This commit is contained in:
2025-12-08 13:25:02 +01:00
parent 144460b5aa
commit 4c906099eb
7 changed files with 128 additions and 9 deletions

View File

@ -8,13 +8,19 @@ class ModelItem;
using namespace std;
class TableModel : public QAbstractTableModel {
Q_OBJECT
public:
enum UserRoles { NameRole = Qt::UserRole + 1, DescriptionRole, InfoRole, AmountRole, FactorRole };
static QHash<int, QByteArray> ROLE_NAMES;
explicit TableModel(QObject* parent = nullptr);
/// QAbstractItemModel interface
Qt::ItemFlags flags(const QModelIndex& index) const override;
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex& parent) const override;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent) const override;
QVariant data(const QModelIndex& index, int role) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
@ -22,6 +28,10 @@ class TableModel : public QAbstractTableModel {
bool setData(const QModelIndex& index, const QVariant& value, int role) override;
// bool setItemData(const QModelIndex& index, const QMap<int, QVariant>& roles) override;
public slots:
void appendItems(const QByteArray& jsonDoc);
void insertItems(int startPosition, const QByteArray& jsonDoc, const QModelIndex& parentIndex);
private:
/// members
QList<shared_ptr<ModelItem>> m_items;