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

Add sdklauncher application

This commit is contained in:
Joshua Goins 2023-08-31 14:18:50 +02:00
parent 4002901dbd
commit e66036c9fc
5 changed files with 92 additions and 1 deletions

View file

@ -47,4 +47,5 @@ add_subdirectory(explorer)
add_subdirectory(bonedecomp)
add_subdirectory(parts)
add_subdirectory(common)
add_subdirectory(mdlviewer)
add_subdirectory(mdlviewer)
add_subdirectory(sdklauncher)

View file

@ -0,0 +1,10 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(sdklauncher
src/main.cpp
src/mainwindow.cpp)
target_link_libraries(sdklauncher PUBLIC Qt5::Widgets)
target_include_directories(sdklauncher PUBLIC include)

View file

@ -0,0 +1,8 @@
#pragma once
#include <QMainWindow>
class MainWindow : public QMainWindow {
public:
MainWindow();
};

12
sdklauncher/src/main.cpp Normal file
View file

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

View file

@ -0,0 +1,60 @@
#include "mainwindow.h"
#include <QListWidget>
#include <QProcess>
#include <QVBoxLayout>
#include <QFormLayout>
#include <QComboBox>
#include <QDebug>
static QMap<QString, QString> applications = {
{"Armoury", "armoury"},
{"EXD Viewer", "exdviewer"},
{"Explorer", "explorer"},
{"Model Viewer", "mdlviewer"}
};
MainWindow::MainWindow() {
setWindowTitle("Novus SDK");
auto appList = new QListWidget();
auto applicationHeader = new QListWidgetItem();
applicationHeader->setText("Applications");
applicationHeader->setFlags(Qt::NoItemFlags);
appList->addItem(applicationHeader);
for(const auto& name : applications.keys()) {
appList->addItem(name);
}
connect(appList, &QListWidget::itemClicked, [this](QListWidgetItem* item) {
QString exec = "./" + applications[item->text()];
qDebug() << "Launching" << exec;
QProcess::startDetached(exec, QStringList());
});
auto appListLayout = new QVBoxLayout();
appListLayout->addWidget(appList);
auto centralFrame = new QFrame();
centralFrame->setLayout(appListLayout);
auto formLayout = new QFormLayout();
auto gameCombo = new QComboBox();
formLayout->addRow("Current Game", gameCombo);
formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
gameCombo->addItem("Placeholder");
auto mainLayout = new QVBoxLayout();
mainLayout->addWidget(centralFrame);
mainLayout->addLayout(formLayout);
auto centralWidget = new QWidget();
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
}