// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include "scatterdatamodifier.h" #include #include #include #include #include #include #include #include #include #include #include int main(int argc, char **argv) { QApplication app(argc, argv); auto quickWidget = new QQuickWidget; Q3DScatterWidgetItem *graph = new Q3DScatterWidgetItem(); graph->setWidget(quickWidget); QSize screenSize = graph->widget()->screen()->size(); graph->widget()->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.5)); graph->widget()->setMaximumSize(screenSize); graph->widget()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); graph->widget()->setFocusPolicy(Qt::StrongFocus); QWidget *widget = new QWidget; QHBoxLayout *hLayout = new QHBoxLayout(widget); QVBoxLayout *vLayout = new QVBoxLayout(); hLayout->addWidget(graph->widget(), 1); hLayout->addLayout(vLayout); widget->setWindowTitle(QStringLiteral("Custom Input Handling")); QPushButton *cameraButton = new QPushButton(widget); cameraButton->setText(QStringLiteral("Toggle Camera Animation")); QComboBox *shadowQuality = new QComboBox(widget); shadowQuality->addItem(QStringLiteral("None")); shadowQuality->addItem(QStringLiteral("Low")); shadowQuality->addItem(QStringLiteral("Medium")); shadowQuality->addItem(QStringLiteral("High")); shadowQuality->addItem(QStringLiteral("Low Soft")); shadowQuality->addItem(QStringLiteral("Medium Soft")); shadowQuality->addItem(QStringLiteral("High Soft")); shadowQuality->setCurrentIndex(2); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop); vLayout->addWidget(shadowQuality, 1, Qt::AlignTop); ScatterDataModifier *modifier = new ScatterDataModifier(graph); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ScatterDataModifier::toggleCameraAnimation); QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, SLOT(changeShadowQuality(int))); QObject::connect(modifier, &ScatterDataModifier::shadowQualityChanged, shadowQuality, &QComboBox::setCurrentIndex); widget->show(); modifier->start(); return app.exec(); }