1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-26 05:37:46 +00:00

Add framework for mdlviewer

This commit is contained in:
Joshua Goins 2022-04-11 21:59:37 -04:00
parent cafd3e5dca
commit 99fb9ca1aa
7 changed files with 77 additions and 6 deletions

View file

@ -31,3 +31,4 @@ else()
endif()
add_subdirectory(exdviewer)
add_subdirectory(mdlviewer)

View file

@ -11,7 +11,7 @@
#include "mdlparser.h"
MainWindow::MainWindow(GameData& data) : data(data) {
setWindowTitle("Novus");
setWindowTitle("exdviewer");
auto dummyWidget = new QWidget();
setCentralWidget(dummyWidget);
@ -26,9 +26,6 @@ MainWindow::MainWindow(GameData& data) : data(data) {
auto* pageTabWidget = new QTabWidget();
data.extractFile("chara/equipment/e0000/model/c0201e0000_top.mdl", "top.mdl");
parseMDL("top.mdl");
connect(listWidget, &QListWidget::itemClicked, this, [&data, pageTabWidget](QListWidgetItem* item) {
pageTabWidget->clear();

2
libxiv

@ -1 +1 @@
Subproject commit fbe386c958e5caa716aac13c82e05af0c4abcbe7
Subproject commit f8835854a3656f6212d647e7c7ce7c0c50c698b7

24
mdlviewer/CMakeLists.txt Normal file
View file

@ -0,0 +1,24 @@
add_executable(mdlviewer
src/main.cpp
src/mainwindow.cpp)
target_include_directories(mdlviewer
PUBLIC
include)
target_link_libraries(mdlviewer PUBLIC libxiv ${LIBRARIES} Qt5::Core Qt5::Widgets)
install(TARGETS mdlviewer
DESTINATION "${INSTALL_BIN_PATH}")
if(WIN32)
get_target_property(QMAKE_EXE Qt5::qmake IMPORTED_LOCATION)
get_filename_component(QT_BIN_DIR "${QMAKE_EXE}" DIRECTORY)
find_program(WINDEPLOYQT_ENV_SETUP qtenv2.bat HINTS "${QT_BIN_DIR}")
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${QT_BIN_DIR}")
# Run windeployqt immediately after build
add_custom_command(TARGET mdlviewer
POST_BUILD
COMMAND "${WINDEPLOYQT_ENV_SETUP}" && "${WINDEPLOYQT_EXECUTABLE}" \"$<TARGET_FILE:mdlviewer>\"
)
endif()

View file

@ -0,0 +1,13 @@
#pragma once
#include <QMainWindow>
class GameData;
class MainWindow : public QMainWindow {
public:
MainWindow(GameData& data);
private:
GameData& data;
};

15
mdlviewer/src/main.cpp Normal file
View file

@ -0,0 +1,15 @@
#include <QApplication>
#include "mainwindow.h"
#include "gamedata.h"
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
GameData data(argv[1]);
MainWindow w(data);
w.show();
return app.exec();
}

View file

@ -0,0 +1,21 @@
#include "mainwindow.h"
#include <QHBoxLayout>
#include <QTableWidget>
#include <fmt/core.h>
#include <QListWidget>
#include "gamedata.h"
#include "exhparser.h"
#include "exdparser.h"
#include "mdlparser.h"
MainWindow::MainWindow(GameData& data) : data(data) {
setWindowTitle("mdlviewer");
auto dummyWidget = new QWidget();
setCentralWidget(dummyWidget);
auto layout = new QHBoxLayout();
dummyWidget->setLayout(layout);
}