31 lines
750 B
C
31 lines
750 B
C
|
#pragma once
|
||
|
|
||
|
#include <QAbstractTableModel>
|
||
|
#include <QJsonObject>
|
||
|
|
||
|
struct ArtPiece {
|
||
|
QString filename, jsonFilename;
|
||
|
QString title;
|
||
|
QJsonObject object;
|
||
|
|
||
|
QDate date;
|
||
|
|
||
|
bool hasAltText = false;
|
||
|
};
|
||
|
|
||
|
class ArtModel : public QAbstractTableModel {
|
||
|
public:
|
||
|
explicit ArtModel(const QString& definitionDirectory, const QString& assetDirectory);
|
||
|
|
||
|
int rowCount(const QModelIndex &parent) 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;
|
||
|
|
||
|
private:
|
||
|
void loadData(ArtPiece& piece, const QString& filename, const QString& assetFilename);
|
||
|
|
||
|
QList<ArtPiece> m_artPieces;
|
||
|
};
|