// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include #include #include #include #include #include #include "resultsio.h" #if USE_CHARTS #include "chartsdatasource.h" #else #include "datasource.h" #endif int main(int argc, char *argv[]) { // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. QApplication app(argc, argv); QQuickView viewer; viewer.setMinimumSize({600, 400}); // The following are needed to make examples run without having to install the module // in desktop environments. #ifdef Q_OS_WIN QString extraImportPath(QStringLiteral("%1/../../../../%2")); #else QString extraImportPath(QStringLiteral("%1/../../../%2")); #endif viewer.engine()->addImportPath( extraImportPath.arg(QGuiApplication::applicationDirPath(), QString::fromLatin1("qml"))); QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); int frame = 0; qreal time = QDateTime::currentMSecsSinceEpoch(); QObject::connect(&viewer, &QQuickView::frameSwapped, &viewer, [&]() { frame++; if (QDateTime::currentMSecsSinceEpoch() >= time + 1000) { time = QDateTime::currentMSecsSinceEpoch(); viewer.rootObject()->setProperty("fps", frame); frame = 0; } }); #if USE_CHARTS ChartsDataSource chartsDataSource(&viewer); viewer.rootContext()->setContextProperty("chartsDataSource", &chartsDataSource); #else DataSource dataSource(&viewer); viewer.rootContext()->setContextProperty("dataSource", &dataSource); #endif ResultsIO resultsIO(&viewer); viewer.rootContext()->setContextProperty("resultsIO", &resultsIO); viewer.setTitle(QStringLiteral("Benchmark")); viewer.setSource(QUrl("qrc:/Main.qml")); viewer.setResizeMode(QQuickView::SizeRootObjectToView); viewer.show(); return app.exec(); }