#include #include #include #include #include #include #include #include "configmanager.h" #include "buttonsmodel.h" #include "buttoncontroller.h" #include "settingscontainer.h" #include "systeminfo.h" int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", "qtvirtualkeyboard"); QGuiApplication app(argc, argv); QCoreApplication::setApplicationName("ButtonTask"); QCoreApplication::setOrganizationName("ButtonTask"); QCoreApplication::setApplicationVersion("2.5"); QCommandLineParser parser; parser.setApplicationDescription("ButtonTask v2 - configurable button panel"); parser.addHelpOption(); parser.addVersionOption(); QCommandLineOption configOpt(QStringList() << "c" << "config", "Path to config.json", "path"); parser.addOption(configOpt); parser.process(app); QString configPath = parser.value(configOpt); if (configPath.isEmpty()) configPath = qEnvironmentVariable("BUTTONTASK_CONFIG"); if (configPath.isEmpty()) configPath = QCoreApplication::applicationDirPath() + "/config/config.json"; qInfo() << "Using config:" << configPath; ConfigManager config(configPath); ButtonsModel model(&config); ButtonController controller(&config, &model); SettingsContainer settings(&config); SystemInfo systemInfo; QQmlApplicationEngine engine; engine.rootContext()->setContextProperty("config", &config); engine.rootContext()->setContextProperty("buttonsModel", &model); engine.rootContext()->setContextProperty("btnController", &controller); engine.rootContext()->setContextProperty("settingsContainer", &settings); engine.rootContext()->setContextProperty("systemInfo", &systemInfo); engine.load(QUrl(QStringLiteral("qrc:/qml/Main.qml"))); if (engine.rootObjects().isEmpty()) return -1; return app.exec(); }