Revision control

++ // Copyright (C) 2023 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ #include "scatterdatamodifier.h"
++
++ #include <QtWidgets/QApplication>
++ #include <QtWidgets/QWidget>
++ #include <QtWidgets/QHBoxLayout>
++ #include <QtWidgets/QVBoxLayout>
++ #include <QtWidgets/QPushButton>
++ #include <QtWidgets/QCheckBox>
++ #include <QtWidgets/QComboBox>
++ #include <QtWidgets/QLabel>
++ #include <QtWidgets/QMessageBox>
++ #include <QtGui/QScreen>
++ #include <QtGui/QFontDatabase>
++
++ 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();
++ }