More const, parents passed in constructors and braces
This commit is contained in:
parent
1dc80b96d1
commit
a7a32dddc4
6 changed files with 65 additions and 46 deletions
|
@ -64,7 +64,8 @@ void ArtConfigWindow::loadData(const QString &filename)
|
||||||
|
|
||||||
QFile artFile(filename);
|
QFile artFile(filename);
|
||||||
artFile.open(QFile::ReadOnly);
|
artFile.open(QFile::ReadOnly);
|
||||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
|
||||||
|
const QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||||
|
|
||||||
m_newBannerEdit->setText(artJson[QStringLiteral("new-banner")].toString());
|
m_newBannerEdit->setText(artJson[QStringLiteral("new-banner")].toString());
|
||||||
m_commissionsOpen->setChecked(artJson[QStringLiteral("commissions")].toBool());
|
m_commissionsOpen->setChecked(artJson[QStringLiteral("commissions")].toBool());
|
||||||
|
@ -78,7 +79,8 @@ void ArtConfigWindow::saveData(const QString &filename)
|
||||||
object[QStringLiteral("new-banner")] = m_newBannerEdit->text();
|
object[QStringLiteral("new-banner")] = m_newBannerEdit->text();
|
||||||
object[QStringLiteral("commissions")] = m_commissionsOpen->isChecked();
|
object[QStringLiteral("commissions")] = m_commissionsOpen->isChecked();
|
||||||
|
|
||||||
QJsonDocument jsonDoc(object);
|
const QJsonDocument jsonDoc(object);
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
file.open(QFile::WriteOnly);
|
file.open(QFile::WriteOnly);
|
||||||
file.write(jsonDoc.toJson());
|
file.write(jsonDoc.toJson());
|
||||||
|
|
|
@ -27,7 +27,7 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
||||||
setWindowTitle(filename);
|
setWindowTitle(filename);
|
||||||
|
|
||||||
QFileInfo info(filename);
|
QFileInfo info(filename);
|
||||||
QString withoutExtension = info.completeBaseName();
|
const QString withoutExtension = info.completeBaseName();
|
||||||
|
|
||||||
auto mainLayout = new QHBoxLayout();
|
auto mainLayout = new QHBoxLayout();
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
|
@ -66,15 +66,15 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
||||||
|
|
||||||
m_dateEdit = new QDateEdit();
|
m_dateEdit = new QDateEdit();
|
||||||
m_dateEdit->setCalendarPopup(true);
|
m_dateEdit->setCalendarPopup(true);
|
||||||
formLayout->addRow(QStringLiteral("Date"), m_dateEdit);
|
formLayout->addRow(i18nc("@label:chooser", "Date"), m_dateEdit);
|
||||||
|
|
||||||
m_altTextEdit = new QTextEdit();
|
m_altTextEdit = new QTextEdit();
|
||||||
m_altTextEdit->setAcceptRichText(false);
|
m_altTextEdit->setAcceptRichText(false);
|
||||||
formLayout->addRow(QStringLiteral("Alt Text"), m_altTextEdit);
|
formLayout->addRow(i18nc("@label:textbox", "Alt Text"), m_altTextEdit);
|
||||||
|
|
||||||
m_descriptionEdit = new QTextEdit();
|
m_descriptionEdit = new QTextEdit();
|
||||||
m_descriptionEdit->setAcceptRichText(false);
|
m_descriptionEdit->setAcceptRichText(false);
|
||||||
formLayout->addRow(QStringLiteral("Description"), m_descriptionEdit);
|
formLayout->addRow(i18nc("@label:textbox", "Description"), m_descriptionEdit);
|
||||||
|
|
||||||
m_nsfwBox = new QCheckBox();
|
m_nsfwBox = new QCheckBox();
|
||||||
formLayout->addRow(i18nc("@option:check", "Is NSFW?"), m_nsfwBox);
|
formLayout->addRow(i18nc("@option:check", "Is NSFW?"), m_nsfwBox);
|
||||||
|
@ -104,10 +104,7 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
||||||
|
|
||||||
auto addCharacterButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
auto addCharacterButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
||||||
connect(addCharacterButton, &QPushButton::clicked, this, [this] {
|
connect(addCharacterButton, &QPushButton::clicked, this, [this] {
|
||||||
auto tmp = m_characterListModel->stringList();
|
m_characterListModel->setStringList(m_characterListModel->stringList() << QStringLiteral("New Character"));
|
||||||
;
|
|
||||||
tmp.push_back(QStringLiteral("New Character"));
|
|
||||||
m_characterListModel->setStringList(tmp);
|
|
||||||
});
|
});
|
||||||
characterButtonLayout->addWidget(addCharacterButton);
|
characterButtonLayout->addWidget(addCharacterButton);
|
||||||
characterButtonLayout->addStretch(1);
|
characterButtonLayout->addStretch(1);
|
||||||
|
@ -137,10 +134,7 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
||||||
|
|
||||||
auto addTagButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
auto addTagButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
||||||
connect(addTagButton, &QPushButton::clicked, this, [this] {
|
connect(addTagButton, &QPushButton::clicked, this, [this] {
|
||||||
auto tmp = m_tagsListModel->stringList();
|
m_tagsListModel->setStringList(m_tagsListModel->stringList() << QStringLiteral("New Tag"));
|
||||||
;
|
|
||||||
tmp.push_back(QStringLiteral("New Tag"));
|
|
||||||
m_tagsListModel->setStringList(tmp);
|
|
||||||
});
|
});
|
||||||
tagButtonLayout->addWidget(addTagButton);
|
tagButtonLayout->addWidget(addTagButton);
|
||||||
tagButtonLayout->addStretch(1);
|
tagButtonLayout->addStretch(1);
|
||||||
|
@ -182,16 +176,20 @@ void ArtDetailWindow::loadData(const QString &filename)
|
||||||
|
|
||||||
QFile artFile(filename);
|
QFile artFile(filename);
|
||||||
artFile.open(QFile::ReadOnly);
|
artFile.open(QFile::ReadOnly);
|
||||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("title")))
|
const QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||||
|
|
||||||
|
if (artJson.object().contains(QStringLiteral("title"))) {
|
||||||
m_titleEdit->setText(artJson[QStringLiteral("title")].toString());
|
m_titleEdit->setText(artJson[QStringLiteral("title")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("alt_text")))
|
if (artJson.object().contains(QStringLiteral("alt_text"))) {
|
||||||
m_altTextEdit->setText(artJson[QStringLiteral("alt_text")].toString());
|
m_altTextEdit->setText(artJson[QStringLiteral("alt_text")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("description")))
|
if (artJson.object().contains(QStringLiteral("description"))) {
|
||||||
m_descriptionEdit->setText(artJson[QStringLiteral("description")].toString());
|
m_descriptionEdit->setText(artJson[QStringLiteral("description")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
m_knowExactDateBox->setChecked(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-")));
|
m_knowExactDateBox->setChecked(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-")));
|
||||||
if (m_knowExactDateBox->isChecked()) {
|
if (m_knowExactDateBox->isChecked()) {
|
||||||
|
@ -202,24 +200,29 @@ void ArtDetailWindow::loadData(const QString &filename)
|
||||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("nsfw")))
|
if (artJson.object().contains(QStringLiteral("nsfw"))) {
|
||||||
m_nsfwBox->setChecked(artJson[QStringLiteral("nsfw")].toBool());
|
m_nsfwBox->setChecked(artJson[QStringLiteral("nsfw")].toBool());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("mastodon_url")))
|
if (artJson.object().contains(QStringLiteral("mastodon_url"))) {
|
||||||
m_mastodonUrlEdit->setText(artJson[QStringLiteral("mastodon_url")].toString());
|
m_mastodonUrlEdit->setText(artJson[QStringLiteral("mastodon_url")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("pixiv_url")))
|
if (artJson.object().contains(QStringLiteral("pixiv_url"))) {
|
||||||
m_pixivUrlEdit->setText(artJson[QStringLiteral("pixiv_url")].toString());
|
m_pixivUrlEdit->setText(artJson[QStringLiteral("pixiv_url")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("newgrounds_url")))
|
if (artJson.object().contains(QStringLiteral("newgrounds_url"))) {
|
||||||
m_newgroundsUrlEdit->setText(artJson[QStringLiteral("newgrounds_url")].toString());
|
m_newgroundsUrlEdit->setText(artJson[QStringLiteral("newgrounds_url")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("program")))
|
if (artJson.object().contains(QStringLiteral("program"))) {
|
||||||
m_programEdit->setText(artJson[QStringLiteral("program")].toString());
|
m_programEdit->setText(artJson[QStringLiteral("program")].toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("characters"))) {
|
if (artJson.object().contains(QStringLiteral("characters"))) {
|
||||||
QStringList list;
|
QStringList list;
|
||||||
for (auto character : artJson[QStringLiteral("characters")].toArray()) {
|
for (const auto &character : artJson[QStringLiteral("characters")].toArray()) {
|
||||||
list.append(character.toString());
|
list.append(character.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,7 +231,7 @@ void ArtDetailWindow::loadData(const QString &filename)
|
||||||
|
|
||||||
if (artJson.object().contains(QStringLiteral("tags"))) {
|
if (artJson.object().contains(QStringLiteral("tags"))) {
|
||||||
QStringList list;
|
QStringList list;
|
||||||
for (auto tag : artJson[QStringLiteral("tags")].toArray()) {
|
for (const auto &tag : artJson[QStringLiteral("tags")].toArray()) {
|
||||||
list.append(tag.toString());
|
list.append(tag.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,14 +244,17 @@ void ArtDetailWindow::saveData(const QString &filename)
|
||||||
qDebug() << "Saving data to" << filename;
|
qDebug() << "Saving data to" << filename;
|
||||||
|
|
||||||
QJsonObject object;
|
QJsonObject object;
|
||||||
if (!m_titleEdit->text().isEmpty())
|
if (!m_titleEdit->text().isEmpty()) {
|
||||||
object[QStringLiteral("title")] = m_titleEdit->text();
|
object[QStringLiteral("title")] = m_titleEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_altTextEdit->document()->isEmpty())
|
if (!m_altTextEdit->document()->isEmpty()) {
|
||||||
object[QStringLiteral("alt_text")] = m_altTextEdit->document()->toPlainText();
|
object[QStringLiteral("alt_text")] = m_altTextEdit->document()->toPlainText();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_descriptionEdit->document()->isEmpty())
|
if (!m_descriptionEdit->document()->isEmpty()) {
|
||||||
object[QStringLiteral("description")] = m_descriptionEdit->document()->toPlainText();
|
object[QStringLiteral("description")] = m_descriptionEdit->document()->toPlainText();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_knowExactDateBox->isChecked()) {
|
if (m_knowExactDateBox->isChecked()) {
|
||||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy-MM-dd"));
|
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy-MM-dd"));
|
||||||
|
@ -256,20 +262,25 @@ void ArtDetailWindow::saveData(const QString &filename)
|
||||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy"));
|
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_nsfwBox->isChecked())
|
if (m_nsfwBox->isChecked()) {
|
||||||
object[QStringLiteral("nsfw")] = m_nsfwBox->isChecked();
|
object[QStringLiteral("nsfw")] = m_nsfwBox->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_mastodonUrlEdit->text().isEmpty())
|
if (!m_mastodonUrlEdit->text().isEmpty()) {
|
||||||
object[QStringLiteral("mastodon_url")] = m_mastodonUrlEdit->text();
|
object[QStringLiteral("mastodon_url")] = m_mastodonUrlEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_pixivUrlEdit->text().isEmpty())
|
if (!m_pixivUrlEdit->text().isEmpty()) {
|
||||||
object[QStringLiteral("pixiv_url")] = m_pixivUrlEdit->text();
|
object[QStringLiteral("pixiv_url")] = m_pixivUrlEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_newgroundsUrlEdit->text().isEmpty())
|
if (!m_newgroundsUrlEdit->text().isEmpty()) {
|
||||||
object[QStringLiteral("newgrounds_url")] = m_newgroundsUrlEdit->text();
|
object[QStringLiteral("newgrounds_url")] = m_newgroundsUrlEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_programEdit->text().isEmpty())
|
if (!m_programEdit->text().isEmpty()) {
|
||||||
object[QStringLiteral("program")] = m_programEdit->text();
|
object[QStringLiteral("program")] = m_programEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
auto tags = m_tagsListModel->stringList();
|
auto tags = m_tagsListModel->stringList();
|
||||||
if (!tags.isEmpty()) {
|
if (!tags.isEmpty()) {
|
||||||
|
@ -281,7 +292,8 @@ void ArtDetailWindow::saveData(const QString &filename)
|
||||||
object[QStringLiteral("characters")] = QJsonArray::fromStringList(characters);
|
object[QStringLiteral("characters")] = QJsonArray::fromStringList(characters);
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonDocument jsonDoc(object);
|
const QJsonDocument jsonDoc(object);
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
file.open(QFile::WriteOnly);
|
file.open(QFile::WriteOnly);
|
||||||
file.write(jsonDoc.toJson());
|
file.write(jsonDoc.toJson());
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
|
|
||||||
ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory)
|
ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory, QObject *parent)
|
||||||
: QAbstractTableModel()
|
: QAbstractTableModel(parent)
|
||||||
{
|
{
|
||||||
piecesFuture = new QFutureWatcher<ArtPiece>(this);
|
piecesFuture = new QFutureWatcher<ArtPiece>(this);
|
||||||
connect(piecesFuture, &QFutureWatcher<ArtPiece>::resultReadyAt, this, &ArtModel::pieceFinished);
|
connect(piecesFuture, &QFutureWatcher<ArtPiece>::resultReadyAt, this, &ArtModel::pieceFinished);
|
||||||
|
@ -26,6 +26,7 @@ ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory)
|
||||||
QString asset;
|
QString asset;
|
||||||
};
|
};
|
||||||
QVector<PieceInformation> pieceList;
|
QVector<PieceInformation> pieceList;
|
||||||
|
|
||||||
QDirIterator it(definitionDirectory);
|
QDirIterator it(definitionDirectory);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
QFileInfo info(it.next());
|
QFileInfo info(it.next());
|
||||||
|
@ -42,7 +43,7 @@ ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory)
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::function<ArtPiece(const PieceInformation &info)> loadPiece = [this](const PieceInformation &info) -> ArtPiece {
|
const std::function<ArtPiece(const PieceInformation &info)> loadPiece = [this](const PieceInformation &info) -> ArtPiece {
|
||||||
ArtPiece p;
|
ArtPiece p;
|
||||||
loadData(p, info.definition, info.asset);
|
loadData(p, info.definition, info.asset);
|
||||||
|
|
||||||
|
@ -67,10 +68,11 @@ int ArtModel::columnCount(const QModelIndex &parent) const
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant ArtModel::data(const QModelIndex &index, int role) const
|
QVariant ArtModel::data(const QModelIndex &index, const int role) const
|
||||||
{
|
{
|
||||||
if (!index.isValid())
|
if (!index.isValid()) {
|
||||||
return {};
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
if (role == Qt::DisplayRole) {
|
if (role == Qt::DisplayRole) {
|
||||||
switch (index.column()) {
|
switch (index.column()) {
|
||||||
|
@ -126,7 +128,8 @@ void ArtModel::loadData(ArtPiece &piece, const QString &filename, const QString
|
||||||
|
|
||||||
QFile artFile(piece.jsonFilename);
|
QFile artFile(piece.jsonFilename);
|
||||||
artFile.open(QFile::ReadOnly);
|
artFile.open(QFile::ReadOnly);
|
||||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
|
||||||
|
const QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||||
|
|
||||||
if (artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))) {
|
if (artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))) {
|
||||||
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd"));
|
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd"));
|
||||||
|
@ -142,7 +145,8 @@ void ArtModel::loadData(ArtPiece &piece, const QString &filename, const QString
|
||||||
piece.hasAltText = true;
|
piece.hasAltText = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void ArtModel::pieceFinished(int row)
|
|
||||||
|
void ArtModel::pieceFinished(const int row)
|
||||||
{
|
{
|
||||||
m_artPieces[row] = piecesFuture->resultAt(row);
|
m_artPieces[row] = piecesFuture->resultAt(row);
|
||||||
|
|
||||||
|
@ -151,7 +155,7 @@ void ArtModel::pieceFinished(int row)
|
||||||
|
|
||||||
void ArtModel::finished()
|
void ArtModel::finished()
|
||||||
{
|
{
|
||||||
std::sort(m_artPieces.begin(), m_artPieces.end(), [](ArtPiece &a, ArtPiece &b) {
|
std::sort(m_artPieces.begin(), m_artPieces.end(), [](const ArtPiece &a, const ArtPiece &b) {
|
||||||
return a.date > b.date;
|
return a.date > b.date;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ class ArtModel : public QAbstractTableModel
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory);
|
explicit ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory, QObject *parent = nullptr);
|
||||||
|
|
||||||
[[nodiscard]] int rowCount(const QModelIndex &parent) const override;
|
[[nodiscard]] int rowCount(const QModelIndex &parent) const override;
|
||||||
[[nodiscard]] int columnCount(const QModelIndex &parent) const override;
|
[[nodiscard]] int columnCount(const QModelIndex &parent) const override;
|
||||||
|
|
|
@ -13,7 +13,8 @@
|
||||||
#include "ArtDetailWindow.h"
|
#include "ArtDetailWindow.h"
|
||||||
#include "ArtModel.h"
|
#include "ArtModel.h"
|
||||||
|
|
||||||
MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory)
|
MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory, QWidget *parent)
|
||||||
|
: QMainWindow(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(i18nc("@title:window", "Redai"));
|
setWindowTitle(i18nc("@title:window", "Redai"));
|
||||||
setMinimumSize(1280, 720);
|
setMinimumSize(1280, 720);
|
||||||
|
@ -42,7 +43,7 @@ MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirecto
|
||||||
QHeaderView *horizontalHeader = pieceListView->horizontalHeader();
|
QHeaderView *horizontalHeader = pieceListView->horizontalHeader();
|
||||||
horizontalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
horizontalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||||
|
|
||||||
connect(pieceListView, &QListView::clicked, this, [this, assetDirectory](QModelIndex index) {
|
connect(pieceListView, &QListView::clicked, this, [this, assetDirectory](const QModelIndex index) {
|
||||||
const QString filename = index.data(Qt::UserRole + 1).toString();
|
const QString filename = index.data(Qt::UserRole + 1).toString();
|
||||||
const QJsonObject object = index.data(Qt::UserRole).toJsonObject();
|
const QJsonObject object = index.data(Qt::UserRole).toJsonObject();
|
||||||
|
|
||||||
|
|
|
@ -11,5 +11,5 @@ class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory);
|
explicit MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory, QWidget *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue