More const, parents passed in constructors and braces

This commit is contained in:
Joshua Goins 2023-08-31 13:55:17 +02:00
parent 1dc80b96d1
commit a7a32dddc4
6 changed files with 65 additions and 46 deletions

View file

@ -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());

View file

@ -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());

View file

@ -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;
}); });

View file

@ -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;

View file

@ -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();

View file

@ -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);
}; };