#include #include #include #include #include #include #include QString getNamedArgument(QStringList args, QString name, QString defaultName) { int index = args.indexOf(name); return (index != -1) ? args[index + 1] : QString(defaultName); } QString getNamedArgument(QStringList args, QString name) { return getNamedArgument(args, name, ""); } int main(int argc, char *argv[]) { setenv("QT_QPA_PLATFORMTHEME", "", 1); QApplication app(argc, argv); QQmlApplicationEngine engine; // Manage command line arguments from the cpp side QStringList args = app.arguments(); if (args.contains("-h") || args.contains("--help")) { qDebug() << "Usage: " + args.at(0) + " [--default-settings] [--workdir ] [--program ] [-p|--profile ] [--fullscreen] [-h|--help]"; qDebug() << " --default-settings Run cool-retro-term with the default settings"; qDebug() << " --workdir Change working directory to 'dir'"; qDebug() << " --program Run the 'prog' in the new terminal."; qDebug() << " --fullscreen Run cool-retro-term in fullscreen."; qDebug() << " -p|--profile Run cool-retro-term with the given profile."; qDebug() << " -h|--help Print this help."; qDebug() << " --verbose Print additional informations such as profiles and settings."; return 0; } engine.rootContext()->setContextProperty("workdir", getNamedArgument(args, "--workdir", "$HOME")); engine.rootContext()->setContextProperty("shellProgram", getNamedArgument(args, "--program")); // Manage import paths for Linux and OSX. QStringList importPathList = engine.importPathList(); importPathList.prepend(QCoreApplication::applicationDirPath() + "/qmltermwidget"); importPathList.prepend(QCoreApplication::applicationDirPath() + "/../PlugIns"); engine.setImportPathList(importPathList); engine.load(QUrl("qrc:/main.qml")); return app.exec(); }