// SPDX-FileCopyrightText: 2023 Joshua Goins // // SPDX-License-Identifier: GPL-3.0-or-later #include "MainWindow.h" #include #include #include #include #include "ArtConfigWindow.h" #include "ArtDetailWindow.h" #include "ArtModel.h" MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory, QWidget *parent) : QMainWindow(parent) { setWindowTitle(i18nc("@title:window", "Redai")); setMinimumSize(1280, 720); auto menuBar = new QMenuBar(); setMenuBar(menuBar); auto manageMenu = menuBar->addMenu(i18nc("@title:menu Manage site", "Manage")); auto editConfigAction = manageMenu->addAction(i18nc("@action:inmenu", "Edit Config...")); connect(editConfigAction, &QAction::triggered, this, [this, dataDirectory] { auto window = new ArtConfigWindow(dataDirectory.absoluteFilePath("art-config.json"), 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](const 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); }