mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-22 20:17:46 +00:00
Reload models when importing via Penumbra HTTP API
This commit is contained in:
parent
e9b02d53f1
commit
020216b13d
7 changed files with 47 additions and 3 deletions
|
@ -11,6 +11,7 @@ target_sources(novus-armoury
|
|||
include/gearlistwidget.h
|
||||
include/gearview.h
|
||||
include/mainwindow.h
|
||||
include/penumbraapi.h
|
||||
include/settingswindow.h
|
||||
include/singlegearview.h
|
||||
|
||||
|
@ -22,6 +23,7 @@ target_sources(novus-armoury
|
|||
src/gearview.cpp
|
||||
src/main.cpp
|
||||
src/mainwindow.cpp
|
||||
src/penumbraapi.cpp
|
||||
src/settingswindow.cpp
|
||||
src/singlegearview.cpp)
|
||||
target_include_directories(novus-armoury
|
||||
|
@ -40,6 +42,7 @@ target_link_libraries(novus-armoury
|
|||
imgui
|
||||
Qt6::Core
|
||||
Qt6::Widgets
|
||||
Qt6::Concurrent)
|
||||
Qt6::Concurrent
|
||||
Qt6::Network)
|
||||
|
||||
install(TARGETS novus-armoury ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
struct GameData;
|
||||
class FileCache;
|
||||
class PenumbraApi;
|
||||
|
||||
class MainWindow : public NovusMainWindow
|
||||
{
|
||||
|
@ -31,4 +32,5 @@ private:
|
|||
|
||||
GameData &data;
|
||||
FileCache cache;
|
||||
PenumbraApi *m_api = nullptr;
|
||||
};
|
18
armoury/include/penumbraapi.h
Normal file
18
armoury/include/penumbraapi.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QNetworkAccessManager>
|
||||
|
||||
class PenumbraApi : public QObject
|
||||
{
|
||||
public:
|
||||
explicit PenumbraApi(QObject *parent = nullptr);
|
||||
|
||||
public Q_SLOTS:
|
||||
void redrawAll();
|
||||
|
||||
private:
|
||||
QNetworkAccessManager *m_mgr = nullptr;
|
||||
};
|
|
@ -29,6 +29,7 @@ Q_SIGNALS:
|
|||
void levelOfDetailChanged();
|
||||
|
||||
void addToFullModelViewer(GearInfo &info);
|
||||
void importedModel();
|
||||
|
||||
public Q_SLOTS:
|
||||
void clear();
|
||||
|
|
|
@ -18,12 +18,14 @@
|
|||
#include "cmpeditor.h"
|
||||
#include "filecache.h"
|
||||
#include "gearlistwidget.h"
|
||||
#include "penumbraapi.h"
|
||||
#include "settingswindow.h"
|
||||
|
||||
MainWindow::MainWindow(GameData *in_data)
|
||||
: NovusMainWindow()
|
||||
, data(*in_data)
|
||||
, cache(FileCache{*in_data})
|
||||
, m_api(new PenumbraApi(this))
|
||||
{
|
||||
setMinimumSize(QSize(800, 600));
|
||||
setupMenubar();
|
||||
|
@ -45,6 +47,7 @@ MainWindow::MainWindow(GameData *in_data)
|
|||
connect(gearView, &SingleGearView::addToFullModelViewer, this, [this](GearInfo &info) {
|
||||
fullModelViewer->addGear(info);
|
||||
});
|
||||
connect(gearView, &SingleGearView::importedModel, m_api, &PenumbraApi::redrawAll);
|
||||
|
||||
auto tabWidget = new QTabWidget();
|
||||
tabWidget->addTab(gearView, QStringLiteral("Models"));
|
||||
|
|
15
armoury/src/penumbraapi.cpp
Normal file
15
armoury/src/penumbraapi.cpp
Normal file
|
@ -0,0 +1,15 @@
|
|||
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "penumbraapi.h"
|
||||
|
||||
PenumbraApi::PenumbraApi(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_mgr(new QNetworkAccessManager(this))
|
||||
{
|
||||
}
|
||||
|
||||
void PenumbraApi::redrawAll()
|
||||
{
|
||||
m_mgr->post(QNetworkRequest(QUrl(QStringLiteral("http://localhost:42069/api/redrawAll"))), QByteArray{});
|
||||
}
|
|
@ -102,8 +102,9 @@ SingleGearView::SingleGearView(GameData *data, FileCache &cache, QWidget *parent
|
|||
tr("Import Model"),
|
||||
QStringLiteral("%1.glb").arg(sanitizeMdlPath(gearView->getLoadedGearPath())),
|
||||
tr("glTF Binary File (*.glb)"));
|
||||
|
||||
importModel(fileName);
|
||||
if (!fileName.isEmpty()) {
|
||||
importModel(fileName);
|
||||
}
|
||||
}
|
||||
});
|
||||
topControlLayout->addWidget(importButton);
|
||||
|
@ -334,6 +335,7 @@ void SingleGearView::importModel(const QString &filename)
|
|||
file.close();
|
||||
|
||||
qInfo() << "Successfully imported model!";
|
||||
Q_EMIT importedModel();
|
||||
}
|
||||
|
||||
#include "moc_singlegearview.cpp"
|
Loading…
Add table
Reference in a new issue