mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-23 04:27:45 +00:00
Hide FMV by default, toggle with a menu action
This commit is contained in:
parent
09e1d25d09
commit
34082479ed
4 changed files with 46 additions and 3 deletions
|
@ -18,9 +18,14 @@ class FullModelViewer : public QMainWindow
|
||||||
public:
|
public:
|
||||||
explicit FullModelViewer(GameData *data, FileCache &cache, QWidget *parent = nullptr);
|
explicit FullModelViewer(GameData *data, FileCache &cache, QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
void showEvent(QShowEvent *event) override;
|
||||||
|
void hideEvent(QHideEvent *event) override;
|
||||||
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void gearChanged();
|
void gearChanged();
|
||||||
void loadingChanged(bool loading);
|
void loadingChanged(bool loading);
|
||||||
|
void visibleChanged();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void clear();
|
void clear();
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include "boneeditor.h"
|
#include "boneeditor.h"
|
||||||
#include "magic_enum.hpp"
|
#include "magic_enum.hpp"
|
||||||
|
#include <QCloseEvent>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
|
@ -19,6 +20,7 @@ FullModelViewer::FullModelViewer(GameData *data, FileCache &cache, QWidget *pare
|
||||||
setWindowTitle(QStringLiteral("Full Model Viewer"));
|
setWindowTitle(QStringLiteral("Full Model Viewer"));
|
||||||
setMinimumWidth(1280);
|
setMinimumWidth(1280);
|
||||||
setMinimumHeight(720);
|
setMinimumHeight(720);
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose, false);
|
||||||
|
|
||||||
auto dummyWidget = new QWidget();
|
auto dummyWidget = new QWidget();
|
||||||
setCentralWidget(dummyWidget);
|
setCentralWidget(dummyWidget);
|
||||||
|
@ -136,6 +138,25 @@ FullModelViewer::FullModelViewer(GameData *data, FileCache &cache, QWidget *pare
|
||||||
reloadGear();
|
reloadGear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FullModelViewer::showEvent(QShowEvent *event)
|
||||||
|
{
|
||||||
|
Q_EMIT visibleChanged();
|
||||||
|
QWidget::showEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullModelViewer::hideEvent(QHideEvent *event)
|
||||||
|
{
|
||||||
|
Q_EMIT visibleChanged();
|
||||||
|
QWidget::hideEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullModelViewer::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
event->setAccepted(true);
|
||||||
|
hide();
|
||||||
|
QWidget::closeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
void FullModelViewer::clear()
|
void FullModelViewer::clear()
|
||||||
{
|
{
|
||||||
topSlot.reset();
|
topSlot.reset();
|
||||||
|
|
|
@ -54,13 +54,25 @@ MainWindow::MainWindow(GameData *in_data)
|
||||||
connect(fullModelViewer, &FullModelViewer::loadingChanged, this, [this](const bool loading) {
|
connect(fullModelViewer, &FullModelViewer::loadingChanged, this, [this](const bool loading) {
|
||||||
gearView->setFMVAvailable(!loading);
|
gearView->setFMVAvailable(!loading);
|
||||||
});
|
});
|
||||||
fullModelViewer->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setupAdditionalMenus(QMenuBar *menuBar)
|
void MainWindow::setupAdditionalMenus(QMenuBar *menuBar)
|
||||||
{
|
{
|
||||||
auto toolsMenu = menuBar->addMenu(QStringLiteral("Tools"));
|
auto toolsMenu = menuBar->addMenu(QStringLiteral("Tools"));
|
||||||
|
|
||||||
|
auto fmvMenu = toolsMenu->addAction(QStringLiteral("Full Model viewer"));
|
||||||
|
fmvMenu->setCheckable(true);
|
||||||
|
connect(fmvMenu, &QAction::toggled, [this](bool toggled) {
|
||||||
|
if (toggled) {
|
||||||
|
fullModelViewer->show();
|
||||||
|
} else {
|
||||||
|
fullModelViewer->hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
connect(fullModelViewer, &FullModelViewer::visibleChanged, this, [this, fmvMenu] {
|
||||||
|
fmvMenu->setChecked(fullModelViewer->isVisible());
|
||||||
|
});
|
||||||
|
|
||||||
auto cmpEditorMenu = toolsMenu->addAction(QStringLiteral("CMP Editor"));
|
auto cmpEditorMenu = toolsMenu->addAction(QStringLiteral("CMP Editor"));
|
||||||
cmpEditorMenu->setIcon(QIcon::fromTheme(QStringLiteral("document-edit")));
|
cmpEditorMenu->setIcon(QIcon::fromTheme(QStringLiteral("document-edit")));
|
||||||
connect(cmpEditorMenu, &QAction::triggered, [this] {
|
connect(cmpEditorMenu, &QAction::triggered, [this] {
|
||||||
|
|
|
@ -24,10 +24,11 @@ void VulkanWindow::exposeEvent(QExposeEvent *)
|
||||||
m_initialized = true;
|
m_initialized = true;
|
||||||
|
|
||||||
auto surface = m_instance->surfaceForWindow(this);
|
auto surface = m_instance->surfaceForWindow(this);
|
||||||
if (!m_renderer->initSwapchain(surface, width() * screen()->devicePixelRatio(), height() * screen()->devicePixelRatio()))
|
if (!m_renderer->initSwapchain(surface, width() * screen()->devicePixelRatio(), height() * screen()->devicePixelRatio())) {
|
||||||
m_initialized = false;
|
m_initialized = false;
|
||||||
else
|
} else {
|
||||||
render();
|
render();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isExposed() && m_initialized) {
|
if (!isExposed() && m_initialized) {
|
||||||
|
@ -113,6 +114,10 @@ bool VulkanWindow::event(QEvent *e)
|
||||||
|
|
||||||
void VulkanWindow::render()
|
void VulkanWindow::render()
|
||||||
{
|
{
|
||||||
|
if (!m_initialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SetCurrentContext(m_renderer->ctx);
|
ImGui::SetCurrentContext(m_renderer->ctx);
|
||||||
|
|
||||||
auto &io = ImGui::GetIO();
|
auto &io = ImGui::GetIO();
|
||||||
|
|
Loading…
Add table
Reference in a new issue