Atlas-Launcher/source/main.cpp

51 lines
1.4 KiB
C++

#include <QApplication>
#include <QMainWindow>
#include <QTextEdit>
#include <QPushButton>
#include <QLayout>
#include <QVBoxLayout>
#include <QString>
#include "javascript/engine/AtlasJsEngine.hpp"
int main(int argc, char* argv[]) {
// application informations
QApplication application(argc, argv);
QApplication::setOrganizationDomain("faraphel.fr");
QApplication::setApplicationName("Atlas-Launcher");
QApplication::setApplicationVersion("1.0.0");
// create a small window
auto mainWindow = std::make_shared<QMainWindow>();
auto widget = std::make_shared<QWidget>();
mainWindow->setCentralWidget(widget.get());
auto layout = std::make_shared<QVBoxLayout>();
widget->setLayout(layout.get());
auto input = std::make_shared<QTextEdit>();
layout->addWidget(input.get());
auto submit = std::make_shared<QPushButton>();
layout->addWidget(submit.get());
submit->setText("Run");
auto output = std::make_shared<QTextEdit>();
layout->addWidget(output.get());
output->setEnabled(false);
// create the javascript engine
auto engine = std::make_shared<AtlasJsEngine>(widget.get());
// when submit clicked, run the code and show the output
QObject::connect(submit.get(), &QPushButton::clicked, [&] {
QJSValue value = engine->evaluate(input->toPlainText());
output->setText(value.toString());
});
mainWindow->show();
return QApplication::exec();
}