diff --git a/src/ArtDetailWindow.cpp b/src/ArtDetailWindow.cpp index 3f864a4..8f4a9fc 100644 --- a/src/ArtDetailWindow.cpp +++ b/src/ArtDetailWindow.cpp @@ -18,8 +18,10 @@ #include #include -ArtDetailWindow::ArtDetailWindow(const QString& filename, const QString& assetDirectory, QWidget* parent) : QDialog(parent) { - setMinimumWidth(800); +ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirectory, QWidget *parent) + : QDialog(parent) +{ + setMinimumWidth(800); setMinimumHeight(600); setWindowModality(Qt::WindowModality::WindowModal); setWindowTitle(filename); @@ -37,7 +39,7 @@ ArtDetailWindow::ArtDetailWindow(const QString& filename, const QString& assetDi mainLayout->addWidget(formLayoutWidget); QImage image; - image.load(QStringLiteral("%1/%2.webp").arg(assetDirectory, withoutExtension)); + image.load(assetDirectory.absoluteFilePath(QStringLiteral("%1.webp").arg(withoutExtension))); auto previewBox = new QGroupBox(i18nc("@title:group", "Preview")); mainLayout->addWidget(previewBox); diff --git a/src/ArtDetailWindow.h b/src/ArtDetailWindow.h index c3d34fe..002a1d4 100644 --- a/src/ArtDetailWindow.h +++ b/src/ArtDetailWindow.h @@ -6,17 +6,18 @@ #include #include +#include +#include #include #include #include #include #include -#include class ArtDetailWindow : public QDialog { Q_OBJECT public: - ArtDetailWindow(const QString& filename, const QString& assetDirectory, QWidget* parent = nullptr); + ArtDetailWindow(const QString &filename, const QDir &assetDirectory, QWidget *parent = nullptr); private: void loadData(const QString& filename); diff --git a/src/ArtModel.cpp b/src/ArtModel.cpp index 80dd0dd..a5b7a0c 100644 --- a/src/ArtModel.cpp +++ b/src/ArtModel.cpp @@ -14,8 +14,10 @@ #include #include -ArtModel::ArtModel(const QString& definitionDirectory, const QString& assetDirectory) : QAbstractTableModel() { - piecesFuture = new QFutureWatcher(this); +ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory) + : QAbstractTableModel() +{ + piecesFuture = new QFutureWatcher(this); connect(piecesFuture, &QFutureWatcher::resultReadyAt, this, &ArtModel::pieceFinished); connect(piecesFuture, &QFutureWatcher::finished, this, &ArtModel::finished); @@ -31,9 +33,9 @@ ArtModel::ArtModel(const QString& definitionDirectory, const QString& assetDirec continue; } - pieceList.push_back(PieceInformation{QStringLiteral("%1/%2").arg(definitionDirectory, info.baseName()), QStringLiteral("%1/%2").arg(assetDirectory, info.baseName())}); + pieceList.push_back(PieceInformation{definitionDirectory.absoluteFilePath(info.baseName()), assetDirectory.absoluteFilePath(info.baseName())}); - beginInsertRows(QModelIndex(), m_artPieces.size(), m_artPieces.size() + 1); + beginInsertRows(QModelIndex(), m_artPieces.size(), m_artPieces.size() + 1); m_artPieces.push_back(ArtPiece{}); diff --git a/src/ArtModel.h b/src/ArtModel.h index 097157d..2887bfd 100644 --- a/src/ArtModel.h +++ b/src/ArtModel.h @@ -5,9 +5,10 @@ #pragma once #include +#include +#include #include #include -#include struct ArtPiece { QString filename, jsonFilename; @@ -23,9 +24,9 @@ struct ArtPiece { class ArtModel : public QAbstractTableModel { Q_OBJECT public: - explicit ArtModel(const QString& definitionDirectory, const QString& assetDirectory); + explicit ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory); - [[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]] QVariant data(const QModelIndex &index, int role) const override; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 8f70c85..b8a31d8 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -13,7 +13,8 @@ #include "ArtDetailWindow.h" #include "ArtModel.h" -MainWindow::MainWindow(const QString& definitionDirectory, const QString& assetDirectory, const QString& dataDirectory) { +MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory) +{ setWindowTitle(i18nc("@title:window", "Redai")); setMinimumSize(1280, 720); @@ -24,7 +25,7 @@ MainWindow::MainWindow(const QString& definitionDirectory, const QString& assetD auto editConfigAction = manageMenu->addAction(i18nc("@action:inmenu", "Edit Config...")); connect(editConfigAction, &QAction::triggered, this, [this, dataDirectory] { - auto window = new ArtConfigWindow(QStringLiteral("%1/art-config.json").arg(dataDirectory), this); + auto window = new ArtConfigWindow(dataDirectory.absoluteFilePath("art-config.json"), this); window->show(); }); diff --git a/src/MainWindow.h b/src/MainWindow.h index 688aa88..abaf364 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -4,10 +4,11 @@ #pragma once +#include #include class MainWindow : public QMainWindow { Q_OBJECT public: - explicit MainWindow(const QString& definitionDirectory, const QString& assetDirectory, const QString& dataDirectory); + explicit MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory); };