#include "MainWindow.h" #include #include #include #include "ArtConfigWindow.h" #include "ArtDetailWindow.h" #include "ArtModel.h" MainWindow::MainWindow(const QString& definitionDirectory, const QString& assetDirectory, const QString& dataDirectory) { setWindowTitle("Redai"); setMinimumSize(1280, 720); auto menuBar = new QMenuBar(); setMenuBar(menuBar); auto manageMenu = menuBar->addMenu("Manage"); auto editConfigAction = manageMenu->addAction("Edit Config..."); connect(editConfigAction, &QAction::triggered, this, [this, dataDirectory] { auto window = new ArtConfigWindow(QStringLiteral("%1/art-config.json").arg(dataDirectory), this); window->show(); }); auto model = new ArtModel(definitionDirectory, assetDirectory); auto pieceListView = new QTableView(); pieceListView->setModel(model); pieceListView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); pieceListView->setSelectionMode(QAbstractItemView::SingleSelection); QHeaderView *verticalHeader = pieceListView->verticalHeader(); verticalHeader->setSectionResizeMode(QHeaderView::ResizeToContents); QHeaderView *horizontalHeader = pieceListView->horizontalHeader(); horizontalHeader->setSectionResizeMode(QHeaderView::ResizeToContents); connect(pieceListView, &QListView::clicked, this, [this, assetDirectory](QModelIndex index) { const QString filename = index.data(Qt::UserRole + 1).toString(); const QJsonObject object = index.data(Qt::UserRole).toJsonObject(); auto window = new ArtDetailWindow(filename, assetDirectory, this); window->show(); }); setCentralWidget(pieceListView); }