From a7a32dddc49816f1195ff1272755ced8a1fff2fa Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 31 Aug 2023 13:55:17 +0200 Subject: [PATCH] More const, parents passed in constructors and braces --- src/ArtConfigWindow.cpp | 6 ++-- src/ArtDetailWindow.cpp | 76 ++++++++++++++++++++++++----------------- src/ArtModel.cpp | 20 ++++++----- src/ArtModel.h | 2 +- src/MainWindow.cpp | 5 +-- src/MainWindow.h | 2 +- 6 files changed, 65 insertions(+), 46 deletions(-) diff --git a/src/ArtConfigWindow.cpp b/src/ArtConfigWindow.cpp index 87c8419..8018f10 100644 --- a/src/ArtConfigWindow.cpp +++ b/src/ArtConfigWindow.cpp @@ -64,7 +64,8 @@ void ArtConfigWindow::loadData(const QString &filename) QFile artFile(filename); 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_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("commissions")] = m_commissionsOpen->isChecked(); - QJsonDocument jsonDoc(object); + const QJsonDocument jsonDoc(object); + QFile file(filename); file.open(QFile::WriteOnly); file.write(jsonDoc.toJson()); diff --git a/src/ArtDetailWindow.cpp b/src/ArtDetailWindow.cpp index 92b6fe1..c8628aa 100644 --- a/src/ArtDetailWindow.cpp +++ b/src/ArtDetailWindow.cpp @@ -27,7 +27,7 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec setWindowTitle(filename); QFileInfo info(filename); - QString withoutExtension = info.completeBaseName(); + const QString withoutExtension = info.completeBaseName(); auto mainLayout = new QHBoxLayout(); setLayout(mainLayout); @@ -66,15 +66,15 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec m_dateEdit = new QDateEdit(); m_dateEdit->setCalendarPopup(true); - formLayout->addRow(QStringLiteral("Date"), m_dateEdit); + formLayout->addRow(i18nc("@label:chooser", "Date"), m_dateEdit); m_altTextEdit = new QTextEdit(); 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->setAcceptRichText(false); - formLayout->addRow(QStringLiteral("Description"), m_descriptionEdit); + formLayout->addRow(i18nc("@label:textbox", "Description"), m_descriptionEdit); m_nsfwBox = new QCheckBox(); 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")); connect(addCharacterButton, &QPushButton::clicked, this, [this] { - auto tmp = m_characterListModel->stringList(); - ; - tmp.push_back(QStringLiteral("New Character")); - m_characterListModel->setStringList(tmp); + m_characterListModel->setStringList(m_characterListModel->stringList() << QStringLiteral("New Character")); }); characterButtonLayout->addWidget(addCharacterButton); 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")); connect(addTagButton, &QPushButton::clicked, this, [this] { - auto tmp = m_tagsListModel->stringList(); - ; - tmp.push_back(QStringLiteral("New Tag")); - m_tagsListModel->setStringList(tmp); + m_tagsListModel->setStringList(m_tagsListModel->stringList() << QStringLiteral("New Tag")); }); tagButtonLayout->addWidget(addTagButton); tagButtonLayout->addStretch(1); @@ -182,16 +176,20 @@ void ArtDetailWindow::loadData(const QString &filename) QFile artFile(filename); 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()); + } - if (artJson.object().contains(QStringLiteral("alt_text"))) + if (artJson.object().contains(QStringLiteral("alt_text"))) { 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_knowExactDateBox->setChecked(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))); if (m_knowExactDateBox->isChecked()) { @@ -202,24 +200,29 @@ void ArtDetailWindow::loadData(const QString &filename) m_dateEdit->setDisplayFormat(QStringLiteral("yyyy")); } - if (artJson.object().contains(QStringLiteral("nsfw"))) + if (artJson.object().contains(QStringLiteral("nsfw"))) { 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()); + } - if (artJson.object().contains(QStringLiteral("pixiv_url"))) + if (artJson.object().contains(QStringLiteral("pixiv_url"))) { 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()); + } - if (artJson.object().contains(QStringLiteral("program"))) + if (artJson.object().contains(QStringLiteral("program"))) { m_programEdit->setText(artJson[QStringLiteral("program")].toString()); + } if (artJson.object().contains(QStringLiteral("characters"))) { QStringList list; - for (auto character : artJson[QStringLiteral("characters")].toArray()) { + for (const auto &character : artJson[QStringLiteral("characters")].toArray()) { list.append(character.toString()); } @@ -228,7 +231,7 @@ void ArtDetailWindow::loadData(const QString &filename) if (artJson.object().contains(QStringLiteral("tags"))) { QStringList list; - for (auto tag : artJson[QStringLiteral("tags")].toArray()) { + for (const auto &tag : artJson[QStringLiteral("tags")].toArray()) { list.append(tag.toString()); } @@ -241,14 +244,17 @@ void ArtDetailWindow::saveData(const QString &filename) qDebug() << "Saving data to" << filename; QJsonObject object; - if (!m_titleEdit->text().isEmpty()) + if (!m_titleEdit->text().isEmpty()) { object[QStringLiteral("title")] = m_titleEdit->text(); + } - if (!m_altTextEdit->document()->isEmpty()) + if (!m_altTextEdit->document()->isEmpty()) { 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(); + } if (m_knowExactDateBox->isChecked()) { 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")); } - if (m_nsfwBox->isChecked()) + if (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(); + } - if (!m_pixivUrlEdit->text().isEmpty()) + if (!m_pixivUrlEdit->text().isEmpty()) { object[QStringLiteral("pixiv_url")] = m_pixivUrlEdit->text(); + } - if (!m_newgroundsUrlEdit->text().isEmpty()) + if (!m_newgroundsUrlEdit->text().isEmpty()) { object[QStringLiteral("newgrounds_url")] = m_newgroundsUrlEdit->text(); + } - if (!m_programEdit->text().isEmpty()) + if (!m_programEdit->text().isEmpty()) { object[QStringLiteral("program")] = m_programEdit->text(); + } auto tags = m_tagsListModel->stringList(); if (!tags.isEmpty()) { @@ -281,7 +292,8 @@ void ArtDetailWindow::saveData(const QString &filename) object[QStringLiteral("characters")] = QJsonArray::fromStringList(characters); } - QJsonDocument jsonDoc(object); + const QJsonDocument jsonDoc(object); + QFile file(filename); file.open(QFile::WriteOnly); file.write(jsonDoc.toJson()); diff --git a/src/ArtModel.cpp b/src/ArtModel.cpp index 3038506..4d6fd5d 100644 --- a/src/ArtModel.cpp +++ b/src/ArtModel.cpp @@ -14,8 +14,8 @@ #include #include -ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory) - : QAbstractTableModel() +ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory, QObject *parent) + : QAbstractTableModel(parent) { piecesFuture = new QFutureWatcher(this); connect(piecesFuture, &QFutureWatcher::resultReadyAt, this, &ArtModel::pieceFinished); @@ -26,6 +26,7 @@ ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory) QString asset; }; QVector pieceList; + QDirIterator it(definitionDirectory); while (it.hasNext()) { QFileInfo info(it.next()); @@ -42,7 +43,7 @@ ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory) endInsertRows(); } - std::function loadPiece = [this](const PieceInformation &info) -> ArtPiece { + const std::function loadPiece = [this](const PieceInformation &info) -> ArtPiece { ArtPiece p; loadData(p, info.definition, info.asset); @@ -67,10 +68,11 @@ int ArtModel::columnCount(const QModelIndex &parent) const 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 {}; + } if (role == Qt::DisplayRole) { switch (index.column()) { @@ -126,7 +128,8 @@ void ArtModel::loadData(ArtPiece &piece, const QString &filename, const QString QFile artFile(piece.jsonFilename); artFile.open(QFile::ReadOnly); - QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll()); + + const QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll()); if (artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))) { 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; } } -void ArtModel::pieceFinished(int row) + +void ArtModel::pieceFinished(const int row) { m_artPieces[row] = piecesFuture->resultAt(row); @@ -151,7 +155,7 @@ void ArtModel::pieceFinished(int row) 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; }); diff --git a/src/ArtModel.h b/src/ArtModel.h index e444a50..bcf9f1b 100644 --- a/src/ArtModel.h +++ b/src/ArtModel.h @@ -25,7 +25,7 @@ class ArtModel : public QAbstractTableModel { Q_OBJECT 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 columnCount(const QModelIndex &parent) const override; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 43fe86b..7183f1d 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -13,7 +13,8 @@ #include "ArtDetailWindow.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")); setMinimumSize(1280, 720); @@ -42,7 +43,7 @@ MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirecto QHeaderView *horizontalHeader = pieceListView->horizontalHeader(); 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 QJsonObject object = index.data(Qt::UserRole).toJsonObject(); diff --git a/src/MainWindow.h b/src/MainWindow.h index 5be73dd..c127b98 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -11,5 +11,5 @@ class MainWindow : public QMainWindow { Q_OBJECT 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); };