[nostalgia] Address CLion warnings

This commit is contained in:
Gary Talent 2021-02-27 02:40:59 -06:00
parent 70168286ab
commit 936c922c1e
24 changed files with 63 additions and 124 deletions

View File

@ -183,11 +183,10 @@ constexpr bool Point::operator!=(const Point &p) const {
template<typename T> template<typename T>
ox::Error model(T *io, Point *obj) { ox::Error model(T *io, Point *obj) {
auto err = OxError(0);
io->setTypeInfo("nostalgia::common::Bounds", 2); io->setTypeInfo("nostalgia::common::Bounds", 2);
err |= io->field("x", &obj->x); oxReturnError(io->field("x", &obj->x));
err |= io->field("y", &obj->y); oxReturnError(io->field("y", &obj->y));
return err; return OxError(0);
} }
} }

View File

@ -8,7 +8,6 @@
#include <map> #include <map>
#include <string> #include <string>
#include <vector>
#include <ox/std/std.hpp> #include <ox/std/std.hpp>

View File

@ -139,7 +139,7 @@ void setTile(Context *ctx, int layer, int column, int row, uint8_t tile);
void clearTileLayer(Context*, int layer); void clearTileLayer(Context*, int layer);
[[maybe_unused]] void hideSprite(Context*, unsigned); void hideSprite(Context*, unsigned);
void setSprite(Context*, unsigned idx, unsigned x, unsigned y, unsigned tileIdx, unsigned spriteShape = 0, unsigned spriteSize = 0, unsigned flipX = 0); void setSprite(Context*, unsigned idx, unsigned x, unsigned y, unsigned tileIdx, unsigned spriteShape = 0, unsigned spriteSize = 0, unsigned flipX = 0);

View File

@ -29,6 +29,6 @@ namespace nostalgia::core {
return colStart + colOffset + rowStart + rowOffset; return colStart + colOffset + rowStart + rowOffset;
} }
[[nodiscard]] std::unique_ptr<core::NostalgiaGraphic> imgToNg(QString argInPath, int argBpp = -1); [[nodiscard]] std::unique_ptr<core::NostalgiaGraphic> imgToNg(QString argInPath, int argBpp = -1);
} }

View File

@ -1,31 +0,0 @@
/*
* Copyright 2016 - 2021 gary@drinkingtea.net
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#include "json_read.hpp"
#include "json_write.hpp"
namespace nostalgia::studio {
class JsonOperator {
public:
virtual ~JsonOperator() = default;
virtual int op(QString fieldName, int *dest) = 0;
virtual int op(QString fieldName, bool *dest) = 0;
virtual int op(QString fieldName, double *dest) = 0;
virtual int op(QString fieldName, QString *dest) = 0;
};
}

View File

@ -25,7 +25,7 @@ class JsonReader {
QJsonObject &m_src; QJsonObject &m_src;
public: public:
JsonReader(QJsonObject &obj); explicit JsonReader(QJsonObject &obj);
ox::Error setTypeInfo(const char*, int) { return OxError(0); }; ox::Error setTypeInfo(const char*, int) { return OxError(0); };
@ -44,16 +44,16 @@ class JsonReader {
ox::Error field(QString fieldName, QVector<T> *dest); ox::Error field(QString fieldName, QVector<T> *dest);
private: private:
ox::Error field(QJsonValueRef src, int *dest); static ox::Error field(QJsonValueRef src, int *dest);
ox::Error field(QJsonValueRef src, bool *dest); static ox::Error field(QJsonValueRef src, bool *dest);
ox::Error field(QJsonValueRef src, double *dest); static ox::Error field(QJsonValueRef src, double *dest);
ox::Error field(QJsonValueRef src, QString *dest); static ox::Error field(QJsonValueRef src, QString *dest);
template<typename T> template<typename T>
ox::Error field(QJsonValueRef src, T *dest); static ox::Error field(QJsonValueRef src, T *dest);
}; };

View File

@ -8,7 +8,8 @@
#include <iostream> #include <iostream>
#include <ox/std/assert.hpp> #include <ox/std/assert.hpp>
#include "json.hpp" #include "json_read.hpp"
#include "json_write.hpp"
using namespace std; using namespace std;
using namespace ox; using namespace ox;

View File

@ -24,7 +24,7 @@ class JsonWriter {
QJsonObject &m_dest; QJsonObject &m_dest;
public: public:
JsonWriter(QJsonObject &obj); explicit JsonWriter(QJsonObject &obj);
ox::Error setTypeInfo(const char*, int) { return OxError(0); }; ox::Error setTypeInfo(const char*, int) { return OxError(0); };

View File

@ -35,7 +35,7 @@ void Editor::setUnsavedChanges(bool uc) {
emit unsavedChangesChanged(uc); emit unsavedChangesChanged(uc);
} }
bool Editor::unsavedChanges() noexcept { bool Editor::unsavedChanges() const noexcept {
return m_unsavedChanges; return m_unsavedChanges;
} }

View File

@ -55,7 +55,7 @@ class NOSTALGIASTUDIO_EXPORT Editor: public QWidget {
*/ */
void setUnsavedChanges(bool); void setUnsavedChanges(bool);
[[nodiscard]] bool unsavedChanges() noexcept; [[nodiscard]] bool unsavedChanges() const noexcept;
/** /**
* Returns the undo stack holding changes to the item being edited. * Returns the undo stack holding changes to the item being edited.

View File

@ -19,10 +19,6 @@ QVector<WizardMaker> Module::importWizards(const Context*) {
return {}; return {};
} }
QWidget *Module::makeEditor(QString, const Context*) {
return nullptr;
}
QVector<EditorMaker> Module::editors(const Context*) { QVector<EditorMaker> Module::editors(const Context*) {
return {}; return {};
} }

View File

@ -31,9 +31,7 @@ class Module {
virtual QVector<WizardMaker> importWizards(const Context *ctx); virtual QVector<WizardMaker> importWizards(const Context *ctx);
virtual QWidget *makeEditor(QString path, const class Context *ctx); virtual QVector<EditorMaker> editors(const class Context *ctx);
virtual QVector<EditorMaker> editors(const class Context *ctx);
}; };

View File

@ -25,8 +25,7 @@ Project::Project(QString path): m_fs(path.toUtf8()) {
m_path = path; m_path = path;
} }
Project::~Project() { Project::~Project() = default;
}
void Project::create() { void Project::create() {
QDir().mkpath(m_path); QDir().mkpath(m_path);

View File

@ -43,9 +43,9 @@ class NOSTALGIASTUDIO_EXPORT Project: public QObject {
mutable ox::PassThroughFS m_fs; mutable ox::PassThroughFS m_fs;
public: public:
Project(QString path); explicit Project(QString path);
~Project(); ~Project() override;
void create(); void create();

View File

@ -58,7 +58,7 @@ void WizardSelect::initializePage() {
emit completeChanged(); emit completeChanged();
} }
void WizardSelect::addOption(WizardMaker wm) { void WizardSelect::addOption(const WizardMaker &wm) {
m_options[wm.name] = {wm.make, wm.onAccept}; m_options[wm.name] = {wm.make, wm.onAccept};
m_listWidget->addItem(wm.name); m_listWidget->addItem(wm.name);
} }
@ -82,7 +82,6 @@ void WizardSelect::itemSelected(int row) {
w->addPage(p); w->addPage(p);
} }
w->setAccept(o.onAccept); w->setAccept(o.onAccept);
// for some reason the continue button only appears correctly after remove runs // for some reason the continue button only appears correctly after remove runs
w->removePage(w->addPage(new QWizardPage())); w->removePage(w->addPage(new QWizardPage()));
} }
@ -96,9 +95,6 @@ WizardConclusionPage::WizardConclusionPage(QString msg, QVector<QString> fields)
setLayout(new QVBoxLayout(this)); setLayout(new QVBoxLayout(this));
} }
WizardConclusionPage::~WizardConclusionPage() {
}
void WizardConclusionPage::initializePage() { void WizardConclusionPage::initializePage() {
QString msg = m_baseMsg; QString msg = m_baseMsg;
for (auto field : m_fields) { for (auto field : m_fields) {
@ -126,7 +122,7 @@ void WizardFormPage::Field::setDisplayText(QString text) {
} }
} }
QString WizardFormPage::Field::getDisplayText() { QString WizardFormPage::Field::getDisplayText() const {
auto le = dynamic_cast<QLineEdit*>(this->valueControl); auto le = dynamic_cast<QLineEdit*>(this->valueControl);
auto cb = dynamic_cast<QComboBox*>(this->valueControl); auto cb = dynamic_cast<QComboBox*>(this->valueControl);
if (le) { if (le) {

View File

@ -61,7 +61,7 @@ class NOSTALGIASTUDIO_EXPORT WizardSelect: public QWizardPage {
public: public:
WizardSelect(); WizardSelect();
void addOption(WizardMaker wm); void addOption(const WizardMaker &wm);
void initializePage() override; void initializePage() override;
@ -84,7 +84,7 @@ class NOSTALGIASTUDIO_EXPORT WizardFormPage: public QWizardPage {
void setDisplayText(QString text); void setDisplayText(QString text);
QString getDisplayText(); QString getDisplayText() const;
}; };
QLabel *m_errorMsg = nullptr; QLabel *m_errorMsg = nullptr;
QGridLayout *m_layout = nullptr; QGridLayout *m_layout = nullptr;
@ -129,7 +129,7 @@ class NOSTALGIASTUDIO_EXPORT WizardConclusionPage: public QWizardPage {
public: public:
WizardConclusionPage(QString msg, QVector<QString> field); WizardConclusionPage(QString msg, QVector<QString> field);
virtual ~WizardConclusionPage(); ~WizardConclusionPage() override = default;
void initializePage() override; void initializePage() override;
}; };

View File

@ -31,7 +31,7 @@ int main(int argc, char **args) {
w.show(); w.show();
QObject::connect(&app, &QApplication::aboutToQuit, &w, &MainWindow::onExit); QObject::connect(&app, &QApplication::aboutToQuit, &w, &MainWindow::onExit);
return app.exec(); return app.exec();
} catch (ox::Error err) { } catch (const ox::Error &err) {
oxPanic(err, "Unhandled ox::Error"); oxPanic(err, "Unhandled ox::Error");
} }
} }

View File

@ -26,7 +26,8 @@
#include "lib/project.hpp" #include "lib/project.hpp"
#include "lib/wizard.hpp" #include "lib/wizard.hpp"
#include "json.hpp" #include "json_read.hpp"
#include "json_write.hpp"
#include "mainwindow.hpp" #include "mainwindow.hpp"
namespace nostalgia::studio { namespace nostalgia::studio {
@ -46,9 +47,9 @@ MainWindow::MainWindow(QString profilePath) {
// set window to 75% of screen width, and center NostalgiaStudioProfile // set window to 75% of screen width, and center NostalgiaStudioProfile
constexpr auto sizePct = 0.75; constexpr auto sizePct = 0.75;
resize(screenSize.width() * sizePct, screenSize.height() * sizePct); resize(static_cast<int>(screenSize.width() * sizePct), static_cast<int>(screenSize.height() * sizePct));
move(-x(), -y()); move(-x(), -y());
move(screenSize.width() * (1 - sizePct) / 2, screenSize.height() * (1 - sizePct) / 2); move(static_cast<int>(screenSize.width() * (1 - sizePct) / 2), static_cast<int>(screenSize.height() * (1 - sizePct) / 2));
setWindowTitle(m_profile.appName); setWindowTitle(m_profile.appName);
m_ctx.appName = m_profile.appName; m_ctx.appName = m_profile.appName;
@ -312,7 +313,7 @@ void MainWindow::writeState() {
/** /**
* Read open editor tabs for current project. * Read open editor tabs for current project.
*/ */
QStringList MainWindow::readTabs() { QStringList MainWindow::readTabs() const {
QStringList tabs; QStringList tabs;
QSettings settings(m_profile.orgName, m_profile.appName); QSettings settings(m_profile.orgName, m_profile.appName);
settings.beginReadArray("MainWindow/Project:" + m_state.projectPath); settings.beginReadArray("MainWindow/Project:" + m_state.projectPath);
@ -328,7 +329,7 @@ QStringList MainWindow::readTabs() {
/** /**
* Write open editor tabs for current project. * Write open editor tabs for current project.
*/ */
void MainWindow::writeTabs(QStringList tabs) { void MainWindow::writeTabs(QStringList tabs) const {
QSettings settings(m_profile.orgName, m_profile.appName); QSettings settings(m_profile.orgName, m_profile.appName);
settings.beginWriteArray("MainWindow/Project:" + m_state.projectPath + "/openEditors"); settings.beginWriteArray("MainWindow/Project:" + m_state.projectPath + "/openEditors");
for (int i = 0; i < tabs.size(); i++) { for (int i = 0; i < tabs.size(); i++) {
@ -358,7 +359,7 @@ void MainWindow::openProject(QString projectPath) {
for (auto t : openTabs) { for (auto t : openTabs) {
try { try {
openFile(t, true); openFile(t, true);
} catch (ox::Error err) { } catch (const ox::Error &err) {
qInfo().nospace() << "Error opening tab: " << t << ", " << static_cast<int>(err) << ", " << err.file << ":" << err.line; qInfo().nospace() << "Error opening tab: " << t << ", " << static_cast<int>(err) << ", " << err.file << ":" << err.line;
oxTrace("nostalgia::studio::MainWindow::openProject") << "Error opening tab:" << static_cast<int>(err) oxTrace("nostalgia::studio::MainWindow::openProject") << "Error opening tab:" << static_cast<int>(err)
<< ", " << static_cast<int>(err) << ", " << err.file << ":" << err.line; << ", " << static_cast<int>(err) << ", " << err.file << ":" << err.line;
@ -373,7 +374,7 @@ void MainWindow::openProject(QString projectPath) {
void MainWindow::closeProject() { void MainWindow::closeProject() {
// delete tabs // delete tabs
while (m_tabs->count()) { while (m_tabs->count()) {
auto tab = static_cast<studio::Editor*>(m_tabs->widget(0)); auto tab = dynamic_cast<studio::Editor*>(m_tabs->widget(0));
m_undoGroup.removeStack(tab->undoStack()); m_undoGroup.removeStack(tab->undoStack());
m_tabs->removeTab(0); m_tabs->removeTab(0);
delete tab; delete tab;
@ -529,7 +530,7 @@ void MainWindow::pasteAction() {
} }
void MainWindow::closeTab(int idx) { void MainWindow::closeTab(int idx) {
auto tab = static_cast<studio::Editor*>(m_tabs->widget(idx)); auto tab = dynamic_cast<studio::Editor*>(m_tabs->widget(idx));
m_undoGroup.removeStack(tab->undoStack()); m_undoGroup.removeStack(tab->undoStack());
m_tabs->removeTab(idx); m_tabs->removeTab(idx);
delete tab; delete tab;
@ -588,8 +589,6 @@ void MainWindow::markUnsavedChanges(bool unsavedChanges) {
} }
void MainWindow::showImportWizard() { void MainWindow::showImportWizard() {
const QString TILESHEET_NAME = "projectName";
const QString IMPORT_PATH = "projectPath";
const QString BPP = "bpp"; const QString BPP = "bpp";
Wizard wizard(tr("Import...")); Wizard wizard(tr("Import..."));
auto ws = new WizardSelect(); auto ws = new WizardSelect();

View File

@ -85,9 +85,9 @@ class MainWindow: public QMainWindow {
Editor *m_currentEditor = nullptr; Editor *m_currentEditor = nullptr;
public: public:
MainWindow(QString profilePath); explicit MainWindow(QString profilePath);
virtual ~MainWindow(); ~MainWindow() override;
private: private:
void loadModules(); void loadModules();
@ -104,12 +104,12 @@ class MainWindow: public QMainWindow {
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget); void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget);
QAction *addAction(QMenu *menu, QString text, QString toolTip, const QObject *tgt, const char *cb); static QAction *addAction(QMenu *menu, QString text, QString toolTip, const QObject *tgt, const char *cb);
QAction *addAction(QMenu *menu, QString text, QString toolTip, static QAction *addAction(QMenu *menu, QString text, QString toolTip,
QKeySequence::StandardKey key, const QObject *tgt, const char *cb); QKeySequence::StandardKey key, const QObject *tgt, const char *cb);
QAction *addAction(QMenu *menu, QString text, QString toolTip, static QAction *addAction(QMenu *menu, QString text, QString toolTip,
QKeySequence::StandardKey key, void (*cb)()); QKeySequence::StandardKey key, void (*cb)());
int readState(); int readState();
@ -119,12 +119,12 @@ class MainWindow: public QMainWindow {
/** /**
* Read open editor tabs for current project. * Read open editor tabs for current project.
*/ */
QStringList readTabs(); [[nodiscard]] QStringList readTabs() const;
/** /**
* Write open editor tabs for current project. * Write open editor tabs for current project.
*/ */
void writeTabs(QStringList tabs); void writeTabs(QStringList tabs) const;
void openProject(QString); void openProject(QString);

View File

@ -58,8 +58,8 @@ OxFSFile::~OxFSFile() {
} }
void OxFSFile::appendChild(OxFSModel *model, QStringList pathItems, QString currentPath) { void OxFSFile::appendChild(OxFSModel *model, QStringList pathItems, QString currentPath) {
if (pathItems.size()) { if (!pathItems.empty()) {
auto target = pathItems[0]; const auto &target = pathItems[0];
currentPath += "/" + target; currentPath += "/" + target;
int index = m_childItems.size(); int index = m_childItems.size();
for (int i = 0; i < m_childItems.size(); i++) { for (int i = 0; i < m_childItems.size(); i++) {
@ -138,7 +138,7 @@ QVariant OxFSModel::data(const QModelIndex &index, int role) const {
if (!index.isValid() || role != Qt::DisplayRole) { if (!index.isValid() || role != Qt::DisplayRole) {
return QVariant(); return QVariant();
} else { } else {
OxFSFile *item = static_cast<OxFSFile*>(index.internalPointer()); auto item = static_cast<OxFSFile*>(index.internalPointer());
return item->data(index.column()); return item->data(index.column());
} }
} }
@ -184,8 +184,8 @@ QModelIndex OxFSModel::parent(const QModelIndex &index) const {
return QModelIndex(); return QModelIndex();
} }
OxFSFile *childItem = static_cast<OxFSFile*>(index.internalPointer()); auto childItem = static_cast<OxFSFile*>(index.internalPointer());
OxFSFile *parentItem = childItem->parentItem(); auto parentItem = childItem->parentItem();
if (parentItem == m_rootItem) { if (parentItem == m_rootItem) {
return QModelIndex(); return QModelIndex();
} }
@ -221,7 +221,4 @@ void OxFSModel::updateFile(QString path) {
m_rootItem->appendChild(this, pathItems, ""); m_rootItem->appendChild(this, pathItems, "");
} }
void OxFSModel::setupModelData(const QStringList&, OxFSFile*) {
}
} }

View File

@ -31,19 +31,19 @@ class OxFSFile {
OxFSFile *child(int row); OxFSFile *child(int row);
int childCount() const; [[nodiscard]] int childCount() const;
int columnCount() const; [[nodiscard]] int columnCount() const;
QVariant data(int column) const; [[nodiscard]] QVariant data(int column) const;
int row() const; [[nodiscard]] int row() const;
OxFSFile *parentItem(); OxFSFile *parentItem();
QString name() const; [[nodiscard]] QString name() const;
QString path() const; [[nodiscard]] QString path() const;
}; };
class OxFSModel: public QAbstractItemModel { class OxFSModel: public QAbstractItemModel {
@ -55,31 +55,28 @@ class OxFSModel: public QAbstractItemModel {
OxFSFile *m_rootItem = nullptr; OxFSFile *m_rootItem = nullptr;
public: public:
explicit OxFSModel(ox::PassThroughFS *fs, QObject *parent = 0); explicit OxFSModel(ox::PassThroughFS *fs, QObject *parent = nullptr);
~OxFSModel(); ~OxFSModel() override;
QVariant data(const QModelIndex &index, int role) const override; [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
Qt::ItemFlags flags(const QModelIndex &index) const override; [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
QVariant headerData(int section, Qt::Orientation orientation, [[nodiscard]] QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
int role = Qt::DisplayRole) const override;
QModelIndex index(int row, int column, [[nodiscard]] QModelIndex index(int row, int column,
const QModelIndex &parent = QModelIndex()) const override; const QModelIndex &parent) const override;
QModelIndex parent(const QModelIndex &index) const override; [[nodiscard]] QModelIndex parent(const QModelIndex &index) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override; [[nodiscard]] int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override; [[nodiscard]] int columnCount(const QModelIndex &parent) const override;
public slots: public slots:
void updateFile(QString path); void updateFile(QString path);
private:
void setupModelData(const QStringList &lines, OxFSFile *parent);
}; };
} }

View File

@ -11,7 +11,6 @@
#include <vector> #include <vector>
#include <ox/clargs/clargs.hpp> #include <ox/clargs/clargs.hpp>
#include <ox/fs/fs.hpp> #include <ox/fs/fs.hpp>
#include <ox/std/units.hpp>
#include "pack/pack.hpp" #include "pack/pack.hpp"

View File

@ -39,12 +39,4 @@ QVector<WizardMaker> WorldEditorPlugin::newWizards(const Context *ctx) {
}; };
} }
QWidget *WorldEditorPlugin::makeEditor(QString path, const Context *ctx) {
if (path.startsWith(PATH_ZONES)) {
return new WorldEditor(path, ctx);
} else {
return nullptr;
}
}
} }

View File

@ -22,8 +22,6 @@ class WorldEditorPlugin: public QObject, public studio::Module {
public: public:
QVector<studio::WizardMaker> newWizards(const studio::Context *ctx) override; QVector<studio::WizardMaker> newWizards(const studio::Context *ctx) override;
QWidget *makeEditor(QString path, const studio::Context *ctx) override;
}; };
} }