mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-22 20:17:46 +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:
|
||||
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:
|
||||
void gearChanged();
|
||||
void loadingChanged(bool loading);
|
||||
void visibleChanged();
|
||||
|
||||
public Q_SLOTS:
|
||||
void clear();
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "boneeditor.h"
|
||||
#include "magic_enum.hpp"
|
||||
#include <QCloseEvent>
|
||||
#include <QFileDialog>
|
||||
#include <QFormLayout>
|
||||
#include <QGroupBox>
|
||||
|
@ -19,6 +20,7 @@ FullModelViewer::FullModelViewer(GameData *data, FileCache &cache, QWidget *pare
|
|||
setWindowTitle(QStringLiteral("Full Model Viewer"));
|
||||
setMinimumWidth(1280);
|
||||
setMinimumHeight(720);
|
||||
setAttribute(Qt::WA_DeleteOnClose, false);
|
||||
|
||||
auto dummyWidget = new QWidget();
|
||||
setCentralWidget(dummyWidget);
|
||||
|
@ -136,6 +138,25 @@ FullModelViewer::FullModelViewer(GameData *data, FileCache &cache, QWidget *pare
|
|||
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()
|
||||
{
|
||||
topSlot.reset();
|
||||
|
|
|
@ -54,13 +54,25 @@ MainWindow::MainWindow(GameData *in_data)
|
|||
connect(fullModelViewer, &FullModelViewer::loadingChanged, this, [this](const bool loading) {
|
||||
gearView->setFMVAvailable(!loading);
|
||||
});
|
||||
fullModelViewer->show();
|
||||
}
|
||||
|
||||
void MainWindow::setupAdditionalMenus(QMenuBar *menuBar)
|
||||
{
|
||||
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"));
|
||||
cmpEditorMenu->setIcon(QIcon::fromTheme(QStringLiteral("document-edit")));
|
||||
connect(cmpEditorMenu, &QAction::triggered, [this] {
|
||||
|
|
|
@ -24,10 +24,11 @@ void VulkanWindow::exposeEvent(QExposeEvent *)
|
|||
m_initialized = true;
|
||||
|
||||
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;
|
||||
else
|
||||
} else {
|
||||
render();
|
||||
}
|
||||
}
|
||||
|
||||
if (!isExposed() && m_initialized) {
|
||||
|
@ -113,6 +114,10 @@ bool VulkanWindow::event(QEvent *e)
|
|||
|
||||
void VulkanWindow::render()
|
||||
{
|
||||
if (!m_initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui::SetCurrentContext(m_renderer->ctx);
|
||||
|
||||
auto &io = ImGui::GetIO();
|
||||
|
|
Loading…
Add table
Reference in a new issue