int main(int argc, char *argv[]) { QApplication app(argc, argv); QDir::setCurrent(QCoreApplication::applicationDirPath()); App application; qmlRegisterType<App>("App", 1, 0, "App"); qmlRegisterType<CollectionModel>("CollectionModel", 1, 0, "CollectionModel"); qmlRegisterType<QStringListModel>("QStringListModel", 1, 0, "QStringListModel"); QtQuick2ApplicationViewer viewer; viewer.rootContext()->setContextProperty("app", &application); viewer.rootContext()->setContextProperty("checkModeCpp", &application.getCheckMode()); viewer.rootContext()->setContextProperty("dictionaryModeCpp", &application.getDictionaryMode()); viewer.rootContext()->setContextProperty("rememberModeCpp", &application.getRememberMode()); viewer.setMainQmlFile(QStringLiteral("qml/Learn/main.qml")); viewer.showExpanded(); viewer.setIcon(QIcon(":/new/g/dictionary-icon.png")); viewer.setTitle("Learn"); application.setWindow(&viewer); return app.exec(); }
int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QString fileName; if (app.arguments().length() > 1) { fileName = app.arguments().at(1); } else { qWarning() << "Pass extracted json memory info dump as argument"; return 0; } QtQuick2ApplicationViewer viewer; QFile jsonFile(fileName); if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qWarning() << "Failed to open file:" << fileName; return 0; } viewer.setTitle(fileName); viewer.engine()->rootContext()->setContextProperty("jsonFile", QString(jsonFile.readAll())); viewer.setMainQmlFile(QStringLiteral("qml/memory-dump-reader.qml")); viewer.showExpanded(); return app.exec(); }
int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart"); qmlRegisterType<PieSlice>("Charts", 1, 0, "PieSlice"); Configuration m_configuration; SerialLink m_serialLink; MavLinkManager m_mavlink_manager; LinkManager m_gLinkManager; QtQuick2ApplicationViewer viewer; QtQuick2ApplicationViewer splashscreen; QString customPath = "Sqlite/OfflineStorage"; QDir dir; if(dir.mkpath(QString(customPath))){ // qDebug() << "Default path >> "+viewer.engine()->offlineStoragePath(); viewer.engine()->setOfflineStoragePath(QString(customPath)); // qDebug() << "New path >> "+viewer.engine()->offlineStoragePath(); } // using as normal // viewer.setMainQmlFile(QStringLiteral("qml/gStabiSC/main.qml")); // using qml files form resources file, uncomment this to compile all qml file to .exe splashscreen.setSource(QUrl("qrc:/qml/gStabiSC/GSplashScreen.qml")); splashscreen.setFlags(Qt::FramelessWindowHint); splashscreen.setMinimumSize(QSize(1000,500)); splashscreen.show(); viewer.setSource(QUrl("qrc:/qml/gStabiSC/GMain.qml")); viewer.setTitle(QString("%1 %2").arg(APPLICATION_NAME).arg(APPLICATION_VERSION)); viewer.setMinimumSize(QSize(APPLICATION_WIDTH,APPLICATION_HEIGHT)); viewer.setMaximumSize(QSize(APPLICATION_WIDTH,APPLICATION_HEIGHT)); // viewer.addImportPath("qrc:/qml/gStabiSC"); // viewer.addImportPath("qrc:/qml/gStabiSC/Components"); // viewer.addImportPath("qrc:/qml/gStabiSC/GDashboard"); // viewer.addImportPath("qrc:/javascript/storage.js"); viewer.rootContext()->setContextProperty("_configuration",&m_configuration); viewer.rootContext()->setContextProperty("_serialLink", &m_serialLink); viewer.rootContext()->setContextProperty("_mavlink_manager", &m_mavlink_manager); m_gLinkManager.connectLink(&m_serialLink,&m_mavlink_manager); QTimer::singleShot(3000, &splashscreen, SLOT(close())); QTimer::singleShot(3000, &viewer, SLOT(show())); return app.exec(); }
int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QtQuick2ApplicationViewer viewer; viewer.setTitle("tst_reloader"); QString path; if (argc == 2) path = argv[1]; else path = QStringLiteral("../qmlreloader/qml/qmlreloader/main.qml"); viewer.setMainQmlFile(path); viewer.showExpanded(); Reloader reloader(&viewer, path); return app.exec(); }
int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); Timekeeper timekeeper; QtQuick2ApplicationViewer viewer; timekeeper.nextWeek(); timekeeper.addEvent(QStringLiteral("Jotain"), 2, 2); timekeeper.addEvent(QStringLiteral("Muuta"), 2, 3); timekeeper.prevWeek(); viewer.rootContext()->setContextProperty("timekeeper", &timekeeper); viewer.setMainQmlFile(QStringLiteral("qml/timekeeper/main.qml")); viewer.setTitle(QStringLiteral("Timekeeper")); viewer.showExpanded(); return app.exec(); }
int main(int argc, char *argv[]) { QOptions options(get_common_options()); options.add(QLatin1String("QMLPlayer options")) ("scale", 1.0, QLatin1String("scale of graphics context. 0: auto")) ; options.parse(argc, argv); if (options.value(QLatin1String("help")).toBool()) { options.print(); return 0; } QGuiApplication app(argc, argv); QDir::setCurrent(qApp->applicationDirPath()); qDebug() << "arguments======= " << app.arguments(); set_opengl_backend(options.option(QStringLiteral("gl")).value().toString(), app.arguments().first()); load_qm(QStringList() << QStringLiteral("QMLPlayer"), options.value(QStringLiteral("language")).toString()); QtQuick2ApplicationViewer viewer; QString binDir = qApp->applicationDirPath(); if (binDir.endsWith(QLatin1String(".app/Contents/MacOS"))) { binDir.remove(QLatin1String(".app/Contents/MacOS")); binDir = binDir.left(binDir.lastIndexOf(QLatin1String("/"))); } QQmlEngine *engine = viewer.engine(); if (!engine->importPathList().contains(binDir)) engine->addImportPath(binDir); qDebug() << engine->importPathList(); engine->rootContext()->setContextProperty(QStringLiteral("PlayerConfig"), &Config::instance()); qDebug(">>>>>>>>devicePixelRatio: %f", qApp->devicePixelRatio()); QScreen *sc = app.primaryScreen(); qDebug() << "dpi phy: " << sc->physicalDotsPerInch() << ", logical: " << sc->logicalDotsPerInch() << ", dpr: " << sc->devicePixelRatio() << "; vis rect:" << sc->virtualGeometry(); // define a global var for js and qml engine->rootContext()->setContextProperty(QStringLiteral("screenPixelDensity"), qApp->primaryScreen()->physicalDotsPerInch()*qApp->primaryScreen()->devicePixelRatio()); qreal r = sc->physicalDotsPerInch()/sc->logicalDotsPerInch(); if (std::isinf(r) || std::isnan(r)) #if defined(Q_OS_ANDROID) r = 2.0; #else r = 1.0; #endif float sr = options.value(QStringLiteral("scale")).toFloat(); #if defined(Q_OS_ANDROID) sr = r; if (sr > 2.0) sr = 2.0; //FIXME #endif if (qFuzzyIsNull(sr)) sr = r; engine->rootContext()->setContextProperty(QStringLiteral("scaleRatio"), sr); QString qml = QStringLiteral("qml/QMLPlayer/main.qml"); if (QFile(qApp->applicationDirPath() + QLatin1String("/") + qml).exists()) qml.prepend(qApp->applicationDirPath() + QLatin1String("/")); else qml.prepend(QLatin1String("qrc:///")); viewer.setMainQmlFile(qml); viewer.show(); QOption op = options.option(QStringLiteral("width")); if (op.isSet()) viewer.setWidth(op.value().toInt()); op = options.option(QStringLiteral("height")); if (op.isSet()) viewer.setHeight(op.value().toInt()); op = options.option(QStringLiteral("x")); if (op.isSet()) viewer.setX(op.value().toInt()); op = options.option(QStringLiteral("y")); if (op.isSet()) viewer.setY(op.value().toInt()); if (options.value(QStringLiteral("fullscreen")).toBool()) viewer.showFullScreen(); viewer.setTitle(QStringLiteral("QMLPlayer based on QtAV. [email protected]")); /* * find root item, then root.init(argv). so we can deal with argv in qml */ #if 1 QString json = app.arguments().join(QStringLiteral("\",\"")); json.prepend(QLatin1String("[\"")).append(QLatin1String("\"]")); json.replace(QLatin1String("\\"), QLatin1String("/")); //FIXME QMetaObject::invokeMethod(viewer.rootObject(), "init", Q_ARG(QVariant, json)); //#else QObject *player = viewer.rootObject()->findChild<QObject*>(QStringLiteral("player")); if (player) { AppEventFilter *ae = new AppEventFilter(player, player); qApp->installEventFilter(ae); } QString file; #ifdef Q_OS_ANDROID file = QAndroidJniObject::callStaticObjectMethod("org.qtav.qmlplayer.QMLPlayerActivity" , "getUrl" , "()Ljava/lang/String;") .toString(); #endif if (app.arguments().size() > 1) { file = options.value(QStringLiteral("file")).toString(); if (file.isEmpty()) { if (argc > 1 && !app.arguments().last().startsWith(QLatin1Char('-')) && !app.arguments().at(argc-2).startsWith(QLatin1Char('-'))) file = app.arguments().last(); } } qDebug() << "file: " << file; if (player && !file.isEmpty()) { if (!file.startsWith(QLatin1String("file:")) && QFile(file).exists()) file.prepend(QLatin1String("file:")); //qml use url and will add qrc: if no scheme file.replace(QLatin1String("\\"), QLatin1String("/")); //qurl QMetaObject::invokeMethod(player, "play", Q_ARG(QUrl, QUrl(file))); } #endif QObject::connect(viewer.rootObject(), SIGNAL(requestFullScreen()), &viewer, SLOT(showFullScreen())); QObject::connect(viewer.rootObject(), SIGNAL(requestNormalSize()), &viewer, SLOT(showNormal())); ScreenSaver::instance().disable(); //restore in dtor return app.exec(); }
int main(int argc, char *argv[]) { QOptions options(get_common_options()); options.add("QMLPlayer options") ("scale", 1.0, "scale of graphics context. 0: auto") ; options.parse(argc, argv); if (options.value("help").toBool()) { options.print(); return 0; } QGuiApplication app(argc, argv); QtQuick2ApplicationViewer viewer; qDebug(">>>>>>>>devicePixelRatio: %f", qApp->devicePixelRatio()); QScreen *sc = app.primaryScreen(); qDebug() << "dpi phy: " << sc->physicalDotsPerInch() << ", logical: " << sc->logicalDotsPerInch() << ", dpr: " << sc->devicePixelRatio() << "; vis rect:" << sc->virtualGeometry(); // define a global var for js and qml viewer.engine()->rootContext()->setContextProperty("screenPixelDensity", qApp->primaryScreen()->physicalDotsPerInch()*qApp->primaryScreen()->devicePixelRatio()); qreal r = sc->physicalDotsPerInch()/sc->logicalDotsPerInch(); if (std::isinf(r) || std::isnan(r)) #if defined(Q_OS_ANDROID) r = 2.0; #else r = 1.0; #endif float sr = options.value("scale").toFloat(); if (qFuzzyIsNull(sr)) sr = r; viewer.engine()->rootContext()->setContextProperty("scaleRatio", sr); QString qml = "qml/QMLPlayer/main.qml"; if (QFile(qApp->applicationDirPath() + "/" + qml).exists()) qml.prepend(qApp->applicationDirPath() + "/"); else qml.prepend("qrc:///"); viewer.setMainQmlFile(qml); viewer.showExpanded(); QOption op = options.option("width"); if (op.isSet()) viewer.setWidth(op.value().toInt()); op = options.option("height"); if (op.isSet()) viewer.setHeight(op.value().toInt()); op = options.option("x"); if (op.isSet()) viewer.setX(op.value().toInt()); op = options.option("y"); if (op.isSet()) viewer.setY(op.value().toInt()); if (options.value("fullscreen").toBool()) viewer.showFullScreen(); viewer.setTitle("QMLPlayer based on QtAV. [email protected]"); /* * find root item, then root.init(argv). so we can deal with argv in qml */ #if 1 QString json = app.arguments().join("\",\""); json.prepend("[\"").append("\"]"); json.replace("\\", "/"); //FIXME QMetaObject::invokeMethod(viewer.rootObject(), "init", Q_ARG(QVariant, json)); //#else if (app.arguments().size() > 1) { qDebug("arguments > 1"); QObject *player = viewer.rootObject()->findChild<QObject*>("player"); QString file = options.value("file").toString(); if (player && !file.isEmpty()) { if (QFile(file).exists()) file.prepend("file://"); file.replace("\\", "/"); //qurl QMetaObject::invokeMethod(player, "play", Q_ARG(QUrl, QUrl(file))); } } #endif QObject::connect(viewer.rootObject(), SIGNAL(requestFullScreen()), &viewer, SLOT(showFullScreen())); QObject::connect(viewer.rootObject(), SIGNAL(requestNormalSize()), &viewer, SLOT(showNormal())); ScreenSaver::instance().disable(); //restore in dtor return app.exec(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QByteArray applicationName; applicationName = QFileInfo(QCoreApplication::applicationFilePath()).fileName().toUtf8(); qputenv("APP_ID", applicationName); qmlRegisterType<WhiteListItem>("Ubuntu.Checkbox", 0, 1, "WhiteListItem"); qmlRegisterType<TestItem>("Ubuntu.Checkbox", 0, 1, "TestItem"); QtQuick2ApplicationViewer viewer; // Create our GuiEngine and hang it on QGuiApplication GuiEngine guiengine((QObject*)&app); // Register the applicationName with the QML runtime viewer.rootContext()->setContextProperty("applicationName", applicationName); // Register the GuiEngine with the QML runtime viewer.rootContext()->setContextProperty("guiEngine", &guiengine); // Initialise - connect to Plainbox guiengine.Initialise(); // WhiteList Item Model Factory and placeholder model registered with QML engine WhiteListModelFactory whitelistfactory; viewer.rootContext()->setContextProperty("whitelistitemFactory",&whitelistfactory); /* We need a placeholder object here or the QML integration is unhappy * that this isnt a recognisable Qt object. */ ListModel* whitelistmodel = new ListModel(new WhiteListItem, qApp); if (!whitelistmodel) { // Essentially we are likely out of memory here qDebug("Cannot create whitelist model"); exit(1); } viewer.rootContext()->setContextProperty("whiteListModel", whitelistmodel); // Test Item Model Factory and placeholder model registered with QML engine TestItemModel testitemFactory; viewer.rootContext()->setContextProperty("testitemFactory",&testitemFactory); /* We need a placeholder object here or the QML integration is unhappy * that this isnt a recognisable Qt object. */ ListModel* testlistmodel = new ListModel(new TestItem, qApp); //CreateTestListModel(); if (!testlistmodel) { // Essentially we are likely out of memory here qDebug("Cannot create testlist model"); exit(1); } viewer.rootContext()->setContextProperty("testListModel", testlistmodel); // We may not need this at all CommandTool cmdTool; viewer.rootContext()->setContextProperty("cmdTool", &cmdTool); // In the beginning, lets see if we need to resume bool resumeSession = false; QString previous = guiengine.GuiPreviousSessionFile(); if ( previous.isEmpty() ) { // Show the Welcome screen } else { // show the resume screen qDebug() << "Resume session file : " << previous; resumeSession = true; } viewer.rootContext()->setContextProperty("resumePreviousSession",resumeSession); // Now, load the main page viewer.setMainQmlFile(QStringLiteral("../share/checkbox-gui/qml/checkbox-gui.qml")); viewer.setTitle(app.tr("System Testing")); // Ensure a reasonable minimum size for this window viewer.setMinimumSize(QSize(800,600)); viewer.showExpanded(); int errcode = app.exec(); // Shutdown the guiengine guiengine.Shutdown(); return errcode; }