71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
#include <iostream>
|
|
|
|
#include "javascript/engine/AtlasJsEngine.hpp"
|
|
|
|
#include <QApplication>
|
|
#include <QMainWindow>
|
|
#include <QTextEdit>
|
|
#include <QPushButton>
|
|
#include <QLayout>
|
|
#include <QVBoxLayout>
|
|
#include <QDir>
|
|
#include <QString>
|
|
#include <QTemporaryDir>
|
|
|
|
#include <RestrictedVirtualFileSystem.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 restricted virtual file system
|
|
const auto fileSystem = std::make_shared<rvfs::RestrictedVirtualFileSystem>();
|
|
|
|
// mount the cache directory
|
|
fileSystem->mountDirectory(
|
|
QDir("/cache/"),
|
|
QDir("/home/faraphel/Documents/Projects/Atlas-Launcher/source/")
|
|
);
|
|
|
|
// mount the temporary directory
|
|
const auto temporaryDir = QTemporaryDir();
|
|
fileSystem->mountDirectory(
|
|
QDir("/tmp/"),
|
|
QDir(temporaryDir.path())
|
|
);
|
|
|
|
// 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);
|
|
|
|
QObject::connect(submit.get(), &QPushButton::clicked, [&]() {
|
|
auto engine = std::make_shared<atlas::js::AtlasJsEngine>(nullptr);
|
|
|
|
QJSValue value = engine->evaluate(input->toPlainText());
|
|
output->setText(value.toString());
|
|
});
|
|
|
|
mainWindow->show();
|
|
|
|
return QApplication::exec();
|
|
}
|