60 lines
2.0 KiB
C++
60 lines
2.0 KiB
C++
#include <QGuiApplication>
|
|
#include <QQmlApplicationEngine>
|
|
#include <QQmlContext>
|
|
#include <QCommandLineParser>
|
|
#include <QFileInfo>
|
|
#include <QDir>
|
|
#include <QDebug>
|
|
|
|
#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(&config);
|
|
|
|
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();
|
|
}
|