EngineType handling improved and JSON array support

This commit is contained in:
Syping 2021-03-06 03:35:12 +01:00
parent 406905b359
commit 1fd16e168c
11 changed files with 102 additions and 56 deletions

View file

@ -26,8 +26,10 @@
int main(int argc, char *argv[])
{
#if QT_VERSION <= QT_VERSION_CHECK(6, 0, 0)
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
#endif
QApplication a(argc, argv);
#ifdef Q_OS_WIN
@ -50,7 +52,7 @@ int main(int argc, char *argv[])
QVariant scriptPath = arguments.first();
QFile luaScript(scriptPath.toString());
if (!luaScript.open(QIODevice::ReadOnly)) {
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << endl;
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << Qt::endl;
return 1;
}
@ -61,22 +63,29 @@ int main(int argc, char *argv[])
luaScript.reset();
}
LuaEngineGui luaEngineGui;
LuaEngineGui luaEngineGui(LuaEngine::RuntimeEngineType);
LuaEngineIO::pushClass(&luaEngineGui);
LuaEngineNetwork::pushClass(&luaEngineGui);
LuaEngineOS::pushClass(&luaEngineGui);
luaEngineGui.pushVariant("_LuaEngineRT", rtPath);
luaEngineGui.pushVariant("_LuaEngineMode", "GUI");
luaEngineGui.setProperty("EngineType", "Runtime");
luaEngineGui.setProperty("ScriptPath", scriptPath);
luaEngineGui.executeLuaScript(luaScript.readAll());
if (luaEngineGui.executeLuaFunction("main", arguments, true)) {
QVariant variant = luaEngineGui.returnVariant();
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (variant.typeId() == QMetaType::Int || variant.typeId() == QMetaType::LongLong) {
#else
if (variant.type() == QVariant::Int || variant.type() == QVariant::LongLong) {
#endif
return variant.toInt();
}
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
else if (variant.typeId() == QMetaType::QString) {
#else
else if (variant.type() == QVariant::String) {
#endif
if (variant.toString() == "GuiExecuted" || variant.toString() == "CliExecuted") {
return a.exec();
}