From 6f21cb0b230679821b651068518001c64c2cff57 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 5 Sep 2023 15:52:28 +0300 Subject: [PATCH] QmlDesigner: Cleanup puppet and related versioned code QDS requires minimum Qt version 6.4.3 to build at all, so removed all code and files from puppet that were relevant only for prior versions. Fixes: QDS-10556 Change-Id: I58a151fc25f733d4815869e749f77fe30072c19b Reviewed-by: Reviewed-by: Mahmoud Badri Reviewed-by: Tim Jenssen Reviewed-by: Qt CI Patch Build Bot --- .../itemlibrary/itemlibraryassetimporter.cpp | 93 +- .../itemlibrary/itemlibraryassetimporter.h | 4 - .../metainfo/subcomponentmanager.cpp | 5 - .../qmldesigner/qmldesignerconstants.h | 1 - src/tools/qml2puppet/CMakeLists.txt | 22 - src/tools/qml2puppet/editor3d_qt5.qrc | 58 -- src/tools/qml2puppet/editor3d_qt6.qrc | 3 - .../instances/nodeinstanceclientproxy.cpp | 4 - .../qml2puppet/mockfiles/GenericBackend.qml | 8 - .../qml2puppet/mockfiles/images/area.png | Bin 1250 -> 0 bytes .../qml2puppet/mockfiles/images/area@2x.png | Bin 2326 -> 0 bytes .../mockfiles/images/static_floor.png | Bin 2685 -> 0 bytes .../mockfiles/qt5/AdjustableArrow.qml | 29 - .../mockfiles/qt5/AreaLightHandle.qml | 63 -- src/tools/qml2puppet/mockfiles/qt5/Arrow.qml | 41 - .../mockfiles/qt5/AutoScaleHelper.qml | 52 - .../qml2puppet/mockfiles/qt5/AxisHelper.qml | 111 -- .../mockfiles/qt5/AxisHelperArm.qml | 48 - .../mockfiles/qt5/CameraFrustum.qml | 39 - .../qml2puppet/mockfiles/qt5/CameraGizmo.qml | 40 - .../mockfiles/qt5/DirectionalDraggable.qml | 122 --- .../mockfiles/qt5/EditCameraController.qml | 231 ----- .../qml2puppet/mockfiles/qt5/EditView3D.qml | 981 ------------------ .../qml2puppet/mockfiles/qt5/FadeHandle.qml | 106 -- .../qml2puppet/mockfiles/qt5/HelperGrid.qml | 95 -- .../qml2puppet/mockfiles/qt5/IconGizmo.qml | 112 -- .../mockfiles/qt5/IconRenderer3D.qml | 66 -- .../qml2puppet/mockfiles/qt5/LightGizmo.qml | 334 ------ .../mockfiles/qt5/LightIconGizmo.qml | 22 - .../qml2puppet/mockfiles/qt5/LightModel.qml | 28 - src/tools/qml2puppet/mockfiles/qt5/Line3D.qml | 28 - .../mockfiles/qt5/MaterialNodeView.qml | 81 -- .../mockfiles/qt5/ModelNode2DImageView.qml | 23 - .../mockfiles/qt5/ModelNode3DImageView.qml | 116 --- .../mockfiles/qt5/ModelNodeView.qml | 55 - .../qml2puppet/mockfiles/qt5/MoveGizmo.qml | 153 --- .../qml2puppet/mockfiles/qt5/NodeNodeView.qml | 41 - .../qml2puppet/mockfiles/qt5/Overlay2D.qml | 47 - .../mockfiles/qt5/PlanarDraggable.qml | 97 -- .../mockfiles/qt5/PlanarMoveHandle.qml | 42 - .../mockfiles/qt5/PlanarScaleHandle.qml | 42 - .../qml2puppet/mockfiles/qt5/RotateGizmo.qml | 271 ----- .../qml2puppet/mockfiles/qt5/RotateRing.qml | 142 --- .../qml2puppet/mockfiles/qt5/ScaleGizmo.qml | 219 ---- .../qml2puppet/mockfiles/qt5/ScaleRod.qml | 51 - .../qml2puppet/mockfiles/qt5/SceneView3D.qml | 71 -- .../qml2puppet/mockfiles/qt5/SelectionBox.qml | 46 - .../mockfiles/qt5/SpotLightHandle.qml | 60 -- .../mockfiles/qt6/AreaLightHandle.qml | 64 -- .../qml2puppet/mockfiles/qt6/LightGizmo.qml | 74 +- .../mockfiles/qt6/LightIconGizmo.qml | 8 +- .../qml2puppet/editor3d/camerageometry.cpp | 10 - .../qml2puppet/editor3d/camerageometry.h | 3 - .../qml2puppet/editor3d/editor3d.pri | 5 - .../qml2puppet/editor3d/generalhelper.cpp | 40 - .../qml2puppet/editor3d/generalhelper.h | 2 - .../qml2puppet/editor3d/geometrybase.cpp | 2 - .../qml2puppet/editor3d/geometrybase.h | 2 - .../qml2puppet/editor3d/mousearea3d.cpp | 5 - .../editor3d/qt5compat/qquick3darealight.cpp | 37 - .../editor3d/qt5compat/qquick3darealight_p.h | 43 - .../editor3d/selectionboxgeometry.cpp | 17 - .../qml2puppet/iconrenderer/iconrenderer.cpp | 297 ------ .../qml2puppet/iconrenderer/iconrenderer.h | 60 -- .../qml2puppet/iconrenderer/iconrenderer.pri | 3 - .../qml2puppet/import3d/import3d.cpp | 4 - .../instances/nodeinstanceserver.cpp | 12 - .../qml2puppet/instances/nodeinstanceserver.h | 4 - .../instances/objectnodeinstance.cpp | 4 - .../instances/qmlstatenodeinstance.cpp | 2 - .../qt5informationnodeinstanceserver.cpp | 246 +---- .../instances/qt5nodeinstanceclientproxy.cpp | 8 - .../instances/qt5nodeinstanceserver.cpp | 42 +- .../instances/qt5nodeinstanceserver.h | 4 - .../instances/quick3dnodeinstance.cpp | 6 +- .../quick3drenderablenodeinstance.cpp | 7 - .../instances/quickitemnodeinstance.cpp | 88 -- .../instances/quickitemnodeinstance.h | 3 - .../instances/servernodeinstance.cpp | 5 - .../qml2puppet/instances/servernodeinstance.h | 8 +- src/tools/qml2puppet/qml2puppet/qmlpuppet.cpp | 12 +- src/tools/qml2puppet/qml2puppet/qmlpuppet.h | 4 - .../qmlprivategate/qmlprivategate.cpp | 109 +- .../qmlprivategate/qmlprivategate.h | 7 - src/tools/qml2puppet/qmlpuppet.qrc | 1 - 85 files changed, 44 insertions(+), 5507 deletions(-) delete mode 100644 src/tools/qml2puppet/editor3d_qt5.qrc delete mode 100644 src/tools/qml2puppet/mockfiles/GenericBackend.qml delete mode 100644 src/tools/qml2puppet/mockfiles/images/area.png delete mode 100644 src/tools/qml2puppet/mockfiles/images/area@2x.png delete mode 100644 src/tools/qml2puppet/mockfiles/images/static_floor.png delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/AdjustableArrow.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/AreaLightHandle.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/Arrow.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/AutoScaleHelper.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/AxisHelper.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/AxisHelperArm.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/CameraFrustum.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/CameraGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/DirectionalDraggable.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/EditCameraController.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/EditView3D.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/FadeHandle.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/HelperGrid.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/IconGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/IconRenderer3D.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/LightGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/LightIconGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/LightModel.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/Line3D.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/MaterialNodeView.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/ModelNode2DImageView.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/ModelNode3DImageView.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/ModelNodeView.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/MoveGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/NodeNodeView.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/Overlay2D.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/PlanarDraggable.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/PlanarMoveHandle.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/PlanarScaleHandle.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/RotateGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/RotateRing.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/ScaleGizmo.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/ScaleRod.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/SceneView3D.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/SelectionBox.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt5/SpotLightHandle.qml delete mode 100644 src/tools/qml2puppet/mockfiles/qt6/AreaLightHandle.qml delete mode 100644 src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight.cpp delete mode 100644 src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight_p.h delete mode 100644 src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.cpp delete mode 100644 src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.h delete mode 100644 src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.pri diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp index 99f07cb8a8a..0fb367cc3ea 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp @@ -166,23 +166,6 @@ void ItemLibraryAssetImporter::importProcessFinished([[maybe_unused]] int exitCo } } -void ItemLibraryAssetImporter::iconProcessFinished([[maybe_unused]] int exitCode, - [[maybe_unused]] QProcess::ExitStatus exitStatus) -{ - m_puppetProcess.reset(); - - int finishedCount = m_parseData.size() - m_puppetQueue.size(); - if (!m_puppetQueue.isEmpty()) - startNextIconProcess(); - - if (m_puppetQueue.isEmpty() && !m_puppetProcess) { - notifyProgress(100); - QTimer::singleShot(0, this, &ItemLibraryAssetImporter::finalizeQuick3DImport); - } else { - notifyProgress(int(100. * (double(finishedCount) / double(m_parseData.size())))); - } -} - void ItemLibraryAssetImporter::notifyFinished() { m_isImporting = false; @@ -277,18 +260,8 @@ bool ItemLibraryAssetImporter::preParseQuick3DAsset(const QString &file, ParseDa addWarning(tr("Skipped import of existing asset: \"%1\".").arg(pd.assetName)); return false; } else if (result == OverwriteResult::Update) { - // Add generated icons and existing source asset file, as those will always need - // to be overwritten + // Add existing source asset file, as that will always need to be overwritten QSet alwaysOverwrite; - QString iconPath = pd.targetDirPath + '/' + Constants::QUICK_3D_ASSET_ICON_DIR; - // Note: Despite the name, QUICK_3D_ASSET_LIBRARY_ICON_SUFFIX is not a traditional file - // suffix. It's guaranteed to be in the generated icon filename, though. - QStringList filters {QStringLiteral("*%1*").arg(Constants::QUICK_3D_ASSET_LIBRARY_ICON_SUFFIX)}; - QDirIterator iconIt(iconPath, filters, QDir::Files); - while (iconIt.hasNext()) { - iconIt.next(); - alwaysOverwrite.insert(iconIt.fileInfo().absoluteFilePath()); - } alwaysOverwrite.insert(sourceSceneTargetFilePath(pd)); alwaysOverwrite.insert(pd.targetDirPath + '/' + Constants::QUICK_3D_ASSET_IMPORT_DATA_NAME); @@ -353,7 +326,6 @@ void ItemLibraryAssetImporter::postParseQuick3DAsset(ParseData &pd) // subdirs assume they are used within the context of the toplevel qml files. QDirIterator qmlIt(outDir.path(), {QStringLiteral("*.qml")}, QDir::Files); if (qmlIt.hasNext()) { - outDir.mkdir(Constants::QUICK_3D_ASSET_ICON_DIR); if (qmldirFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { QString qmlInfo; qmlInfo.append("module "); @@ -375,10 +347,6 @@ void ItemLibraryAssetImporter::postParseQuick3DAsset(ParseData &pd) QFile qmlFile(qmlIt.filePath()); if (qmlFile.open(QIODevice::ReadOnly)) { - QString iconFileName = outDir.path() + '/' - + Constants::QUICK_3D_ASSET_ICON_DIR + '/' + fi.baseName() - + Constants::QUICK_3D_ASSET_LIBRARY_ICON_SUFFIX; - QString iconFileName2x = iconFileName + "@2x"; QByteArray content = qmlFile.readAll(); int braceIdx = content.indexOf('{'); QString impVersionStr; @@ -421,16 +389,6 @@ void ItemLibraryAssetImporter::postParseQuick3DAsset(ParseData &pd) if (impVersionMajor > 0 && m_requiredImports.first() != "QtQuick3D") m_requiredImports.prepend("QtQuick3D"); } - if (impVersionMajor > 0 && impVersionMajor < 6) { - pd.iconFile = iconFileName; - pd.iconSource = qmlIt.filePath(); - m_puppetQueue.append(pd.importId); - // Since icon is generated by external process, the file won't be - // ready for asset gathering below, so assume its generation succeeds - // and add it now. - insertAsset(iconFileName); - insertAsset(iconFileName2x); - } } } } @@ -602,42 +560,6 @@ void ItemLibraryAssetImporter::startNextImportProcess() } } -void ItemLibraryAssetImporter::startNextIconProcess() -{ - if (m_puppetQueue.isEmpty()) - return; - - auto view = QmlDesignerPlugin::viewManager().view(); - auto doc = QmlDesignerPlugin::instance()->currentDesignDocument(); - Model *model = doc ? doc->currentModel() : nullptr; - - if (model && view) { - bool done = false; - while (!m_puppetQueue.isEmpty() && !done) { - const ParseData pd = m_parseData.value(m_puppetQueue.takeLast()); - QStringList puppetArgs; - puppetArgs << "--rendericon" << QString::number(24) << pd.iconFile << pd.iconSource; - m_puppetProcess = PuppetStarter::createPuppetProcess( - view->externalDependencies().puppetStartData(*model), - "custom", - {}, - [&] {}, - [&](int exitCode, QProcess::ExitStatus exitStatus) { - iconProcessFinished(exitCode, exitStatus); - }, - puppetArgs); - - if (m_puppetProcess->waitForStarted(10000)) { - done = true; - } else { - addError(tr("Failed to start icon generation process."), - pd.sourceInfo.absoluteFilePath()); - m_puppetProcess.reset(); - } - } - } -} - void ItemLibraryAssetImporter::postImport() { QTC_ASSERT(m_puppetQueue.isEmpty() && !m_puppetProcess, return); @@ -645,19 +567,10 @@ void ItemLibraryAssetImporter::postImport() if (!isCancelled()) { for (auto &pd : m_parseData) postParseQuick3DAsset(pd); - startNextIconProcess(); } - if (!isCancelled()) { - // Wait for icon generation processes to finish - if (m_puppetQueue.isEmpty() && !m_puppetProcess) { - finalizeQuick3DImport(); - } else { - const QString progressTitle = tr("Generating icons."); - addInfo(progressTitle); - notifyProgress(0, progressTitle); - } - } + if (!isCancelled()) + finalizeQuick3DImport(); } void ItemLibraryAssetImporter::finalizeQuick3DImport() diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.h index a53f0c9de1b..8ad7b5a2dec 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.h @@ -53,7 +53,6 @@ signals: private slots: void importProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); - void iconProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); private: struct ParseData { @@ -65,8 +64,6 @@ private: QString assetName; QString originalAssetName; int importId; - QString iconFile; - QString iconSource; }; void notifyFinished(); @@ -91,7 +88,6 @@ private: OverwriteResult confirmAssetOverwrite(const QString &assetName); void startNextImportProcess(); - void startNextIconProcess(); void postImport(); void finalizeQuick3DImport(); QString sourceSceneTargetFilePath(const ParseData &pd); diff --git a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp index 0afd0d735c7..9a3fca77abb 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp @@ -434,11 +434,6 @@ void SubComponentManager::parseQuick3DAssetsItem(const QString &importUrl, const itemLibraryEntry.setCategory(::QmlDesigner::SubComponentManager::tr("My 3D Components")); itemLibraryEntry.setCustomComponentSource(qmlIt.fileInfo().absoluteFilePath()); itemLibraryEntry.setRequiredImport(importUrl); - QString iconPath = qmlIt.fileInfo().absolutePath() + '/' - + Constants::QUICK_3D_ASSET_ICON_DIR + '/' + name - + Constants::QUICK_3D_ASSET_LIBRARY_ICON_SUFFIX; - if (QFileInfo::exists(iconPath)) - itemLibraryEntry.setLibraryEntryIconPath(iconPath); itemLibraryEntry.setTypeIcon(QIcon(defaultIconPath)); // load hints file if exists diff --git a/src/plugins/qmldesigner/qmldesignerconstants.h b/src/plugins/qmldesigner/qmldesignerconstants.h index 7e01b7de793..c2003441e0a 100644 --- a/src/plugins/qmldesigner/qmldesignerconstants.h +++ b/src/plugins/qmldesigner/qmldesignerconstants.h @@ -72,7 +72,6 @@ const char COMPONENT_BUNDLES_FOLDER[] = "/ComponentBundles"; const char COMPONENT_BUNDLES_ASSET_REF_FILE[] = "_asset_ref.json"; const char QUICK_3D_ASSETS_FOLDER[] = "/Quick3DAssets"; const char QUICK_3D_ASSET_LIBRARY_ICON_SUFFIX[] = "_libicon"; -const char QUICK_3D_ASSET_ICON_DIR[] = "_icons"; const char QUICK_3D_ASSET_IMPORT_DATA_NAME[] = "_importdata.json"; const char QUICK_3D_ASSET_IMPORT_DATA_OPTIONS_KEY[] = "import_options"; const char QUICK_3D_ASSET_IMPORT_DATA_SOURCE_KEY[] = "source_scene"; diff --git a/src/tools/qml2puppet/CMakeLists.txt b/src/tools/qml2puppet/CMakeLists.txt index 77bde355e9f..271d16023ed 100644 --- a/src/tools/qml2puppet/CMakeLists.txt +++ b/src/tools/qml2puppet/CMakeLists.txt @@ -17,9 +17,6 @@ if (NOT QT_CREATOR_API_DEFINED) include(QtCreatorIDEBranding) include(QtCreatorAPI) - find_package(QT 5.15.0 NAMES Qt6 Qt5 - COMPONENTS Core REQUIRED - ) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Concurrent Core Gui Network PrintSupport Qml Quick Sql Widgets Xml REQUIRED @@ -78,12 +75,6 @@ extend_qtc_executable(qml2puppet editor3d_qt6.qrc ) -extend_qtc_executable(qml2puppet - CONDITION Qt5_VERSION VERSION_LESS 6.0.0 - SOURCES - editor3d_qt5.qrc -) - extend_qtc_executable(qml2puppet CONDITION UNIX AND (NOT APPLE) DEPENDS rt @@ -140,19 +131,6 @@ extend_qtc_executable(qml2puppet DEFINES QUICK3D_ASSET_UTILS_MODULE ) -extend_qtc_executable(qml2puppet - CONDITION Qt6_VERSION - SOURCES_PREFIX qml2puppet/editor3d/qt5compat - SOURCES - qquick3darealight.cpp qquick3darealight_p.h -) - -extend_qtc_executable(qml2puppet - SOURCES_PREFIX qml2puppet/iconrenderer - SOURCES - iconrenderer.cpp iconrenderer.h -) - extend_qtc_executable(qml2puppet SOURCES_PREFIX qml2puppet/import3d SOURCES diff --git a/src/tools/qml2puppet/editor3d_qt5.qrc b/src/tools/qml2puppet/editor3d_qt5.qrc deleted file mode 100644 index d4127574a69..00000000000 --- a/src/tools/qml2puppet/editor3d_qt5.qrc +++ /dev/null @@ -1,58 +0,0 @@ - - - mockfiles/meshes/arrow.mesh - mockfiles/meshes/scalerod.mesh - mockfiles/meshes/ring.mesh - mockfiles/meshes/ringselect.mesh - mockfiles/meshes/axishelper.mesh - mockfiles/images/editor_camera.png - mockfiles/images/editor_camera@2x.png - mockfiles/images/area.png - mockfiles/images/area@2x.png - mockfiles/images/directional.png - mockfiles/images/directional@2x.png - mockfiles/images/point.png - mockfiles/images/point@2x.png - mockfiles/images/static_floor.png - mockfiles/images/spot.png - mockfiles/images/spot@2x.png - mockfiles/images/preview_landscape.hdr - mockfiles/images/preview_studio.hdr - mockfiles/qt5/AdjustableArrow.qml - mockfiles/qt5/AreaLightHandle.qml - mockfiles/qt5/Arrow.qml - mockfiles/qt5/AutoScaleHelper.qml - mockfiles/qt5/AxisHelper.qml - mockfiles/qt5/AxisHelperArm.qml - mockfiles/qt5/CameraFrustum.qml - mockfiles/qt5/CameraGizmo.qml - mockfiles/qt5/DirectionalDraggable.qml - mockfiles/qt5/EditCameraController.qml - mockfiles/qt5/EditView3D.qml - mockfiles/qt5/FadeHandle.qml - mockfiles/qt5/HelperGrid.qml - mockfiles/qt5/IconGizmo.qml - mockfiles/qt5/IconRenderer3D.qml - mockfiles/qt5/LightGizmo.qml - mockfiles/qt5/LightIconGizmo.qml - mockfiles/qt5/LightModel.qml - mockfiles/qt5/Line3D.qml - mockfiles/qt5/MaterialNodeView.qml - mockfiles/qt5/ModelNode2DImageView.qml - mockfiles/qt5/ModelNode3DImageView.qml - mockfiles/qt5/ModelNodeView.qml - mockfiles/qt5/MoveGizmo.qml - mockfiles/qt5/NodeNodeView.qml - mockfiles/qt5/Overlay2D.qml - mockfiles/qt5/PlanarDraggable.qml - mockfiles/qt5/PlanarMoveHandle.qml - mockfiles/qt5/PlanarScaleHandle.qml - mockfiles/qt5/RotateGizmo.qml - mockfiles/qt5/RotateRing.qml - mockfiles/qt5/ScaleGizmo.qml - mockfiles/qt5/ScaleRod.qml - mockfiles/qt5/SceneView3D.qml - mockfiles/qt5/SelectionBox.qml - mockfiles/qt5/SpotLightHandle.qml - - diff --git a/src/tools/qml2puppet/editor3d_qt6.qrc b/src/tools/qml2puppet/editor3d_qt6.qrc index bb29d683a07..750c4054aab 100644 --- a/src/tools/qml2puppet/editor3d_qt6.qrc +++ b/src/tools/qml2puppet/editor3d_qt6.qrc @@ -9,8 +9,6 @@ mockfiles/images/editor_camera@2x.png mockfiles/images/editor_particlesystem.png mockfiles/images/editor_particlesystem@2x.png - mockfiles/images/area.png - mockfiles/images/area@2x.png mockfiles/images/directional.png mockfiles/images/directional@2x.png mockfiles/images/point.png @@ -21,7 +19,6 @@ mockfiles/images/preview_landscape.hdr mockfiles/images/preview_studio.hdr mockfiles/qt6/AdjustableArrow.qml - mockfiles/qt6/AreaLightHandle.qml mockfiles/qt6/Arrow.qml mockfiles/qt6/AutoScaleHelper.qml mockfiles/qt6/AxisHelper.qml diff --git a/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp b/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp index 489c8c840b7..1afdd52bb0c 100644 --- a/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp +++ b/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp @@ -69,11 +69,7 @@ namespace QmlDesigner { void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError) -#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - = &QLocalSocket::error; -#else = &QLocalSocket::errorOccurred; -#endif NodeInstanceClientProxy::NodeInstanceClientProxy(QObject *parent) : QObject(parent) diff --git a/src/tools/qml2puppet/mockfiles/GenericBackend.qml b/src/tools/qml2puppet/mockfiles/GenericBackend.qml deleted file mode 100644 index 30083c228f3..00000000000 --- a/src/tools/qml2puppet/mockfiles/GenericBackend.qml +++ /dev/null @@ -1,8 +0,0 @@ -import QtQuick 2.6 - -QtObject { - property int x - property int y - property int width - property int height -} diff --git a/src/tools/qml2puppet/mockfiles/images/area.png b/src/tools/qml2puppet/mockfiles/images/area.png deleted file mode 100644 index ed261ff2d50255480dd02c5f995473424a8b4254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Foon^Al51-)_oyK zBS|}jn~_^7tVYW&gsW+zg2?uF%R)8Tq+g$rC_a5s?QdY&WY4@u+rC!IJe%`*Zt=UF z#@}}rbb5bi^}hZ!I&QtW*6B~P`#o~+=57ByyQ`~f$?doQl&+ulU%4vl{MoY`XU&od z4!z2M>hQlq46^|M_A?bfVayS1#W?8d8CT9-}E3b}rCtK8AN;C0oKojY DkgXl++X& z8v2)w!QbkW6UWZb@bL6wNru}tZ90?^xsBDaVr9yf_lI3Mer{U0@SxMD$&)8Xe!9+8 zwCr`&ihcY3RpjUQ>+0$n&f#aMSjckZ@<)xOm+SW5KT=_AZ0zw*f?=NCDNV&EWx>J0 zyXH>xV3|9M;e(C+z3+}3KRK-XPMgW_C2!PW$awrPdcl;syO%B{sS0tLSzC9X+i2wf zpWb(N*Cu-n==&kpHph-N%Zw_V)IhhYm3XiyReV zQ9N<_`~8Iv_PzQ1vo1VTRG8yKkq*b9)lCX2u7M`rdjmt54tz~wf6e$IVfkFCoffR? z*%{W%ne_a(g>yXPfv}B@l_~|Xla~BUFo<~g`DaTFPtwL4nJPk_H@E#&V$dmi5MZIP zw0!yUuxBU#`Yd8>i2n50pOkU-F#v zWuJ;?Wo=^a?S09&zxm4D>F%s96Hjt>cD9^5V;N_1a&lyKSwR6qTcU;9yP~CsUo#X$ zINUKgr+cr$X5QtAsgZpr?O4{#*pY7iL5ktZQ^^W;2D`@>7{eP287*p0RHy_P{QJ85 zLMl^7iqXp(Y7;#^aKzRyO}SM4`Sa(#w}&1U+}d{IN6ddWX=&-!GYNJg7c-{ZzOQlq z^MTV00kfa~-p_C#SMGV^f7O7Ls=nm!n|3fUBzbbL(m3Vo8u;ebtE}KjOBmzoN@M>= z2($!8PUH73xyR9)q!{G6OW zDm%tiXecOO6{e?lj;*!~o4hQTkEfXI< zeyp>3&Yz=`_BXantdM-ib!XSQ{F2hrn=w4*b`-EGT>0QukK5v>yVh3r z1pP|(_xCrN>b0@4u`$@`#QB-Brv#Zamg?*28Ohu-xbP0l+XkKg-uP+F)y|NL%woxudn_r=!F_nfzU|FJS* zV}y=a_tB(E4qrwerVX42oEXkWxnK1XXNYI~!R;X0kk7Cs?}f86!#-ApE%UP&-d83& zXS`%xU~$a<%jUfc*?1SRtE#DWv2u%bOjLG%#ecppzTSNz-vhIsOXBy}J^J(W^P>|J zmESDhFa7HS=a&T!54UrtottA>C2+6s`m_rdMI97>E(%{Cw`j|jD<6X#9T|TwU$u}e z^-}Y$l9x(a+S;K4Y3JsgWXfXb>9^l+UBWiOzwX7w#qAn;dSU-&8l`gmeqQ0+s`B~E zESt(rLIwZ-)f$$*3K0v^WES<`!d}q%=KZy`vv(9eZu@k0Q|jq2qK`_=YmC?q)K)3z z+WYwW_Da~-?U8G_{z!!(m+{HOyK}8dg|4rQ4YrHiUAFe!pPPAHXP>d_M{V)oT(fSS zSn{!+#KtLgd*3VzU|zW8lgZ873!T{uzrG56+TAN{{_0%(lh#+8BMzLJsy+2V_4jw3 zg34|d`}r7S^)%#j?(d5=$-LAucmE-8Rl7$DYofRN zX%>8c7i(DYAt7u*$g`upooNhx6KmH-Z52vCHz#o0`}_Oj%l}pFEdMm+sZ2}m?QO2C zi4P7muHo3bV}8C0qr&s&lVVSvJo)I#%HUJaoZI<2m-)`#bT;~Lf!$|G&ZQ^b-`wo3 z=~7wn|KH!pg-$y?IgR@nZ}@&wQC00+?B1^x{qp=5>&(}AKl5vwmHx7FE*C6#aDZ{C z#M8sJ)!$N%)=m9cB++>y@a>I?4-XtumCrVb=|*kn-B~p42cK&VyXM6`m7iB!3=9c* z^5l4saX%^QrdtH_hAU=Gng9!@eZOq-GXsfI1Fd7C)DUEui9XUy_f)wR+nH*Cov``v{$ubH_mPcFC< zw|!~y@xGkXnU`}spPA^Ix$mp^nDk}^XUVB+hoj%r+`9T|bELFKWs!M~jBe$055E0H zPra^O$-TKrRr*8Y!gKx%1>GfctjqJJeBS!~X6ohXL9?bk|1n3!-acM(Q{CSxvqy6n ztFF1lU(#1qbqxs(y*lmU({|Ox+2`9se|aXx#m(CnY&KEc(?06?%bxBp*XG1)od4(S ztZt|M{?5+L#bqW{Uoy;|Em`Pxq52K~B|}rwP?PLyJzsVCUbjtJ_FCWYzQ;>uzc$8Q zwmlDv+BWU8XQ(*k-557NR)w)b{D3#ZDaIVe50j4@NpqcTdB;%4TyVG`R#&V$`@)s; z6D31Zb<1<4eg$jJpPPJ2u*tLJY5yI&zcEItYrni@c9Ol2VdEVxclpw#4HX}gcx0_a zIy*bpajjgj;=seh?S}RLYGU@+$rgp*4zD}im!07$keQiz&T!lH2|SZj)1&LiHc-7`6i{ISfq4*c1|kUJ2fByw|U{I)ZV*36Fe?oigRe zv^JqxdUdy@U1MK1ERK17?cLpd3cF9AI`!k`o;fdHE z$@wB*bsaTyOWzCY*=nn*vbN1}e7Rz^QQht6d@NL!xvDpU9Oo#K1fE^5VHxkvt zU}0MN;$C08h^VORNj@QACI|5)bG(D=7M|QCGw0^B1pPEtAEW!+s>d%Z)!en+*>&Na zmU*7%ug$4H8F%S#|Bk(LvW31??K+yYG2#)I{VJQU3?KICe7MDTpmoM?i)9~W8pKm> zKK!(Szb*39>=pBRa||8U-&$~RNATszSxfWyijRF!ls3+~qG6bS&qgczt12#v|s@P2_owv@Hy}viNx9TW^Z1T@pCDFS|RxW=1@$vDmms0La z$355R(ka^)_iBdM^^C8kzB<1jg}5)db^grB$?9KEbu@}TuNFCW(%U2H)|Sju0$S;w zTfZ(<{3ly&Cl#!qz4XqW%HWrB!SjmR??2U)Z}qWrnqg76$jWDN(>i80o&@F<3tmrd zdo};W)z}q&6XN>p%+15~FYLN`VE0-HrS}J|MX#=WFtK98l0r`oFRAj!Z9KKVz6A10 zcI>VG{>uA>6>~`_&!qpi?_?GpI=6h$y(^W>54B(Y<@xTjU}p96bF!i>GnDS0=Dl#W z@YVb!7d9jwmRZgnc`a`B1kq!gzL^BqtN+bpyX=#;B4g*a@EaYHpJZpWgeDa#@85hTS>wbpg zhpmf4toE;{`u!MkP$!yv#D__j6(|W4t{N(G`6)es+Hv+Xz^QVS9UvMKtS6$sb zJk2TK-Y1T!Nx{a-f2&R3mTz%1Kj*EwLhgm=iK+#yt*u_2GtN2oZasKgde6x@cD1`U z&22Kwyrgn|`rYGS&pB4zUS^to?ZvtIk6R0xD|T;7o;KsiVkf=mbrV&(*II?9em&OCmOocujy&MF;LsDF%F3M{{{HFreTtoPpC@k5 zzhCAOuwUYB!mHC3rFM@?rgXjC;&}Gml6te9ibrNLMn*;|SzAY!|I?e?pH}Pgb=JaV z{3Zd%`(#hsMLlkl63*V4x=q(7zQe|?bV}FHg;Po!q8F_UeEysvj9DUQl{%A((&ojh qjW}2f?>xJn1a4w1wPX0h{Nsb?*0pxu8yOfF7(8A5T-G@yGywn+pKL+^ diff --git a/src/tools/qml2puppet/mockfiles/images/static_floor.png b/src/tools/qml2puppet/mockfiles/images/static_floor.png deleted file mode 100644 index 93073719f55f658c6dfcfb2a2f45e4839567a12b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2685 zcmeAS@N?(olHy`uVBq!ia0y~yV3-EN91IK$43b%Tb_@($E}kxqAr-gI&VIgYwV70F zY35B25%ZXW!)9g*g_Bm#n3+HoYX2hLBv60)&w){+DLlSO`9S7H5U>FF!_T7I&~kKZb+|I9oa_xl9}AN_S& zh4r6}XQRC@i1S#5^`C)f<9+|22jyVx)}D>`eS#ibpDgktandZUYu_h}{J5&ZT4(9m z81EDG;C9^o)YV6Wm*-2)ozZf%*|+nih*{$XPR_|6?oRdHX{dSiVWs>8zwfLr&40KP zw=6DCSZkHpD}D95;XdbO0!gPQNKS6J^ery>6T|L;(wm`{Ey_>KL|$$9(AK-@#7(Yk zZ_ku%NCg&)qST;*-`xqp^DebzFi zbqQ`FvG$ES74i|XNqT+I2Yhu@#nH&A}Kc{zRJFd$)A%1qkiKE}XOq|L3rHG$z&7~>Q^1Gil z`lq=cEdF7V`6a)6_w~Z_qH&)WuD|3n9Jnc&bzMnf+w2DD#-TRprgS4M}e_vZw^l{sv9W{KN z>epg2c;h%i*vq^wF^HE1UAsPG?zE7k%`J&Oc}(R~cw5=m=t?e}_4(wC9Ger(8}&@G z7Yi_^I?2w|PqFy6^x&?*J$9dW$vie)UZMZQW4mGK{HXXY$s+=I)>s^WabJkHdH-9xij^%2?uIA!h!kzYr3Zx z*LbYG<1tsXIGZ(Z!;Ytm{!I|lX_&jjVROu@W{F1KO$)pxPSF+>GrW`VF~Q*2At7%M z9oH@uy&@*Fom~N^L`7VlWNrNQ@ZNKwYZ0M3uDuR>K6Wg)V!AS9jhEtnm*AhQ6MK3U zkKcS#5M(gPyR<8!KVaFd6OFTevFPo8@q5YhL$bE~W!oMIZFtAEYQu!bB8@ZF9~C;V zBJ~a9PF3zA*6Tb{8{Regw65zqXQlmVYlMwNWc44e+csen0`U%cRf zdwKCpr+quB)neLJBSx9@w4CB)cp|Q0q0-UDERdua78>ChgDjpiL<2cv4BFh%mI&Bg09aBoV zYa%n|t^V|EqSAW#v>h3yDNC;Zbed}J@q5Pt`(;yB#c4k0+AI)qj%ioMiOGF&^4d!M zmU9aI84v%vzdwcH@3WX1$)J^)lf0iP=+A zSh^V(FJIE7ao~fD)`11}>#B5i1O`tve)3@922T6-?~XSn7VIxkW|gQlSRJJ!JGI2` z9rryg?lp{Oq7xReSa15^^CP&Kb-UE6)$5PVntp_9_3A61H+QW#@PTXPfrP!B3_C6d zh)$g4Rq;IW(5qK>gws|SC-gI{Jdky}ah=f5Id}NIdfQd_r>BK*6JgV;!hXz>Ti*g+OSIJ!vwZ9)rR^Fnj5#>O1m622^(9O-Z1LdV_Ox97fbE-gUco7Q8s)B> zwh-3-b?wXHfQSlxmUTVnKAu|e)N1dnDeKNIJ)hLby_|P)Ip?b7Cyrf^c~NQjFGzAq z`?5#!8dJMB$d)9%X1a61ut&yfqTjJb_xrn~x)1k0+H%%s-=tdhvk6a+ZMZP|?rQN3 zB~Rzad=F@Cy?)}(tyrY-`zv~0KQfMBH+hz5@MiI!n1PzLx7tz8LSCn(SDx@5RPbs#0GI!uK&|pE=sL`e)sOV_p+_+t(*Y?uf{~ zpA_5tv7ozRgDn*>dpHA7(jzmv*ZI)+TbgdnS}8T+EAq`nd7M zAqKrh*A1z!7k*eaaqf+>h~Dn0t-T3(7b7(^wbzJL_w9~OsQg!V85+ zNj$t0ZYDA3Sm}+toGrF8^R4Fo+TS~aKkVXx4E2y7LXP=&vPJId?waCvW9mo69o9E` zj;%a(&Cm>L=f<;>g{&qWeXvPBp*o#w_u_*EgQ1 z?Oe0r!Wq8qc`FuObmVul^>JQZnbGemXILfJUDv#Q^XCgvt4l9d3!c8^oUQZf5zoFB z*ZU0fa&5O9-&7#D=d5$}npHMEJ2Q^0^4R9^{@9|+8CP6CnDM{e_(FQ0X%%a?NOU&8 z?1mNHjW;2}E4sG}iZ|{IRj&pMOMj`kFS9f!4k$cDd!*pYoc=N_p4H3xZxVaj z-@d=*VCIwB&krp->zvn3d&XPywe?Q;huQp78#ZnBn8TiFIiy7$?mM!|v{K;FWV-th=B~ZK4)78&q Iol`;+0Psp60ssI2 diff --git a/src/tools/qml2puppet/mockfiles/qt5/AdjustableArrow.qml b/src/tools/qml2puppet/mockfiles/qt5/AdjustableArrow.qml deleted file mode 100644 index 9e1880643ae..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/AdjustableArrow.qml +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import LineGeometry 1.0 - -DirectionalDraggable { - id: arrowRoot - - Model { - geometry: LineGeometry { - id: lineGeometry - name: "Edit 3D ScalableArrow" - startPos: Qt.vector3d(0, 0, 0) - endPos: Qt.vector3d(0, 1, 0) - } - scale: Qt.vector3d(1, arrowRoot.length, 1) - materials: [ arrowRoot.material ] - } - - Model { - id: arrowHead - source: "#Cone" - materials: [ arrowRoot.material ] - y: arrowRoot.length - 3 - scale: Qt.vector3d(0.02, 0.035, 0.02) - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/AreaLightHandle.qml b/src/tools/qml2puppet/mockfiles/qt5/AreaLightHandle.qml deleted file mode 100644 index be29721aa47..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/AreaLightHandle.qml +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -DirectionalDraggable { - id: handleRoot - - property string currentLabel - property point currentMousePos - property string propName - property real propValue: 0 - property real newValue: 0 - property real baseScale: 5 - - scale: autoScaler.getScale(Qt.vector3d(baseScale, baseScale, baseScale)) - length: 3 - offset: -1.5 - - Model { - id: handle - source: "#Sphere" - materials: [ handleRoot.material ] - scale: Qt.vector3d(0.02, 0.02, 0.02) - } - - AutoScaleHelper { - id: autoScaler - active: handleRoot.active - view3D: handleRoot.view3D - } - - property real _startValue - property real _startScale - - signal valueCommit() - signal valueChange() - - function updateValue(relativeDistance, screenPos) - { - handleRoot.newValue = Math.round(Math.min(999999, Math.max(0, _startValue + (relativeDistance * _startScale)))); - var l = Qt.locale(); - handleRoot.currentLabel = propName + qsTr(": ") + Number(newValue).toLocaleString(l, 'f', 0); - handleRoot.currentMousePos = screenPos; - } - - onPressed: (mouseArea, screenPos)=> { - _startScale = autoScaler.relativeScale * baseScale; - _startValue = propValue; - updateValue(0, screenPos); - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateValue(relativeDistance, screenPos); - handleRoot.valueChange(); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateValue(relativeDistance, screenPos); - handleRoot.valueCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/Arrow.qml b/src/tools/qml2puppet/mockfiles/qt5/Arrow.qml deleted file mode 100644 index a77f7321e4c..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/Arrow.qml +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -DirectionalDraggable { - id: arrow - source: "../meshes/arrow.mesh" - - signal positionCommit() - signal positionMove() - - function localPos(sceneRelativeDistance) - { - var newScenePos = Qt.vector3d( - _targetStartPos.x + sceneRelativeDistance.x, - _targetStartPos.y + sceneRelativeDistance.y, - _targetStartPos.z + sceneRelativeDistance.z); - return targetNode.parent ? targetNode.parent.mapPositionFromScene(newScenePos) : newScenePos; - } - - onPressed: { - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - } - - onDragged: (mouseArea, sceneRelativeDistance)=> { - targetNode.position = localPos(sceneRelativeDistance); - if (targetNode == multiSelectionNode) - _generalHelper.moveMultiSelection(false); - positionMove(); - } - - onReleased: (mouseArea, sceneRelativeDistance)=> { - targetNode.position = localPos(sceneRelativeDistance); - if (targetNode == multiSelectionNode) - _generalHelper.moveMultiSelection(true); - positionCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/AutoScaleHelper.qml b/src/tools/qml2puppet/mockfiles/qt5/AutoScaleHelper.qml deleted file mode 100644 index 7beb6226c3e..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/AutoScaleHelper.qml +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Node { - id: overlayNode - - property View3D view3D - property Camera camera: view3D.camera - property bool active: true - - // Read-only - property real relativeScale: 1 - - onActiveChanged: updateScale() - onSceneTransformChanged: updateScale() - // Trigger delayed update on camera change to ensure camera values are correct - onCameraChanged: _generalHelper.requestOverlayUpdate(); - - Connections { - target: camera - function onSceneTransformChanged() { updateScale() } - } - - Connections { - target: _generalHelper - function onOverlayUpdateNeeded() { updateScale() } - } - - function getScale(baseScale) - { - return Qt.vector3d(baseScale.x * relativeScale, baseScale.y * relativeScale, - baseScale.z * relativeScale); - } - - function updateScale() - { - if (active) - relativeScale = helper.getRelativeScale(overlayNode); - else - relativeScale = 1; - } - - MouseArea3D { - id: helper - active: false - view3D: overlayNode.view3D - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/AxisHelper.qml b/src/tools/qml2puppet/mockfiles/qt5/AxisHelper.qml deleted file mode 100644 index 054fd9f0ba4..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/AxisHelper.qml +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -View3D { - id: axisHelperView - - property var editCameraCtrl - property Node selectedNode - - camera: axisHelperCamera - - Node { - OrthographicCamera { - id: axisHelperCamera - rotation: editCameraCtrl.camera ? editCameraCtrl.camera.rotation : Qt.quaternion(1, 0, 0, 0) - position: editCameraCtrl.camera ? editCameraCtrl.camera.position.minus(editCameraCtrl._lookAtPoint) - .normalized().times(600) : Qt.vector3d(0, 0, 0) - } - - AutoScaleHelper { - id: autoScale - view3D: axisHelperView - position: axisHelperGizmo.scenePosition - } - - Node { - id: axisHelperGizmo - scale: autoScale.getScale(Qt.vector3d(4, 4, 4)) - - AxisHelperArm { - id: armX - eulerRotation: Qt.vector3d(0, 0, -90) - color: Qt.rgba(1, 0, 0, 1) - hoverColor: Qt.lighter(Qt.rgba(1, 0, 0, 1)) - view3D: axisHelperView - camRotPos: Qt.vector3d(0, 90, 0) - camRotNeg: Qt.vector3d(0, -90, 0) - } - - AxisHelperArm { - id: armY - eulerRotation: Qt.vector3d(0, 0, 0) - color: Qt.rgba(0, 0.6, 0, 1) - hoverColor: Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) - view3D: axisHelperView - camRotPos: Qt.vector3d(-90, 0, 0) - camRotNeg: Qt.vector3d(90, 0, 0) - } - - AxisHelperArm { - id: armZ - eulerRotation: Qt.vector3d(90, 0, 0) - color: Qt.rgba(0, 0, 1, 1) - hoverColor: Qt.lighter(Qt.rgba(0, 0, 1, 1)) - view3D: axisHelperView - camRotPos: Qt.vector3d(0, 0, 0) - camRotNeg: Qt.vector3d(0, 180, 0) - } - } - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - acceptedButtons: Qt.LeftButton - - property var pickObj: null - - function cancelHover() - { - if (pickObj) { - pickObj.hovering = false; - pickObj = null; - } - } - - function pick(mouse) - { - var result = axisHelperView.pick(mouse.x, mouse.y); - if (result.objectHit) { - if (result.objectHit !== pickObj) { - cancelHover(); - pickObj = result.objectHit; - pickObj.hovering = true; - } - } else { - cancelHover(); - } - } - - onPositionChanged: (mouse)=> { - pick(mouse); - } - - onPressed: (mouse)=> { - pick(mouse); - if (pickObj) { - axisHelperView.editCameraCtrl.focusObject(axisHelperView.selectedNode, - pickObj.cameraRotation, false, false); - } else { - mouse.accepted = false; - } - } - - onExited: cancelHover() - onCanceled: cancelHover() - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/AxisHelperArm.qml b/src/tools/qml2puppet/mockfiles/qt5/AxisHelperArm.qml deleted file mode 100644 index 36bc0a360ec..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/AxisHelperArm.qml +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -Node { - id: armRoot - property alias posModel: posModel - property alias negModel: negModel - property View3D view3D - property color hoverColor - property color color - property vector3d camRotPos - property vector3d camRotNeg - - Model { - id: posModel - - property bool hovering: false - property vector3d cameraRotation: armRoot.camRotPos - - source: "../meshes/axishelper.mesh" - materials: DefaultMaterial { - id: posMat - diffuseColor: posModel.hovering ? armRoot.hoverColor : armRoot.color - lighting: DefaultMaterial.NoLighting - } - pickable: true - } - - Model { - id: negModel - - property bool hovering: false - property vector3d cameraRotation: armRoot.camRotNeg - - source: "#Sphere" - y: -6 - scale: Qt.vector3d(0.025, 0.025, 0.025) - materials: DefaultMaterial { - id: negMat - diffuseColor: negModel.hovering ? armRoot.hoverColor : armRoot.color - lighting: DefaultMaterial.NoLighting - } - pickable: true - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/CameraFrustum.qml b/src/tools/qml2puppet/mockfiles/qt5/CameraFrustum.qml deleted file mode 100644 index 22cf9d3c038..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/CameraFrustum.qml +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import CameraGeometry 1.0 - -Model { - id: cameraFrustum - - property alias geometryName: cameraGeometry.name // Name must be unique for each geometry - property alias viewPortRect: cameraGeometry.viewPortRect - property Node targetNode: null - property Node scene: null - property bool selected: false - - function updateGeometry() - { - cameraGeometry.update(); - } - - position: targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0) - rotation: targetNode ? targetNode.sceneRotation : Qt.quaternion(1, 0, 0, 0) - - geometry: cameraGeometry - materials: [ - DefaultMaterial { - id: defaultMaterial - diffuseColor: cameraFrustum.selected ? "#FF0000" : "#555555" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - - CameraGeometry { - id: cameraGeometry - camera: cameraFrustum.scene && cameraFrustum.targetNode ? cameraFrustum.targetNode : null - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/CameraGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/CameraGizmo.qml deleted file mode 100644 index 510dcc5ecec..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/CameraGizmo.qml +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -IconGizmo { - id: cameraGizmo - - property Model frustumModel: null - property bool globalShowFrustum: false - - iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png" - - function connectFrustum(frustum) - { - frustumModel = frustum; - - frustum.selected = selected; - frustum.selected = Qt.binding(function() {return selected;}); - - frustum.scene = scene; - frustum.scene = Qt.binding(function() {return scene;}); - - frustum.targetNode = targetNode; - frustum.targetNode = Qt.binding(function() {return targetNode;}); - - frustum.visible = (canBeVisible && globalShowFrustum) - || (targetNode && selected && activeScene === scene); - frustum.visible = Qt.binding(function() { - return (canBeVisible && globalShowFrustum) - || (targetNode && selected && activeScene === scene); - }); - } - - onActiveSceneChanged: { - if (frustumModel && activeScene == scene) - frustumModel.updateGeometry(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/DirectionalDraggable.qml b/src/tools/qml2puppet/mockfiles/qt5/DirectionalDraggable.qml deleted file mode 100644 index 8cb9d176e27..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/DirectionalDraggable.qml +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Model { - id: rootModel - - property View3D view3D - property alias color: material.diffuseColor - property Node targetNode: null - property bool dragging: mouseAreaYZ.dragging || mouseAreaXZ.dragging - property bool active: false - property MouseArea3D dragHelper: null - property alias material: material - property real length: 12 - property real offset: 0 - - readonly property bool hovering: mouseAreaYZ.hovering || mouseAreaXZ.hovering - - property vector3d _scenePosPressed - property real _posPressed - property vector3d _targetStartPos - - signal pressed(var mouseArea, point screenPos) - signal dragged(var mouseArea, vector3d sceneRelativeDistance, real relativeDistance, point screenPos) - signal released(var mouseArea, vector3d sceneRelativeDistance, real relativeDistance, point screenPos) - - DefaultMaterial { - id: material - diffuseColor: "white" - lighting: DefaultMaterial.NoLighting - } - - materials: [ material ] - - function handlePressed(mouseArea, planePos, screenPos) - { - if (!targetNode) - return; - - var maskedPosition = Qt.vector3d(planePos.x, 0, 0); - _posPressed = planePos.x; - _scenePosPressed = mouseArea.dragHelper.mapPositionToScene(maskedPosition); - _targetStartPos = mouseArea.pivotScenePosition(targetNode); - pressed(mouseArea, screenPos); - } - - function calcRelativeDistance(mouseArea, planePos) - { - var maskedPosition = Qt.vector3d(planePos.x, 0, 0); - var scenePointerPos = mouseArea.dragHelper.mapPositionToScene(maskedPosition); - return scenePointerPos.minus(_scenePosPressed); - } - - function handleDragged(mouseArea, planePos, screenPos) - { - if (!targetNode) - return; - - dragged(mouseArea, calcRelativeDistance(mouseArea, planePos), planePos.x - _posPressed, screenPos); - } - - function handleReleased(mouseArea, planePos, screenPos) - { - if (!targetNode) - return; - - released(mouseArea, calcRelativeDistance(mouseArea, planePos), planePos.x - _posPressed, screenPos); - } - - MouseArea3D { - id: mouseAreaYZ - view3D: rootModel.view3D - x: rootModel.offset - y: -1.5 - width: rootModel.length - height: 3 - eulerRotation: Qt.vector3d(0, 0, 90) - grabsMouse: targetNode - active: rootModel.active - dragHelper: rootModel.dragHelper - priority: 5 - - onPressed: (planePos, screenPos)=> { - rootModel.handlePressed(mouseAreaYZ, planePos, screenPos); - } - onDragged: (planePos, screenPos)=> { - rootModel.handleDragged(mouseAreaYZ, planePos, screenPos); - } - onReleased: (planePos, screenPos)=> { - rootModel.handleReleased(mouseAreaYZ, planePos, screenPos); - } - } - - MouseArea3D { - id: mouseAreaXZ - view3D: rootModel.view3D - x: rootModel.offset - y: -1.5 - width: rootModel.length - height: 3 - eulerRotation: Qt.vector3d(0, 90, 90) - grabsMouse: targetNode - active: rootModel.active - dragHelper: rootModel.dragHelper - priority: 5 - - onPressed: (planePos, screenPos)=> { - rootModel.handlePressed(mouseAreaXZ, planePos, screenPos); - } - onDragged: (planePos, screenPos)=> { - rootModel.handleDragged(mouseAreaXZ, planePos, screenPos); - } - onReleased: (planePos, screenPos)=> { - rootModel.handleReleased(mouseAreaXZ, planePos, screenPos); - } - } -} - diff --git a/src/tools/qml2puppet/mockfiles/qt5/EditCameraController.qml b/src/tools/qml2puppet/mockfiles/qt5/EditCameraController.qml deleted file mode 100644 index eb493f6b106..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/EditCameraController.qml +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.12 -import QtQuick3D 1.15 - -Item { - id: cameraCtrl - - property Camera camera: null - property View3D view3d: null - property string sceneId - property vector3d _lookAtPoint - property vector3d _pressPoint - property vector3d _prevPoint - property vector3d _startRotation - property vector3d _startPosition - property vector3d _startLookAtPoint - property matrix4x4 _startTransform - property bool _dragging - property int _button - property real _zoomFactor: 1 - property Camera _prevCamera: null - readonly property vector3d _defaultCameraPosition: Qt.vector3d(0, 600, 600) - readonly property vector3d _defaultCameraRotation: Qt.vector3d(-45, 0, 0) - readonly property real _defaultCameraLookAtDistance: _defaultCameraPosition.length() - readonly property real _keyPanAmount: 5 - property bool ignoreToolState: false - - function restoreCameraState(cameraState) - { - if (!camera || ignoreToolState) - return; - - _lookAtPoint = cameraState[0]; - _zoomFactor = cameraState[1]; - camera.position = cameraState[2]; - camera.rotation = cameraState[3]; - _generalHelper.zoomCamera(view3d, camera, 0, _defaultCameraLookAtDistance, _lookAtPoint, - _zoomFactor, false); - } - - function restoreDefaultState() - { - if (!camera) - return; - - _lookAtPoint = Qt.vector3d(0, 0, 0); - _zoomFactor = 1; - camera.position = _defaultCameraPosition; - camera.eulerRotation = _defaultCameraRotation; - _generalHelper.zoomCamera(view3d, camera, 0, _defaultCameraLookAtDistance, _lookAtPoint, - _zoomFactor, false); - } - - function storeCameraState(delay) - { - if (!camera || ignoreToolState) - return; - - var cameraState = []; - cameraState[0] = _lookAtPoint; - cameraState[1] = _zoomFactor; - cameraState[2] = camera.position; - cameraState[3] = camera.rotation; - _generalHelper.storeToolState(sceneId, "editCamState", cameraState, delay); - } - - - function focusObject(targetNodes, rotation, updateZoom, closeUp) - { - if (!camera) - return; - - // targetNodes could be a list of nodes or a single node - var nodes = []; - if (targetNodes instanceof Node) - nodes.push(targetNodes); - else - nodes = targetNodes - - camera.eulerRotation = rotation; - var newLookAtAndZoom = _generalHelper.focusNodesToCamera( - camera, _defaultCameraLookAtDistance, nodes, view3d, _zoomFactor, - updateZoom, closeUp); - _lookAtPoint = newLookAtAndZoom.toVector3d(); - _zoomFactor = newLookAtAndZoom.w; - storeCameraState(0); - } - - function alignCameras(targetNodes) - { - if (!camera) - return; - - // targetNodes could be a list of nodes or a single node - var nodes = []; - if (targetNodes instanceof Node) - nodes.push(targetNodes); - else - nodes = targetNodes - - _generalHelper.alignCameras(camera, nodes); - } - - function alignView(targetNodes) - { - if (!camera) - return; - - // targetNodes could be a list of nodes or a single node - var nodes = []; - if (targetNodes instanceof Node) - nodes.push(targetNodes); - else - nodes = targetNodes - - _lookAtPoint = _generalHelper.alignView(camera, nodes, _lookAtPoint); - storeCameraState(0); - } - - function zoomRelative(distance) - { - if (!camera) - return; - - _zoomFactor = _generalHelper.zoomCamera(view3d, camera, distance, _defaultCameraLookAtDistance, - _lookAtPoint, _zoomFactor, true); - } - - onCameraChanged: { - if (camera && _prevCamera) { - // Reset zoom on previous camera to ensure it's properties are good to copy to new cam - _generalHelper.zoomCamera(view3d, _prevCamera, 0, _defaultCameraLookAtDistance, _lookAtPoint, - 1, false); - - camera.position = _prevCamera.position; - camera.rotation = _prevCamera.rotation; - - // Apply correct zoom to new camera - _generalHelper.zoomCamera(view3d, camera, 0, _defaultCameraLookAtDistance, _lookAtPoint, - _zoomFactor, false); - } - _prevCamera = camera; - } - - MouseArea { - id: mouseHandler - acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton - hoverEnabled: false - anchors.fill: parent - onPositionChanged: (mouse)=> { - if (cameraCtrl.camera && mouse.modifiers === Qt.AltModifier && cameraCtrl._dragging) { - var currentPoint = Qt.vector3d(mouse.x, mouse.y, 0); - if (cameraCtrl._button == Qt.LeftButton) { - _generalHelper.orbitCamera(cameraCtrl.camera, cameraCtrl._startRotation, - cameraCtrl._lookAtPoint, cameraCtrl._pressPoint, - currentPoint); - } else if (cameraCtrl._button == Qt.MiddleButton) { - cameraCtrl._lookAtPoint = _generalHelper.panCamera( - cameraCtrl.camera, cameraCtrl._startTransform, - cameraCtrl._startPosition, cameraCtrl._startLookAtPoint, - cameraCtrl._pressPoint, currentPoint, _zoomFactor); - } else if (cameraCtrl._button == Qt.RightButton) { - cameraCtrl.zoomRelative(currentPoint.y - cameraCtrl._prevPoint.y) - cameraCtrl._prevPoint = currentPoint; - } - } - } - onPressed: (mouse)=> { - if (cameraCtrl.camera && mouse.modifiers === Qt.AltModifier) { - cameraCtrl._dragging = true; - cameraCtrl._startRotation = cameraCtrl.camera.eulerRotation; - cameraCtrl._startPosition = cameraCtrl.camera.position; - cameraCtrl._startLookAtPoint = _lookAtPoint; - cameraCtrl._pressPoint = Qt.vector3d(mouse.x, mouse.y, 0); - cameraCtrl._prevPoint = cameraCtrl._pressPoint; - cameraCtrl._button = mouse.button; - cameraCtrl._startTransform = cameraCtrl.camera.sceneTransform; - } else { - mouse.accepted = false; - } - } - - function handleRelease() { - cameraCtrl._dragging = false; - cameraCtrl.storeCameraState(0); - } - - onReleased: handleRelease() - onCanceled: handleRelease() - - onWheel: (wheel)=> { - if (cameraCtrl.camera) { - // Empirically determined divisor for nice zoom - cameraCtrl.zoomRelative(wheel.angleDelta.y / -40); - cameraCtrl.storeCameraState(500); - } - } - } - - Keys.onPressed: { - var pressPoint = Qt.vector3d(view3d.width / 2, view3d.height / 2, 0); - var currentPoint; - - switch (event.key) { - case Qt.Key_Left: - currentPoint = pressPoint.plus(Qt.vector3d(_keyPanAmount, 0, 0)); - break; - case Qt.Key_Right: - currentPoint = pressPoint.plus(Qt.vector3d(-_keyPanAmount, 0, 0)); - break; - case Qt.Key_Up: - currentPoint = pressPoint.plus(Qt.vector3d(0, _keyPanAmount, 0)); - break; - case Qt.Key_Down: - currentPoint = pressPoint.plus(Qt.vector3d(0, -_keyPanAmount, 0)); - break; - default: - break; - } - - if (currentPoint) { - _lookAtPoint = _generalHelper.panCamera( - camera, cameraCtrl.camera.sceneTransform, - cameraCtrl.camera.position, _lookAtPoint, - pressPoint, currentPoint, _zoomFactor); - event.accepted = true; - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/EditView3D.qml b/src/tools/qml2puppet/mockfiles/qt5/EditView3D.qml deleted file mode 100644 index 1860e70efb4..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/EditView3D.qml +++ /dev/null @@ -1,981 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.12 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Item { - id: viewRoot - width: 1024 - height: 768 - visible: true - - property Node activeScene: null - property View3D editView: null - property string sceneId - - property bool showEditLight: false - property bool showGrid: true - property bool showSelectionBox: true - property bool showIconGizmo: true - property bool showCameraFrustum: false - property bool usePerspective: true - property bool globalOrientation: false - property alias contentItem: contentItem - property color backgroundGradientColorStart: "#222222" - property color backgroundGradientColorEnd: "#999999" - property color gridColor: "#aaaaaa" - property bool syncBackgroundColor: false - - enum SelectionMode { Item, Group } - enum TransformMode { Move, Rotate, Scale } - - property int selectionMode: EditView3D.SelectionMode.Item - property int transformMode: EditView3D.TransformMode.Move - - property Node selectedNode: null // This is multiSelectionNode in multi-selection case - property var selectedNodes: [] // All selected nodes - - property var lightIconGizmos: [] - property var cameraGizmos: [] - property var selectionBoxes: [] - property rect viewPortRect: Qt.rect(0, 0, 1000, 1000) - - property bool shuttingDown: false - - property real fps: 0 - - signal selectionChanged(var selectedNodes) - signal commitObjectProperty(var objects, var propNames) - signal changeObjectProperty(var objects, var propNames) - signal notifyActiveSceneChange() - - onUsePerspectiveChanged: _generalHelper.storeToolState(sceneId, "usePerspective", usePerspective) - onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) - onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation) - onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid); - onSyncBackgroundColorChanged: _generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor); - onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox); - onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo); - onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum); - onSelectionModeChanged: _generalHelper.storeToolState(sceneId, "selectionMode", selectionMode); - onTransformModeChanged: _generalHelper.storeToolState(sceneId, "transformMode", transformMode); - - onActiveSceneChanged: updateActiveScene() - - function aboutToShutDown() - { - shuttingDown = true; - } - - function createEditView() - { - var component = Qt.createComponent("SceneView3D.qml"); - if (component.status === Component.Ready) { - editView = component.createObject(viewRect, - {"usePerspective": usePerspective, - "showSceneLight": showEditLight, - "showGrid": showGrid, - "gridColor": gridColor, - "importScene": activeScene, - "cameraZoomFactor": cameraControl._zoomFactor, - "z": 1}); - editView.usePerspective = Qt.binding(function() {return usePerspective;}); - editView.showSceneLight = Qt.binding(function() {return showEditLight;}); - editView.showGrid = Qt.binding(function() {return showGrid;}); - editView.gridColor = Qt.binding(function() {return gridColor;}); - editView.cameraZoomFactor = Qt.binding(function() {return cameraControl._zoomFactor;}); - - selectionBoxes.length = 0; - cameraControl.forceActiveFocus(); - return true; - } - return false; - } - - function updateActiveScene() - { - if (editView) { - // Destroy is async, so make sure we don't get any more updates for the old editView - _generalHelper.enableItemUpdate(editView, false); - editView.visible = false; - editView.destroy(); - } - - // importScene cannot be updated after initial set, so we need to reconstruct entire View3D - if (createEditView()) { - if (activeScene) { - var toolStates = _generalHelper.getToolStates(sceneId); - if (Object.keys(toolStates).length > 0) { - updateToolStates(toolStates, true); - } else { - // Don't inherit the edit light state from the previous scene, but rather - // turn the edit light on for scenes that do not have any scene - // lights, and turn it off for scenes that have. - var hasSceneLight = false; - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].scene === activeScene) { - hasSceneLight = true; - break; - } - } - showEditLight = !hasSceneLight; - storeCurrentToolStates(); - } - } else { - // When active scene is deleted, this function gets called by object deletion - // handlers without going through setActiveScene, so make sure sceneId is cleared. - // This is skipped during application shutdown, as calling QQuickText::setText() - // during application shutdown can crash the application. - if (!shuttingDown) { - sceneId = ""; - storeCurrentToolStates(); - } - } - - notifyActiveSceneChange(); - } - } - - function setActiveScene(newScene, newSceneId) - { - var needExplicitUpdate = !activeScene && !newScene; - - sceneId = newSceneId; - activeScene = newScene; - - if (needExplicitUpdate) - updateActiveScene(); - } - - // Disables edit view update if scene doesn't match current activeScene. - // If it matches, updates are enabled. - function enableEditViewUpdate(scene) - { - if (editView) - _generalHelper.enableItemUpdate(editView, (scene && scene === activeScene)); - } - - function handleActiveSceneIdChange(newId) - { - if (sceneId !== newId) { - sceneId = newId; - storeCurrentToolStates(); - } - } - - function fitToView() - { - if (editView) { - var boxModels = []; - if (selectedNodes.length > 1) { - for (var i = 0; i < selectedNodes.length; ++i) { - if (selectionBoxes.length > i) - boxModels.push(selectionBoxes[i].model) - } - } else if (selectedNodes.length > 0 && selectionBoxes.length > 0) { - boxModels.push(selectionBoxes[0].model); - } - cameraControl.focusObject(boxModels, editView.camera.eulerRotation, true, false); - } - } - - function alignCamerasToView(cameraNodes) - { - if (editView) { - cameraControl.alignCameras(cameraNodes); - var propertyNames = ["position", "eulerRotation"]; - viewRoot.changeObjectProperty(cameraNodes, propertyNames); - viewRoot.commitObjectProperty(cameraNodes, propertyNames); - } - } - - function alignViewToCamera(cameraNodes) - { - if (editView) - cameraControl.alignView(cameraNodes); - } - - function updateViewStates(viewStates) - { - if ("selectBackgroundColor" in viewStates) { - if (Array.isArray(viewStates.selectBackgroundColor)) { - var colors = viewStates.selectBackgroundColor - if (colors.length === 1) { - backgroundGradientColorStart = colors[0]; - backgroundGradientColorEnd = colors[0]; - } else { - backgroundGradientColorStart = colors[0]; - backgroundGradientColorEnd = colors[1]; - } - } else { - var color = viewStates.selectBackgroundColor - backgroundGradientColorStart = color; - backgroundGradientColorEnd = color; - } - } - - if ("selectGridColor" in viewStates) - viewRoot.gridColor = viewStates.selectGridColor - } - - // If resetToDefault is true, tool states not specifically set to anything will be reset to - // their default state. - function updateToolStates(toolStates, resetToDefault) - { - if ("showEditLight" in toolStates) - showEditLight = toolStates.showEditLight; - else if (resetToDefault) - showEditLight = false; - - if ("showGrid" in toolStates) - showGrid = toolStates.showGrid; - else if (resetToDefault) - showGrid = true; - - if ("syncBackgroundColor" in toolStates) { - syncBackgroundColor = toolStates.syncBackgroundColor; - if (syncBackgroundColor) { - var color = _generalHelper.sceneEnvironmentColor(sceneId); - updateViewStates({"selectBackgroundColor": color}) - } - } else if (resetToDefault) { - syncBackgroundColor = false; - } - - if ("showSelectionBox" in toolStates) - showSelectionBox = toolStates.showSelectionBox; - else if (resetToDefault) - showSelectionBox = true; - - if ("showIconGizmo" in toolStates) - showIconGizmo = toolStates.showIconGizmo; - else if (resetToDefault) - showIconGizmo = true; - - if ("showCameraFrustum" in toolStates) - showCameraFrustum = toolStates.showCameraFrustum; - else if (resetToDefault) - showCameraFrustum = false; - - if ("usePerspective" in toolStates) - usePerspective = toolStates.usePerspective; - else if (resetToDefault) - usePerspective = true; - - if ("globalOrientation" in toolStates) - globalOrientation = toolStates.globalOrientation; - else if (resetToDefault) - globalOrientation = false; - - if ("selectionMode" in toolStates) - selectionMode = toolStates.selectionMode; - else if (resetToDefault) - selectionMode = EditView3D.SelectionMode.Item; - - if ("transformMode" in toolStates) - transformMode = toolStates.transformMode; - else if (resetToDefault) - transformMode = EditView3D.TransformMode.Move; - - if ("editCamState" in toolStates) - cameraControl.restoreCameraState(toolStates.editCamState); - else if (resetToDefault) - cameraControl.restoreDefaultState(); - } - - function storeCurrentToolStates() - { - _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) - _generalHelper.storeToolState(sceneId, "showGrid", showGrid) - _generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor) - _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox) - _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo) - _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum) - _generalHelper.storeToolState(sceneId, "usePerspective", usePerspective) - _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation) - _generalHelper.storeToolState(sceneId, "selectionMode", selectionMode); - _generalHelper.storeToolState(sceneId, "transformMode", transformMode); - - cameraControl.storeCameraState(0); - } - - function ensureSelectionBoxes(count) - { - var needMore = count - selectionBoxes.length - if (needMore > 0) { - var component = Qt.createComponent("SelectionBox.qml"); - if (component.status === Component.Ready) { - for (var i = 0; i < needMore; ++i) { - var geometryName = _generalHelper.generateUniqueName("SelectionBoxGeometry"); - var boxParent = null; - if (editView) - boxParent = editView.sceneHelpers; - var box = component.createObject(boxParent, {"view3D": editView, - "geometryName": geometryName}); - selectionBoxes[selectionBoxes.length] = box; - box.view3D = Qt.binding(function() {return editView;}); - box.visible = Qt.binding(function() {return showSelectionBox;}); - } - } - } - } - - function selectObjects(objects) - { - // Create selection boxes as necessary. One more box than is actually needed is created, so - // that we always have a previously created box to use for new selection. - // This fixes an occasional visual glitch when creating a new box. - ensureSelectionBoxes(objects.length + 1) - - var i; - for (i = 0; i < objects.length; ++i) - selectionBoxes[i].targetNode = objects[i]; - for (i = objects.length; i < selectionBoxes.length; ++i) - selectionBoxes[i].targetNode = null; - - selectedNodes = objects; - if (objects.length === 0) { - selectedNode = null; - } else if (objects.length > 1) { - selectedNode = multiSelectionNode; - _generalHelper.setMultiSelectionTargets(multiSelectionNode, objects); - } else { - selectedNode = objects[0]; - } - } - - function handleObjectClicked(object, button, multi) - { - if (object instanceof View3D) { - // View3D can be the resolved pick target in case the 3D editor is showing content - // of a component that has View3D as root. In that case locking is resolved on C++ side - // and we ignore multiselection. - selectObjects([]); - selectionChanged([object]); - return; - } - - var clickedObject; - - // Click on locked object is treated same as click on empty space - if (!_generalHelper.isLocked(object)) - clickedObject = object; - - if (selectionMode === EditView3D.SelectionMode.Group) { - while (clickedObject && clickedObject !== activeScene - && (activeScene instanceof Model || clickedObject.parent !== activeScene)) { - clickedObject = clickedObject.parent; - } - } - // Object selection logic: - // Regular click: Clear any multiselection, single-selects the clicked object - // Ctrl-click: No objects selected: Act as single select - // One or more objects selected: Multiselect - // Null object always clears entire selection - var newSelection = []; - if (clickedObject) { - if (button === Qt.RightButton) { - // Right-clicking does only single selection (when clickedObject is unselected) - // This is needed for selecting a target for the context menu - if (!selectedNodes.includes(clickedObject)) - newSelection[0] = clickedObject; - else - newSelection = selectedNodes; - } else if (multi && selectedNodes.length > 0) { - var deselect = false; - for (var i = 0; i < selectedNodes.length; ++i) { - // Multiselecting already selected object clears that object from selection - if (selectedNodes[i] !== clickedObject) - newSelection[newSelection.length] = selectedNodes[i]; - else - deselect = true; - } - if (!deselect) - newSelection[newSelection.length] = clickedObject; - } else { - newSelection[0] = clickedObject; - } - } - selectObjects(newSelection); - selectionChanged(newSelection); - } - - function addLightGizmo(scene, obj) - { - // Insert into first available gizmo if we don't already have gizmo for this object - var slotFound = -1; - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (!lightIconGizmos[i].targetNode) { - slotFound = i; - } else if (lightIconGizmos[i].targetNode === obj) { - lightIconGizmos[i].scene = scene; - return; - } - } - - if (slotFound !== -1) { - lightIconGizmos[slotFound].scene = scene; - lightIconGizmos[slotFound].targetNode = obj; - lightIconGizmos[slotFound].locked = _generalHelper.isLocked(obj); - lightIconGizmos[slotFound].hidden = _generalHelper.isHidden(obj); - return; - } - - // No free gizmos available, create a new one - var gizmoComponent = Qt.createComponent("LightIconGizmo.qml"); - if (gizmoComponent.status === Component.Ready) { - var gizmo = gizmoComponent.createObject(overlayView, - {"view3D": overlayView, "targetNode": obj, - "selectedNodes": selectedNodes, "scene": scene, - "activeScene": activeScene, - "locked": _generalHelper.isLocked(obj), - "hidden": _generalHelper.isHidden(obj), - "globalShow": showIconGizmo}); - lightIconGizmos[lightIconGizmos.length] = gizmo; - gizmo.clicked.connect(handleObjectClicked); - gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;}); - gizmo.activeScene = Qt.binding(function() {return activeScene;}); - gizmo.globalShow = Qt.binding(function() {return showIconGizmo;}); - } - } - - function addCameraGizmo(scene, obj) - { - // Insert into first available gizmo if we don't already have gizmo for this object - var slotFound = -1; - for (var i = 0; i < cameraGizmos.length; ++i) { - if (!cameraGizmos[i].targetNode) { - slotFound = i; - } else if (cameraGizmos[i].targetNode === obj) { - cameraGizmos[i].scene = scene; - return; - } - } - - if (slotFound !== -1) { - cameraGizmos[slotFound].scene = scene; - cameraGizmos[slotFound].targetNode = obj; - cameraGizmos[slotFound].locked = _generalHelper.isLocked(obj); - cameraGizmos[slotFound].hidden = _generalHelper.isHidden(obj); - return; - } - - // No free gizmos available, create a new one - var gizmoComponent = Qt.createComponent("CameraGizmo.qml"); - var frustumComponent = Qt.createComponent("CameraFrustum.qml"); - if (gizmoComponent.status === Component.Ready && frustumComponent.status === Component.Ready) { - var geometryName = _generalHelper.generateUniqueName("CameraGeometry"); - var frustum = frustumComponent.createObject( - overlayScene, - {"geometryName": geometryName, "viewPortRect": viewPortRect}); - var gizmo = gizmoComponent.createObject( - overlayView, - {"view3D": overlayView, "targetNode": obj, - "selectedNodes": selectedNodes, "scene": scene, "activeScene": activeScene, - "locked": _generalHelper.isLocked(obj), "hidden": _generalHelper.isHidden(obj), - "globalShow": showIconGizmo, "globalShowFrustum": showCameraFrustum}); - - cameraGizmos[cameraGizmos.length] = gizmo; - gizmo.clicked.connect(handleObjectClicked); - gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;}); - gizmo.activeScene = Qt.binding(function() {return activeScene;}); - gizmo.globalShow = Qt.binding(function() {return showIconGizmo;}); - gizmo.globalShowFrustum = Qt.binding(function() {return showCameraFrustum;}); - frustum.viewPortRect = Qt.binding(function() {return viewPortRect;}); - gizmo.connectFrustum(frustum); - } - } - - function releaseLightGizmo(obj) - { - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].targetNode === obj) { - lightIconGizmos[i].scene = null; - lightIconGizmos[i].targetNode = null; - return; - } - } - } - - function releaseCameraGizmo(obj) - { - for (var i = 0; i < cameraGizmos.length; ++i) { - if (cameraGizmos[i].targetNode === obj) { - cameraGizmos[i].scene = null; - cameraGizmos[i].targetNode = null; - return; - } - } - } - - function updateLightGizmoScene(scene, obj) - { - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].targetNode === obj) { - lightIconGizmos[i].scene = scene; - return; - } - } - } - - function updateCameraGizmoScene(scene, obj) - { - for (var i = 0; i < cameraGizmos.length; ++i) { - if (cameraGizmos[i].targetNode === obj) { - cameraGizmos[i].scene = scene; - return; - } - } - } - - function gizmoAt(x, y) - { - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].visible && lightIconGizmos[i].hasPoint(x, y)) - return lightIconGizmos[i].targetNode; - } - for (var i = 0; i < cameraGizmos.length; ++i) { - if (cameraGizmos[i].visible && cameraGizmos[i].hasPoint(x, y)) - return cameraGizmos[i].targetNode; - } - return null; - } - - Component.onCompleted: { - createEditView(); - selectObjects([]); - // Work-around the fact that the projection matrix for the camera is not calculated until - // the first frame is rendered, so any initial calls to mapFrom3DScene() will fail. - _generalHelper.requestOverlayUpdate(); - } - - onWidthChanged: _generalHelper.requestOverlayUpdate() - onHeightChanged: _generalHelper.requestOverlayUpdate() - - Connections { - target: _generalHelper - function onLockedStateChanged(node) - { - for (var i = 0; i < cameraGizmos.length; ++i) { - if (cameraGizmos[i].targetNode === node) { - cameraGizmos[i].locked = _generalHelper.isLocked(node); - return; - } - } - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].targetNode === node) { - lightIconGizmos[i].locked = _generalHelper.isLocked(node); - return; - } - } - } - function onHiddenStateChanged(node) - { - for (var i = 0; i < cameraGizmos.length; ++i) { - if (cameraGizmos[i].targetNode === node) { - cameraGizmos[i].hidden = _generalHelper.isHidden(node); - return; - } - } - for (var i = 0; i < lightIconGizmos.length; ++i) { - if (lightIconGizmos[i].targetNode === node) { - lightIconGizmos[i].hidden = _generalHelper.isHidden(node); - return; - } - } - } - } - - Node { - id: overlayScene - - PerspectiveCamera { - id: overlayPerspectiveCamera - clipFar: viewRoot.editView ? viewRoot.editView.perspectiveCamera.clipFar : 1000 - clipNear: viewRoot.editView ? viewRoot.editView.perspectiveCamera.clipNear : 1 - position: viewRoot.editView ? viewRoot.editView.perspectiveCamera.position : Qt.vector3d(0, 0, 0) - rotation: viewRoot.editView ? viewRoot.editView.perspectiveCamera.rotation : Qt.quaternion(1, 0, 0, 0) - } - - OrthographicCamera { - id: overlayOrthoCamera - clipFar: viewRoot.editView ? viewRoot.editView.orthoCamera.clipFar : 1000 - clipNear: viewRoot.editView ? viewRoot.editView.orthoCamera.clipNear : 1 - position: viewRoot.editView ? viewRoot.editView.orthoCamera.position : Qt.vector3d(0, 0, 0) - rotation: viewRoot.editView ? viewRoot.editView.orthoCamera.rotation : Qt.quaternion(1, 0, 0, 0) - scale: viewRoot.editView ? viewRoot.editView.orthoCamera.scale : Qt.vector3d(0, 0, 0) - } - - MouseArea3D { - id: gizmoDragHelper - view3D: overlayView - } - - Node { - id: multiSelectionNode - objectName: "multiSelectionNode" - } - - MoveGizmo { - id: moveGizmo - scale: autoScale.getScale(Qt.vector3d(5, 5, 5)) - highlightOnHover: true - targetNode: viewRoot.selectedNode - globalOrientation: viewRoot.globalOrientation - visible: viewRoot.selectedNode && transformMode === EditView3D.TransformMode.Move - view3D: overlayView - dragHelper: gizmoDragHelper - property var propertyNames: ["position"] - - onPositionCommit: { - if (targetNode == multiSelectionNode) - viewRoot.commitObjectProperty(_generalHelper.multiSelectionTargets(), propertyNames); - else - viewRoot.commitObjectProperty([viewRoot.selectedNode], propertyNames); - } - onPositionMove: { - if (targetNode == multiSelectionNode) - viewRoot.changeObjectProperty(_generalHelper.multiSelectionTargets(), propertyNames); - else - viewRoot.changeObjectProperty([viewRoot.selectedNode], propertyNames); - } - } - - ScaleGizmo { - id: scaleGizmo - scale: autoScale.getScale(Qt.vector3d(5, 5, 5)) - highlightOnHover: true - targetNode: viewRoot.selectedNode - visible: viewRoot.selectedNode && transformMode === EditView3D.TransformMode.Scale - view3D: overlayView - dragHelper: gizmoDragHelper - property var propertyNames: ["scale"] - property var propertyNamesMulti: ["position", "scale"] - - onScaleCommit: { - if (targetNode == multiSelectionNode) - viewRoot.commitObjectProperty(_generalHelper.multiSelectionTargets(), propertyNamesMulti); - else - viewRoot.commitObjectProperty([viewRoot.selectedNode], propertyNames); - } - onScaleChange: { - if (targetNode == multiSelectionNode) - viewRoot.changeObjectProperty(_generalHelper.multiSelectionTargets(), propertyNamesMulti); - else - viewRoot.changeObjectProperty([viewRoot.selectedNode], propertyNames); - } - } - - RotateGizmo { - id: rotateGizmo - scale: autoScale.getScale(Qt.vector3d(7, 7, 7)) - highlightOnHover: true - targetNode: viewRoot.selectedNode - globalOrientation: viewRoot.globalOrientation - visible: viewRoot.selectedNode && transformMode === EditView3D.TransformMode.Rotate - view3D: overlayView - dragHelper: gizmoDragHelper - property var propertyNames: ["eulerRotation"] - property var propertyNamesMulti: ["position", "eulerRotation"] - - onRotateCommit: { - if (targetNode == multiSelectionNode) - viewRoot.commitObjectProperty(_generalHelper.multiSelectionTargets(), propertyNamesMulti); - else - viewRoot.commitObjectProperty([viewRoot.selectedNode], propertyNames); - } - onRotateChange: { - if (targetNode == multiSelectionNode) - viewRoot.changeObjectProperty(_generalHelper.multiSelectionTargets(), propertyNamesMulti); - else - viewRoot.changeObjectProperty([viewRoot.selectedNode], propertyNames); - } - } - - LightGizmo { - id: lightGizmo - targetNode: viewRoot.selectedNode != multiSelectionNode ? viewRoot.selectedNode : null - view3D: overlayView - dragHelper: gizmoDragHelper - - onPropertyValueCommit: (propName) => { - viewRoot.commitObjectProperty([targetNode], [propName]); - } - onPropertyValueChange: (propName) => { - viewRoot.changeObjectProperty([targetNode], [propName]); - } - } - - AutoScaleHelper { - id: autoScale - view3D: overlayView - position: moveGizmo.scenePosition - } - - AutoScaleHelper { - id: pivotAutoScale - view3D: overlayView - position: pivotLine.startPos - } - - Line3D { - id: pivotLine - visible: viewRoot.selectedNode && viewRoot.selectedNode != multiSelectionNode - name: "3D Edit View Pivot Line" - color: "#ddd600" - - startPos: viewRoot.selectedNode ? viewRoot.selectedNode.scenePosition - : Qt.vector3d(0, 0, 0) - Connections { - target: viewRoot - function onSelectedNodeChanged() - { - pivotLine.endPos = gizmoDragHelper.pivotScenePosition(viewRoot.selectedNode); - } - } - Connections { - target: viewRoot.selectedNode - function onSceneTransformChanged() - { - pivotLine.endPos = gizmoDragHelper.pivotScenePosition(viewRoot.selectedNode); - } - } - - Model { - id: pivotCap - source: "#Sphere" - scale: pivotAutoScale.getScale(Qt.vector3d(0.03, 0.03, 0.03)) - position: pivotLine.startPos - materials: [ - DefaultMaterial { - id: lineMat - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - diffuseColor: pivotLine.color - } - ] - } - } - } - - Item { - id: contentItem - anchors.fill: parent - - Rectangle { - id: viewRect - anchors.fill: parent - - gradient: Gradient { - GradientStop { position: 1.0; color: backgroundGradientColorStart } - GradientStop { position: 0.0; color: backgroundGradientColorEnd } - } - - MouseArea { - anchors.fill: parent - acceptedButtons: Qt.LeftButton | Qt.RightButton - hoverEnabled: false - - property MouseArea3D freeDraggerArea - property point pressPoint - property bool initialMoveBlock: false - - onPressed: (mouse) => { - if (viewRoot.editView) { - var pickResult = viewRoot.editView.pick(mouse.x, mouse.y); - handleObjectClicked(_generalHelper.resolvePick(pickResult.objectHit), mouse.button, - mouse.modifiers & Qt.ControlModifier); - - if (pickResult.objectHit && pickResult.objectHit instanceof Node) { - if (transformMode === EditView3D.TransformMode.Move) - freeDraggerArea = moveGizmo.freeDraggerArea; - else if (transformMode === EditView3D.TransformMode.Rotate) - freeDraggerArea = rotateGizmo.freeDraggerArea; - else if (transformMode === EditView3D.TransformMode.Scale) - freeDraggerArea = scaleGizmo.freeDraggerArea; - pressPoint.x = mouse.x; - pressPoint.y = mouse.y; - initialMoveBlock = true; - } else { - mouse.accepted = false; - } - } - } - onPositionChanged: (mouse) => { - if (freeDraggerArea) { - if (initialMoveBlock && Math.abs(pressPoint.x - mouse.x) + Math.abs(pressPoint.y - mouse.y) > 10) { - // Don't force press event at actual press, as that puts the gizmo - // in free-dragging state, which is bad UX if drag is not actually done - freeDraggerArea.forcePressEvent(pressPoint.x, pressPoint.y); - freeDraggerArea.forceMoveEvent(mouse.x, mouse.y); - initialMoveBlock = false; - } else { - freeDraggerArea.forceMoveEvent(mouse.x, mouse.y); - } - } - } - - function handleRelease(mouse) - { - if (freeDraggerArea) { - if (initialMoveBlock) - freeDraggerArea.forceReleaseEvent(pressPoint.x, pressPoint.y); - else - freeDraggerArea.forceReleaseEvent(mouse.x, mouse.y); - freeDraggerArea = null; - } - } - - onReleased: (mouse) => { - handleRelease(mouse); - } - onCanceled: (mouse) => { - handleRelease(mouse); - } - } - - DropArea { - anchors.fill: parent - } - - View3D { - id: overlayView - anchors.fill: parent - camera: viewRoot.usePerspective ? overlayPerspectiveCamera : overlayOrthoCamera - importScene: overlayScene - z: 2 - } - - Overlay2D { - id: gizmoLabel - targetNode: moveGizmo.visible ? moveGizmo : scaleGizmo - targetView: overlayView - visible: targetNode.dragging - z: 3 - - Rectangle { - color: "white" - x: -width / 2 - y: -height - 8 - width: gizmoLabelText.width + 4 - height: gizmoLabelText.height + 4 - border.width: 1 - Text { - id: gizmoLabelText - text: { - // This is skipped during application shutdown, as calling QQuickText::setText() - // during application shutdown can crash the application. - if (shuttingDown) - return text; - var l = Qt.locale(); - var targetProperty; - if (viewRoot.selectedNode) { - if (gizmoLabel.targetNode === moveGizmo) - targetProperty = viewRoot.selectedNode.position; - else - targetProperty = viewRoot.selectedNode.scale; - return qsTr("x:") + Number(targetProperty.x).toLocaleString(l, 'f', 1) - + qsTr(" y:") + Number(targetProperty.y).toLocaleString(l, 'f', 1) - + qsTr(" z:") + Number(targetProperty.z).toLocaleString(l, 'f', 1); - } else { - return ""; - } - } - anchors.centerIn: parent - } - } - } - - Rectangle { - id: rotateGizmoLabel - color: "white" - x: rotateGizmo.currentMousePos.x - (10 + width) - y: rotateGizmo.currentMousePos.y - (10 + height) - width: rotateGizmoLabelText.width + 4 - height: rotateGizmoLabelText.height + 4 - border.width: 1 - visible: rotateGizmo.dragging - parent: rotateGizmo.view3D - z: 3 - - Text { - id: rotateGizmoLabelText - text: { - // This is skipped during application shutdown, as calling QQuickText::setText() - // during application shutdown can crash the application. - if (shuttingDown) - return text; - var l = Qt.locale(); - if (rotateGizmo.targetNode) { - var degrees = rotateGizmo.currentAngle * (180 / Math.PI); - return Number(degrees).toLocaleString(l, 'f', 1); - } else { - return ""; - } - } - anchors.centerIn: parent - } - } - - Rectangle { - id: lightGizmoLabel - color: "white" - x: lightGizmo.currentMousePos.x - (10 + width) - y: lightGizmo.currentMousePos.y - (10 + height) - width: lightGizmoLabelText.width + 4 - height: lightGizmoLabelText.height + 4 - border.width: 1 - visible: lightGizmo.dragging - parent: lightGizmo.view3D - z: 3 - - Text { - id: lightGizmoLabelText - text: lightGizmo.currentLabel - anchors.centerIn: parent - } - } - - EditCameraController { - id: cameraControl - camera: viewRoot.editView ? viewRoot.editView.camera : null - anchors.fill: parent - view3d: viewRoot.editView - sceneId: viewRoot.sceneId - } - } - - AxisHelper { - anchors.right: parent.right - anchors.top: parent.top - width: 100 - height: width - editCameraCtrl: cameraControl - selectedNode: viewRoot.selectedNodes.length === 1 ? viewRoot.selectionBoxes[0].model - : viewRoot.selectedNode - } - - Text { - id: sceneLabel - text: viewRoot.sceneId - anchors.top: parent.top - anchors.left: parent.left - anchors.margins: 4 - font.pixelSize: 14 - color: "white" - } - - Text { - id: fpsLabel - text: viewRoot.fps - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.margins: 4 - font.pixelSize: 12 - color: "white" - visible: viewRoot.fps > 0 - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/FadeHandle.qml b/src/tools/qml2puppet/mockfiles/qt5/FadeHandle.qml deleted file mode 100644 index d400133192d..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/FadeHandle.qml +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -DirectionalDraggable { - id: handleRoot - - property string currentLabel - property point currentMousePos - property real fadeScale - property real baseScale: 5 - property real dragScale: 1 - - scale: autoScaler.getScale(Qt.vector3d(baseScale, baseScale, baseScale)) - length: 3 - offset: -1.5 - - Model { - id: handle - source: "#Sphere" - materials: [ handleRoot.material ] - scale: Qt.vector3d(0.02, 0.02, 0.02) - } - - AutoScaleHelper { - id: autoScaler - active: handleRoot.active - view3D: handleRoot.view3D - } - - property real _q // quadratic fade - property real _l // linear fade - property real _c // constant fade - property real _d: 20 // Divisor from fadeScale calc in lightGizmo - property real _startScale - property real _startFadeScale - property string _currentProp - - signal valueCommit(string propName) - signal valueChange(string propName) - - function updateFade(relativeDistance, screenPos) - { - // Solved from fadeScale equation in LightGizmo - var newValue = 0; - var _x = Math.max(0, (_startFadeScale - (relativeDistance * _startScale)) / 100); - - // Fades capped to range 0-10 because property editor caps them to that range - if (_currentProp === "quadraticFade") { - if (_x === 0) - newValue = 10; - else - newValue = Math.max(0, Math.min(10, -(_c - _d + (_l * _x)) / (_x * _x))); - if (newValue < 0.01) - newValue = 0; // To avoid having tiny positive value when UI shows 0.00 - targetNode.quadraticFade = newValue; - } else if (_currentProp === "linearFade") { - if (_x === 0) - newValue = 10; - else - newValue = Math.max(0, Math.min(10, -(_c - _d) / _x)); - if (newValue < 0.01) - newValue = 0; // To avoid having tiny positive value when UI shows 0.00 - targetNode.linearFade = newValue; - } else { - // Since pure constant fade equates to infinitely long cone, fadeScale calc assumes - // linear fade of one in this case. - newValue = Math.max(0, Math.min(10, _d - _x)); - targetNode.constantFade = newValue; - } - - var l = Qt.locale(); - handleRoot.currentLabel = _currentProp + qsTr(": ") + Number(newValue).toLocaleString(l, 'f', 2); - handleRoot.currentMousePos = screenPos; - } - - onPressed: (mouseArea, screenPos)=> { - _startScale = autoScaler.relativeScale * baseScale * dragScale; - _startFadeScale = fadeScale; - _l = targetNode.linearFade; - _c = targetNode.constantFade; - _q = targetNode.quadraticFade; - if (targetNode.quadraticFade === 0) { - if (targetNode.linearFade === 0) { - _currentProp = "constantFade"; - } else { - _currentProp = "linearFade"; - } - } else { - _currentProp = "quadraticFade"; - } - updateFade(0, screenPos); - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateFade(relativeDistance, screenPos); - handleRoot.valueChange(_currentProp); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateFade(relativeDistance, screenPos); - handleRoot.valueCommit(_currentProp); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/HelperGrid.qml b/src/tools/qml2puppet/mockfiles/qt5/HelperGrid.qml deleted file mode 100644 index 8b6e3b1b98c..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/HelperGrid.qml +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import GridGeometry 1.0 - -Node { - id: grid - - property alias lines: gridGeometry.lines - property alias step: gridGeometry.step - property alias subdivAlpha: subGridMaterial.opacity - property alias gridColor: mainGridMaterial.diffuseColor - - eulerRotation.x: 90 - - // Note: Only one instance of HelperGrid is supported, as the geometry names are fixed - - Model { // Main grid lines - castsShadows: false - receivesShadows: false - geometry: GridGeometry { - id: gridGeometry - name: "3D Edit View Helper Grid" - } - - materials: [ - DefaultMaterial { - id: mainGridMaterial - diffuseColor: "#aaaaaa" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } - - Model { // Subdivision lines - castsShadows: false - receivesShadows: false - geometry: GridGeometry { - lines: gridGeometry.lines - step: gridGeometry.step - isSubdivision: true - name: "3D Edit View Helper Grid subdivisions" - } - - materials: [ - DefaultMaterial { - id: subGridMaterial - diffuseColor: mainGridMaterial.diffuseColor - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } - - Model { // Z Axis - castsShadows: false - receivesShadows: false - geometry: GridGeometry { - lines: gridGeometry.lines - step: gridGeometry.step - isCenterLine: true - name: "3D Edit View Helper Grid Z Axis" - } - materials: [ - DefaultMaterial { - id: vCenterLineMaterial - diffuseColor: "#00a1d2" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } - Model { // X Axis - castsShadows: false - receivesShadows: false - eulerRotation.z: 90 - geometry: GridGeometry { - lines: gridGeometry.lines - step: gridGeometry.step - isCenterLine: true - name: "3D Edit View Helper Grid X Axis" - } - materials: [ - DefaultMaterial { - id: hCenterLineMaterial - diffuseColor: "#cb211a" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/IconGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/IconGizmo.qml deleted file mode 100644 index d2da8cfdef4..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/IconGizmo.qml +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -Item { - id: iconGizmo - - property Node activeScene: null - property Node scene: null - property View3D view3D - property bool highlightOnHover: true - property Node targetNode: null - property var selectedNodes: [] - readonly property bool selected: { - for (var i = 0; i < selectedNodes.length; ++i) { - if (selectedNodes[i] === targetNode) - return true; - } - return false; - } - property bool hasMouse: false - property bool hidden: false - property bool locked: false - property bool globalShow: true - property bool canBeVisible: activeScene === scene && !hidden && (targetNode ? targetNode.visible : false) - - property alias iconSource: iconImage.source - - signal clicked(Node node, bool multi) - - function hasPoint(x, y) - { - if (!view3D || !targetNode) - return false; - - var point = view3D.mapToItem(iconMouseArea, x, y); - - return point.x >= iconMouseArea.x && (point.x <= iconMouseArea.x + iconMouseArea.width) - && point.y >= iconMouseArea.y && (point.y <= iconMouseArea.y + iconMouseArea.height); - } - - onSelectedChanged: { - if (selected) - hasMouse = false; - } - - visible: canBeVisible && globalShow - - Overlay2D { - id: iconOverlay - targetNode: iconGizmo.targetNode - targetView: view3D - visible: iconGizmo.visible && !isBehindCamera - - Rectangle { - id: iconRect - - width: iconImage.width - height: iconImage.height - x: -width / 2 - y: -height / 2 - color: "transparent" - border.color: "#7777ff" - border.width: !iconGizmo.locked && iconGizmo.highlightOnHover && iconGizmo.hasMouse ? 2 : 0 - radius: 5 - opacity: iconGizmo.selected ? 0.2 : 1 - Image { - id: iconImage - fillMode: Image.Pad - MouseArea { - id: iconMouseArea - anchors.fill: parent - onPressed: (mouse)=> { - // Ignore singleselection mouse presses when we have single object selected - // so that the icon gizmo doesn't hijack mouse clicks meant for other gizmos - if (iconGizmo.selected && !(mouse.modifiers & Qt.ControlModifier) - && selectedNodes.length === 1) { - mouse.accepted = false; - } - } - - onClicked: (mouse)=> { - iconGizmo.clicked(iconGizmo.targetNode, - mouse.modifiers & Qt.ControlModifier); - } - hoverEnabled: iconGizmo.highlightOnHover && !iconGizmo.selected - acceptedButtons: Qt.LeftButton - - // onPositionChanged, onContainsMouseAreaChanged, and hasMouse are used instead - // of just using containsMouse directly, because containsMouse - // cannot be relied upon to update correctly in some situations. - // This is likely because the overlapping 3D mouse areas of the gizmos get - // the mouse events instead of this area, so mouse leaving the area - // doesn't always update containsMouse property. - onPositionChanged: { - if (!iconGizmo.selected) - iconGizmo.hasMouse = containsMouse; - } - - onContainsMouseChanged: { - if (!iconGizmo.selected) - iconGizmo.hasMouse = containsMouse; - else - iconGizmo.hasMouse = false; - } - } - } - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/IconRenderer3D.qml b/src/tools/qml2puppet/mockfiles/qt5/IconRenderer3D.qml deleted file mode 100644 index acda5d5ef21..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/IconRenderer3D.qml +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.15 -import QtQuick3D 1.15 - -Item { - id: viewRoot - width: 1024 - height: 1024 - visible: true - - property alias view3D: view3D - property alias camPos: viewCamera.position - - function setSceneToBox() - { - selectionBox.targetNode = view3D.importScene; - } - - function fitAndHideBox() - { - cameraControl.focusObject(selectionBox.model, viewCamera.eulerRotation, true, true); - if (cameraControl._zoomFactor < 0.1) - view3D.importScene.scale = view3D.importScene.scale.times(10); - if (cameraControl._zoomFactor > 10) - view3D.importScene.scale = view3D.importScene.scale.times(0.1); - - selectionBox.visible = false; - } - - View3D { - id: view3D - camera: viewCamera - environment: sceneEnv - - SceneEnvironment { - id: sceneEnv - antialiasingMode: SceneEnvironment.MSAA - antialiasingQuality: SceneEnvironment.VeryHigh - } - - PerspectiveCamera { - id: viewCamera - position: Qt.vector3d(-200, 200, 200) - eulerRotation: Qt.vector3d(-45, -45, 0) - } - - DirectionalLight { - rotation: viewCamera.rotation - } - - SelectionBox { - id: selectionBox - view3D: view3D - geometryName: "SB" - } - - EditCameraController { - id: cameraControl - camera: view3D.camera - view3d: view3D - ignoreToolState: true - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/LightGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/LightGizmo.qml deleted file mode 100644 index fe5727a83c3..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/LightGizmo.qml +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 -import LightUtils 1.0 - -Node { - id: lightGizmo - - property View3D view3D - property Node targetNode: null - property MouseArea3D dragHelper: null - property color color: Qt.rgba(1, 1, 0, 1) - property real fadeScale: { - // Value indicates area where intensity is above certain percent of total brightness. - if (lightGizmo.targetNode instanceof SpotLight || lightGizmo.targetNode instanceof PointLight) { - var l = targetNode.linearFade; - var q = targetNode.quadraticFade; - var c = targetNode.constantFade; - var d = 20; // divisor to target intensity value. E.g. 20 = 1/20 = 5% - if (l === 0 && q === 0) - l = 1; // For pure constant fade, cone would be infinite, so pretend we have linear fade - // Solved from equation in shader: - // 1 / d = 1 / (c + (l + q * dist) * dist); - if (q === 0) - return 100 * Math.max(((d - c) / l), 1); - else - return 100 * ((Math.sqrt(4 * q * (d - c) + (l * l)) - l) / (2 * q)); - } else { - return 100; - } - } - readonly property bool dragging: primaryArrow.dragging - || spotLightHandle.dragging - || spotLightInnerHandle.dragging - || spotLightFadeHandle.dragging - || areaHeightHandle.dragging - || areaWidthHandle.dragging - || pointLightFadeHandle.dragging - property point currentMousePos - property string currentLabel - property int brightnessDecimals: _generalHelper.brightnessScaler() > 10. ? 0 : 2; - property real brightnessMultiplier: Math.pow(10, brightnessDecimals); - - signal propertyValueCommit(string propName) - signal propertyValueChange(string propName) - - position: targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0) - visible: lightGizmo.targetNode instanceof SpotLight - || lightGizmo.targetNode instanceof AreaLight - || lightGizmo.targetNode instanceof DirectionalLight - || lightGizmo.targetNode instanceof PointLight - - AutoScaleHelper { - id: autoScaler - view3D: lightGizmo.view3D - } - - Node { - id: pointLightParts - rotation: lightGizmo.view3D.camera.rotation - visible: lightGizmo.targetNode instanceof PointLight - - LightModel { - id: pointModel - geometryName: "Edit 3D PointLight" - geometryType: LightGeometry.Point - material: lightMaterial - scale: Qt.vector3d(lightGizmo.fadeScale, lightGizmo.fadeScale, lightGizmo.fadeScale) - } - - FadeHandle { - id: pointLightFadeHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof PointLight ? Qt.vector3d(-pointModel.scale.x, 0, 0) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(0, 0, -90) - targetNode: lightGizmo.targetNode instanceof PointLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof PointLight - dragHelper: lightGizmo.dragHelper - fadeScale: lightGizmo.fadeScale - - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: (propName)=> { - lightGizmo.propertyValueChange(propName); - } - onValueCommit: (propName)=> { - lightGizmo.propertyValueCommit(propName); - } - } - } - - - Node { - rotation: !lightGizmo.targetNode ? Qt.quaternion(1, 0, 0, 0) - : lightGizmo.targetNode.sceneRotation - - Node { - id: spotParts - visible: lightGizmo.targetNode instanceof SpotLight - - LightModel { - id: spotModel - - property real coneXYScale: spotParts.visible && lightGizmo.targetNode - ? lightGizmo.fadeScale * Math.tan(Math.PI * lightGizmo.targetNode.coneAngle / 180) - : 1 - - geometryName: "Edit 3D SpotLight Cone" - geometryType: LightGeometry.Spot - material: lightMaterial - scale: Qt.vector3d(coneXYScale, coneXYScale, - spotParts.visible && lightGizmo.targetNode && lightGizmo.targetNode.coneAngle > 90 - ? -lightGizmo.fadeScale : lightGizmo.fadeScale) - } - - LightModel { - id: spotInnerModel - - property real coneXYScale: spotParts.visible && lightGizmo.targetNode - ? lightGizmo.fadeScale * Math.tan(Math.PI * lightGizmo.targetNode.innerConeAngle / 180) - : 1 - - geometryName: "Edit 3D SpotLight Inner Cone" - geometryType: LightGeometry.Spot - material: lightMaterial - scale: Qt.vector3d(coneXYScale, coneXYScale, - spotParts.visible && lightGizmo.targetNode && lightGizmo.targetNode.innerConeAngle > 90 - ? -lightGizmo.fadeScale : lightGizmo.fadeScale) - } - - SpotLightHandle { - id: spotLightHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof SpotLight ? Qt.vector3d(0, spotModel.scale.y, -spotModel.scale.z) - : Qt.vector3d(0, 0, 0) - targetNode: lightGizmo.targetNode instanceof SpotLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof SpotLight - dragHelper: lightGizmo.dragHelper - propName: "coneAngle" - propValue: lightGizmo.targetNode instanceof SpotLight ? targetNode.coneAngle : 0 - - onNewValueChanged: targetNode.coneAngle = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: { - if (targetNode.innerConeAngle > targetNode.coneAngle) - targetNode.innerConeAngle = targetNode.coneAngle; - lightGizmo.propertyValueCommit(propName) - lightGizmo.propertyValueCommit(spotLightInnerHandle.propName); - } - } - - SpotLightHandle { - id: spotLightInnerHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof SpotLight ? Qt.vector3d(0, -spotInnerModel.scale.y, -spotInnerModel.scale.z) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(180, 0, 0) - targetNode: lightGizmo.targetNode instanceof SpotLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof SpotLight - dragHelper: lightGizmo.dragHelper - propName: "innerConeAngle" - propValue: lightGizmo.targetNode instanceof SpotLight ? targetNode.innerConeAngle : 0 - - onNewValueChanged: targetNode.innerConeAngle = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: { - if (targetNode.coneAngle < targetNode.innerConeAngle) - targetNode.coneAngle = targetNode.innerConeAngle; - lightGizmo.propertyValueCommit(propName) - lightGizmo.propertyValueCommit(spotLightHandle.propName); - } - } - - FadeHandle { - id: spotLightFadeHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof SpotLight ? Qt.vector3d(spotModel.scale.x / 2, 0, -spotInnerModel.scale.z / 2) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(90, 0, 0) - targetNode: lightGizmo.targetNode instanceof SpotLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof SpotLight - dragHelper: lightGizmo.dragHelper - fadeScale: lightGizmo.fadeScale - dragScale: 2 - - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: (propName)=> { - lightGizmo.propertyValueChange(propName); - } - onValueCommit: (propName)=> { - lightGizmo.propertyValueCommit(propName); - } - } - } - Node { - id: areaParts - visible: lightGizmo.targetNode instanceof AreaLight - - LightModel { - id: areaModel - geometryName: "Edit 3D AreaLight" - geometryType: LightGeometry.Area - material: lightMaterial - scale: areaParts.visible ? Qt.vector3d(lightGizmo.targetNode.width / 2, - lightGizmo.targetNode.height / 2, 1) - .times(lightGizmo.targetNode.scale) - : Qt.vector3d(1, 1, 1) - } - - AreaLightHandle { - id: areaWidthHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof AreaLight ? Qt.vector3d(-areaModel.scale.x, 0, 0) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(0, 0, 90) - targetNode: lightGizmo.targetNode instanceof AreaLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof AreaLight - dragHelper: lightGizmo.dragHelper - propName: "width" - propValue: lightGizmo.targetNode instanceof AreaLight ? targetNode.width : 0 - - onNewValueChanged: targetNode.width = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: lightGizmo.propertyValueCommit(propName) - } - - AreaLightHandle { - id: areaHeightHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof AreaLight ? Qt.vector3d(0, -areaModel.scale.y, 0) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(0, 0, 180) - targetNode: lightGizmo.targetNode instanceof AreaLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof AreaLight - dragHelper: lightGizmo.dragHelper - propName: "height" - propValue: lightGizmo.targetNode instanceof AreaLight ? targetNode.height : 0 - - onNewValueChanged: targetNode.height = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: lightGizmo.propertyValueCommit(propName) - } - } - - LightModel { - id: directionalModel - geometryName: "Edit 3D DirLight" - geometryType: LightGeometry.Directional - material: lightMaterial - visible: lightGizmo.targetNode instanceof DirectionalLight - scale: autoScaler.getScale(Qt.vector3d(50, 50, 50)) - } - - AdjustableArrow { - id: primaryArrow - eulerRotation: Qt.vector3d(-90, 0, 0) - targetNode: lightGizmo.targetNode - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - view3D: lightGizmo.view3D - active: lightGizmo.visible - dragHelper: lightGizmo.dragHelper - scale: autoScaler.getScale(Qt.vector3d(5, 5, 5)) - length: targetNode ? Math.max(1.0, 1.0 + targetNode.brightness / _generalHelper.brightnessScaler() * 10.0) + 3 : 10 - - property real _startBrightness - - function updateBrightness(relativeDistance, screenPos) - { - var currentValue = Math.max(0, (_startBrightness + relativeDistance * _generalHelper.brightnessScaler() / 10.0)); - currentValue *= brightnessMultiplier; - currentValue = Math.round(currentValue); - currentValue /= brightnessMultiplier; - - var l = Qt.locale(); - lightGizmo.currentLabel = "brightness" + qsTr(": ") + Number(currentValue).toLocaleString(l, 'f', brightnessDecimals); - lightGizmo.currentMousePos = screenPos; - targetNode.brightness = currentValue; - } - - onPressed: (mouseArea, screenPos)=> { - _startBrightness = targetNode.brightness; - updateBrightness(0, screenPos); - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateBrightness(relativeDistance, screenPos); - lightGizmo.propertyValueChange("brightness"); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateBrightness(relativeDistance, screenPos); - lightGizmo.propertyValueCommit("brightness"); - } - } - - DefaultMaterial { - id: lightMaterial - diffuseColor: lightGizmo.color - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/LightIconGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/LightIconGizmo.qml deleted file mode 100644 index dd02cf30fb3..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/LightIconGizmo.qml +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import LightUtils 1.0 - -IconGizmo { - id: lightIconGizmo - - property color overlayColor: targetNode ? targetNode.color : "transparent" - - iconSource: targetNode - ? targetNode instanceof DirectionalLight - ? "image://IconGizmoImageProvider/directional.png:" + overlayColor - : targetNode instanceof AreaLight - ? "image://IconGizmoImageProvider/area.png:" + overlayColor - : targetNode instanceof PointLight - ? "image://IconGizmoImageProvider/point.png:" + overlayColor - : "image://IconGizmoImageProvider/spot.png:" + overlayColor - : "image://IconGizmoImageProvider/point.png:" + overlayColor -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/LightModel.qml b/src/tools/qml2puppet/mockfiles/qt5/LightModel.qml deleted file mode 100644 index 4d256cebf8a..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/LightModel.qml +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import LightUtils 1.0 - -Model { - id: lightModel - - property alias geometryName: lightGeometry.name // Name must be unique for each geometry - property alias geometryType: lightGeometry.lightType - property Material material - - function updateGeometry() - { - lightGeometry.update(); - } - - scale: Qt.vector3d(50, 50, 50) - - geometry: lightGeometry - materials: [ material ] - - LightGeometry { - id: lightGeometry - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/Line3D.qml b/src/tools/qml2puppet/mockfiles/qt5/Line3D.qml deleted file mode 100644 index 4bab4be315e..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/Line3D.qml +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import LineGeometry 1.0 - -Node { - id: pivotLine - - property alias startPos: lineGeometry.startPos - property alias endPos: lineGeometry.endPos - property alias name: lineGeometry.name // Name must be unique for each line - property alias color: lineMat.diffuseColor - - Model { - geometry: LineGeometry { - id: lineGeometry - } - materials: [ - DefaultMaterial { - id: lineMat - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/MaterialNodeView.qml b/src/tools/qml2puppet/mockfiles/qt5/MaterialNodeView.qml deleted file mode 100644 index 2a65838d0c4..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/MaterialNodeView.qml +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick3D 1.15 - -View3D { - id: root - anchors.fill: parent - environment: sceneEnv - camera: envMode === "SkyBox" && envValue === "preview_studio" ? studioCamera : defaultCamera - - property Material previewMaterial - property string envMode - property string envValue - property string modelSrc: "#Sphere" - - function fitToViewPort(closeUp) - { - // No need to zoom this view, this is here just to avoid runtime warnings - } - - SceneEnvironment { - id: sceneEnv - antialiasingMode: SceneEnvironment.MSAA - antialiasingQuality: SceneEnvironment.High - backgroundMode: envMode === "Color" ? SceneEnvironment.Color - : envMode === "SkyBox" ? SceneEnvironment.SkyBox - : SceneEnvironment.Transparent - clearColor: envMode === "Color" ? envValue : "#000000" - lightProbe: envMode === "SkyBox" ? skyBoxTex : null - - Texture { - id: skyBoxTex - source: envMode === "SkyBox" ? "../images/" + envValue + ".hdr" - : "" - } - } - - Node { - DirectionalLight { - eulerRotation.x: -26 - eulerRotation.y: modelSrc === "#Cube" ? -10 : -50 - brightness: envMode !== "SkyBox" ? 100 : 0 - } - - PerspectiveCamera { - id: defaultCamera - y: 70 - z: 200 - eulerRotation.x: -5.71 - clipNear: 1 - clipFar: 1000 - } - - PerspectiveCamera { - id: studioCamera - y: 232 - z: 85 - eulerRotation.x: -64.98 - clipNear: 1 - clipFar: 1000 - } - - Node { - rotation: root.camera.rotation - y: 50 - Node { - y: modelSrc === "#Cone" ? -40 : 10 - eulerRotation.x: 35 - Model { - id: model - source: modelSrc ? modelSrc : "#Sphere" - eulerRotation.y: 45 - materials: previewMaterial - scale: !modelSrc || modelSrc === "#Sphere" - ? Qt.vector3d(1.7, 1.7, 1.7) : Qt.vector3d(1.2, 1.2, 1.2) - } - } - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/ModelNode2DImageView.qml b/src/tools/qml2puppet/mockfiles/qt5/ModelNode2DImageView.qml deleted file mode 100644 index 9c9e88e3b68..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/ModelNode2DImageView.qml +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.15 - -Item { - id: root - width: 150 - height: 150 - - property alias contentItem: contentItem - - /* - View3D { - // Dummy view to hold the context in case View3D items are used in the component - // TODO remove when QTBUG-87678 is fixed - } - */ - - Item { - id: contentItem - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/ModelNode3DImageView.qml b/src/tools/qml2puppet/mockfiles/qt5/ModelNode3DImageView.qml deleted file mode 100644 index 12ae640251d..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/ModelNode3DImageView.qml +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.15 -import QtQuick3D 1.15 - -Item { - id: root - width: 150 - height: 150 - visible: true - - property View3D view: null - property alias contentItem: contentItem - - property var previewObject - - property var materialViewComponent - property var modelViewComponent - property var nodeViewComponent - - property bool closeUp: false - - function destroyView() - { - previewObject = null; - if (view) - view.destroy(); - } - - function createViewForObject(obj, env, envValue, model) - { - if (obj instanceof Material) - createViewForMaterial(obj, env, envValue, model); - else if (obj instanceof Model) - createViewForModel(obj); - else if (obj instanceof Node) - createViewForNode(obj); - } - - function createViewForMaterial(material, env, envValue, model) - { - if (!materialViewComponent) - materialViewComponent = Qt.createComponent("MaterialNodeView.qml"); - - // Always recreate the view to ensure material is up to date - if (materialViewComponent.status === Component.Ready) { - view = materialViewComponent.createObject(viewRect, {"previewMaterial": material, - "envMode": env, - "envValue": envValue, - "modelSrc": model}); - } - previewObject = material; - } - - function createViewForModel(model) - { - if (!modelViewComponent) - modelViewComponent = Qt.createComponent("ModelNodeView.qml"); - - // Always recreate the view to ensure model is up to date - if (modelViewComponent.status === Component.Ready) - view = modelViewComponent.createObject(viewRect, {"sourceModel": model}); - - previewObject = model; - } - - function createViewForNode(node) - { - if (!nodeViewComponent) - nodeViewComponent = Qt.createComponent("NodeNodeView.qml"); - - // Always recreate the view to ensure node is up to date - if (nodeViewComponent.status === Component.Ready) - view = nodeViewComponent.createObject(viewRect, {"importScene": node}); - - previewObject = node; - } - - function fitToViewPort() - { - view.fitToViewPort(closeUp); - } - - // Enables/disables icon mode. When in icon mode, camera is zoomed bit closer to reduce margins - // and the background is removed, in order to generate a preview suitable for library icons. - function setIconMode(enable) - { - closeUp = enable; - backgroundRect.visible = !enable; - } - - View3D { - // Dummy view to hold the context - // TODO remove when QTBUG-87678 is fixed - } - - Item { - id: contentItem - anchors.fill: parent - - Item { - id: viewRect - anchors.fill: parent - } - - // We can use static image in Qt5 as only small previews will be generated - Image { - id: backgroundRect - anchors.fill: parent - z: -1 - source: "../images/static_floor.png" - fillMode: Image.Stretch - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/ModelNodeView.qml b/src/tools/qml2puppet/mockfiles/qt5/ModelNodeView.qml deleted file mode 100644 index f1d4ebfe046..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/ModelNodeView.qml +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.15 -import QtQuick3D 1.15 - -View3D { - id: root - anchors.fill: parent - environment: sceneEnv - camera: theCamera - - property Model sourceModel - - function fitToViewPort(closeUp) - { - // The magic number is the distance from camera default pos to origin - _generalHelper.calculateNodeBoundsAndFocusCamera(theCamera, model, root, - 1040, closeUp); - } - - SceneEnvironment { - id: sceneEnv - antialiasingMode: SceneEnvironment.MSAA - antialiasingQuality: SceneEnvironment.High - } - - DirectionalLight { - eulerRotation.x: -30 - eulerRotation.y: -30 - } - - PerspectiveCamera { - id: theCamera - z: 600 - y: 600 - x: 600 - eulerRotation.x: -45 - eulerRotation.y: -45 - clipFar: 10000 - clipNear: 1 - } - - Model { - id: model - source: sourceModel.source - geometry: sourceModel.geometry - - materials: [ - DefaultMaterial { - diffuseColor: "#999999" - } - ] - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/MoveGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/MoveGizmo.qml deleted file mode 100644 index d2c3dc7d5dd..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/MoveGizmo.qml +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Node { - id: moveGizmo - - property View3D view3D - property bool highlightOnHover: false - property Node targetNode: null - property bool globalOrientation: true - readonly property bool dragging: arrowX.dragging || arrowY.dragging || arrowZ.dragging - || planeX.dragging || planeY.dragging || planeZ.dragging - || centerBall.dragging - property MouseArea3D dragHelper: null - property alias freeDraggerArea: centerBall.mouseArea - - position: dragHelper.pivotScenePosition(targetNode) - - onTargetNodeChanged: position = dragHelper.pivotScenePosition(targetNode) - - Connections { - target: moveGizmo.targetNode - function onSceneTransformChanged() - { - moveGizmo.position = moveGizmo.dragHelper.pivotScenePosition(moveGizmo.targetNode); - } - } - - signal positionCommit() - signal positionMove() - - Node { - rotation: globalOrientation || !moveGizmo.targetNode ? Qt.quaternion(1, 0, 0, 0) - : moveGizmo.targetNode.sceneRotation - Arrow { - id: arrowX - eulerRotation: Qt.vector3d(0, 0, -90) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) - : Qt.rgba(1, 0, 0, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - - Arrow { - id: arrowY - eulerRotation: Qt.vector3d(0, 0, 0) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) - : Qt.rgba(0, 0.6, 0, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - - Arrow { - id: arrowZ - eulerRotation: Qt.vector3d(90, 0, 0) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) - : Qt.rgba(0, 0, 1, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - - PlanarMoveHandle { - id: planeX - - y: 10 - z: 10 - - eulerRotation: Qt.vector3d(0, 90, 0) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) - : Qt.rgba(1, 0, 0, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - - PlanarMoveHandle { - id: planeY - - x: 10 - z: 10 - - eulerRotation: Qt.vector3d(90, 0, 0) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) - : Qt.rgba(0, 0.6, 0, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - - PlanarMoveHandle { - id: planeZ - - x: 10 - y: 10 - - eulerRotation: Qt.vector3d(0, 0, 0) - targetNode: moveGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) - : Qt.rgba(0, 0, 1, 1) - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } - } - - PlanarMoveHandle { - id: centerBall - - source: "#Sphere" - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0.5, 0.5, 0.5, 1)) - : Qt.rgba(0.5, 0.5, 0.5, 1) - rotation: view3D.camera.rotation - priority: 10 - targetNode: moveGizmo.targetNode - - view3D: moveGizmo.view3D - active: moveGizmo.visible - dragHelper: moveGizmo.dragHelper - - onPositionCommit: moveGizmo.positionCommit() - onPositionMove: moveGizmo.positionMove() - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/NodeNodeView.qml b/src/tools/qml2puppet/mockfiles/qt5/NodeNodeView.qml deleted file mode 100644 index 279913576bb..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/NodeNodeView.qml +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.15 -import QtQuick3D 1.15 - -View3D { - id: root - anchors.fill: parent - environment: sceneEnv - camera: theCamera - - function fitToViewPort(closeUp) - { - // The magic number is the distance from camera default pos to origin - _generalHelper.calculateNodeBoundsAndFocusCamera(theCamera, importScene, root, - 1040, closeUp); - } - - SceneEnvironment { - id: sceneEnv - antialiasingMode: SceneEnvironment.MSAA - antialiasingQuality: SceneEnvironment.High - } - - DirectionalLight { - eulerRotation.x: -30 - eulerRotation.y: -30 - } - - PerspectiveCamera { - id: theCamera - z: 600 - y: 600 - x: 600 - eulerRotation.x: -45 - eulerRotation.y: -45 - clipFar: 10000 - clipNear: 1 - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/Overlay2D.qml b/src/tools/qml2puppet/mockfiles/qt5/Overlay2D.qml deleted file mode 100644 index 3ec2959394d..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/Overlay2D.qml +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -Item { - id: root - property Node targetNode - property View3D targetView - - property vector3d offset: Qt.vector3d(0, 0, 0) - - property bool isBehindCamera - - onTargetNodeChanged: updateOverlay() - - Connections { - target: targetNode - function onSceneTransformChanged() { updateOverlay() } - } - - Connections { - target: targetView.camera - function onSceneTransformChanged() { updateOverlay() } - } - - Connections { - target: _generalHelper - function onOverlayUpdateNeeded() { updateOverlay() } - } - - function updateOverlay() - { - var scenePos = targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0); - // Need separate variable as scenePos is reference to read-only property - var scenePosWithOffset = Qt.vector3d(scenePos.x + offset.x, - scenePos.y + offset.y, - scenePos.z + offset.z); - var viewPos = targetView ? targetView.mapFrom3DScene(scenePosWithOffset) - : Qt.vector3d(0, 0, 0); - root.x = viewPos.x; - root.y = viewPos.y; - - isBehindCamera = viewPos.z <= 0; - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/PlanarDraggable.qml b/src/tools/qml2puppet/mockfiles/qt5/PlanarDraggable.qml deleted file mode 100644 index 8efc4445edf..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/PlanarDraggable.qml +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Model { - id: rootModel - - property View3D view3D - property alias color: gizmoMaterial.diffuseColor - property alias priority: mouseArea.priority - property Node targetNode: null - property bool dragging: mouseArea.dragging - property bool active: false - property MouseArea3D dragHelper: null - property alias mouseArea: mouseArea - - readonly property bool hovering: mouseArea.hovering - - property vector3d _scenePosPressed - property vector2d _planePosPressed - property vector3d _targetStartPos - - signal pressed(var mouseArea) - signal dragged(var mouseArea, vector3d sceneRelativeDistance, vector2d relativeDistance) - signal released(var mouseArea, vector3d sceneRelativeDistance, vector2d relativeDistance) - - source: "#Rectangle" - - DefaultMaterial { - id: gizmoMaterial - diffuseColor: "white" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - materials: gizmoMaterial - - function handlePressed(mouseArea, planePos) - { - if (!targetNode) - return; - - _planePosPressed = planePos; - _scenePosPressed = mouseArea.dragHelper.mapPositionToScene(planePos.toVector3d()); - _targetStartPos = mouseArea.pivotScenePosition(targetNode); - pressed(mouseArea); - } - - function calcRelativeDistance(mouseArea, planePos) - { - var scenePointerPos = mouseArea.dragHelper.mapPositionToScene(planePos.toVector3d()); - return scenePointerPos.minus(_scenePosPressed); - } - - function handleDragged(mouseArea, planePos) - { - if (!targetNode) - return; - - dragged(mouseArea, calcRelativeDistance(mouseArea, planePos), - planePos.minus(_planePosPressed)); - } - - function handleReleased(mouseArea, planePos) - { - if (!targetNode) - return; - - released(mouseArea, calcRelativeDistance(mouseArea, planePos), - planePos.minus(_planePosPressed)); - } - - MouseArea3D { - id: mouseArea - view3D: rootModel.view3D - x: -60 - y: -60 - width: 120 - height: 120 - grabsMouse: targetNode - active: rootModel.active - dragHelper: rootModel.dragHelper - - onPressed: (planePos)=> { - rootModel.handlePressed(mouseArea, planePos); - } - onDragged: (planePos)=> { - rootModel.handleDragged(mouseArea, planePos); - } - onReleased: (planePos)=> { - rootModel.handleReleased(mouseArea, planePos); - } - } -} - diff --git a/src/tools/qml2puppet/mockfiles/qt5/PlanarMoveHandle.qml b/src/tools/qml2puppet/mockfiles/qt5/PlanarMoveHandle.qml deleted file mode 100644 index 451c8220c8e..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/PlanarMoveHandle.qml +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -PlanarDraggable { - id: planarHandle - scale: Qt.vector3d(0.024, 0.024, 0.024) - - signal positionCommit() - signal positionMove() - - function localPos(sceneRelativeDistance) - { - var newScenePos = Qt.vector3d( - _targetStartPos.x + sceneRelativeDistance.x, - _targetStartPos.y + sceneRelativeDistance.y, - _targetStartPos.z + sceneRelativeDistance.z); - return targetNode.parent ? targetNode.parent.mapPositionFromScene(newScenePos) : newScenePos; - } - - onPressed: { - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - } - - onDragged: (mouseArea, sceneRelativeDistance)=> { - targetNode.position = localPos(sceneRelativeDistance); - if (targetNode == multiSelectionNode) - _generalHelper.moveMultiSelection(false); - positionMove(); - } - - onReleased: (mouseArea, sceneRelativeDistance)=> { - targetNode.position = localPos(sceneRelativeDistance); - if (targetNode == multiSelectionNode) - _generalHelper.moveMultiSelection(true); - positionCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/PlanarScaleHandle.qml b/src/tools/qml2puppet/mockfiles/qt5/PlanarScaleHandle.qml deleted file mode 100644 index 77ed5603a88..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/PlanarScaleHandle.qml +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -PlanarDraggable { - id: planarHandle - scale: Qt.vector3d(0.024, 0.024, 0.024) - - property bool globalOrientation: false - property vector3d axisX - property vector3d axisY - - signal scaleCommit() - signal scaleChange() - - property vector3d _startScale - - onPressed: { - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - _startScale = targetNode.scale; - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance)=> { - targetNode.scale = mouseArea.getNewScale(_startScale, relativeDistance.times(scale.x), - axisX, axisY); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(false); - scaleChange(); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance)=> { - targetNode.scale = mouseArea.getNewScale(_startScale, relativeDistance.times(scale.x), - axisX, axisY); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(true); - scaleCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/RotateGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/RotateGizmo.qml deleted file mode 100644 index 0130bacb534..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/RotateGizmo.qml +++ /dev/null @@ -1,271 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Node { - id: rotateGizmo - - property View3D view3D - property bool highlightOnHover: true - property Node targetNode: null - property bool globalOrientation: true - readonly property bool dragging: cameraRing.dragging - || rotRingX.dragging || rotRingY.dragging || rotRingZ.dragging - property MouseArea3D dragHelper: null - property real currentAngle - property point currentMousePos - property alias freeDraggerArea: mouseAreaFree - property bool blocked: false - - position: dragHelper.pivotScenePosition(targetNode) - - onTargetNodeChanged: { - position = dragHelper.pivotScenePosition(targetNode); - blocked = _generalHelper.isRotationBlocked(targetNode); - } - - Connections { - target: rotateGizmo.targetNode - function onSceneTransformChanged() - { - rotateGizmo.position = dragHelper.pivotScenePosition(targetNode); - } - } - - Connections { - target: _generalHelper - function onRotationBlocksChanged() - { - blocked = _generalHelper.isRotationBlocked(targetNode); - } - } - - signal rotateCommit() - signal rotateChange() - - function copyRingProperties(srcRing) { - draggingRing.rotation = srcRing.sceneRotation; - draggingRing.color = srcRing.color; - draggingRing.scale = srcRing.scale; - } - - onDraggingChanged: { - if (rotRingX.dragging) - copyRingProperties(rotRingX) - else if (rotRingY.dragging) - copyRingProperties(rotRingY) - else if (rotRingZ.dragging) - copyRingProperties(rotRingZ) - } - - Node { - id: rotNode - rotation: globalOrientation || !rotateGizmo.targetNode ? Qt.quaternion(1, 0, 0, 0) - : rotateGizmo.targetNode.sceneRotation - visible: !rotateGizmo.dragging && !freeRotator.dragging - - RotateRing { - id: rotRingX - objectName: "Rotate Ring X" - eulerRotation: Qt.vector3d(0, 90, 0) - targetNode: rotateGizmo.targetNode - color: rotateGizmo.blocked ? Qt.rgba(0.5, 0.5, 0.5, 1) - : highlightOnHover && (hovering || dragging) - ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) : Qt.rgba(1, 0, 0, 1) - priority: 40 - view3D: rotateGizmo.view3D - active: rotateGizmo.visible && !rotateGizmo.blocked - dragHelper: rotateGizmo.dragHelper - - onRotateCommit: rotateGizmo.rotateCommit() - onRotateChange: rotateGizmo.rotateChange() - onCurrentAngleChanged: rotateGizmo.currentAngle = currentAngle - onCurrentMousePosChanged: rotateGizmo.currentMousePos = currentMousePos - } - - RotateRing { - id: rotRingY - objectName: "Rotate Ring Y" - eulerRotation: Qt.vector3d(90, 0, 0) - targetNode: rotateGizmo.targetNode - color: rotateGizmo.blocked ? Qt.rgba(0.5, 0.5, 0.5, 1) - : highlightOnHover && (hovering || dragging) - ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) : Qt.rgba(0, 0.6, 0, 1) - // Just a smidge smaller than higher priority rings so that it doesn't obscure them - scale: Qt.vector3d(0.998, 0.998, 0.998) - priority: 30 - view3D: rotateGizmo.view3D - active: rotateGizmo.visible && !rotateGizmo.blocked - dragHelper: rotateGizmo.dragHelper - - onRotateCommit: rotateGizmo.rotateCommit() - onRotateChange: rotateGizmo.rotateChange() - onCurrentAngleChanged: rotateGizmo.currentAngle = currentAngle - onCurrentMousePosChanged: rotateGizmo.currentMousePos = currentMousePos - } - - RotateRing { - id: rotRingZ - objectName: "Rotate Ring Z" - eulerRotation: Qt.vector3d(0, 0, 0) - targetNode: rotateGizmo.targetNode - color: rotateGizmo.blocked ? Qt.rgba(0.5, 0.5, 0.5, 1) - : highlightOnHover && (hovering || dragging) - ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) : Qt.rgba(0, 0, 1, 1) - // Just a smidge smaller than higher priority rings so that it doesn't obscure them - scale: Qt.vector3d(0.996, 0.996, 0.996) - priority: 20 - view3D: rotateGizmo.view3D - active: rotateGizmo.visible && !rotateGizmo.blocked - dragHelper: rotateGizmo.dragHelper - - onRotateCommit: rotateGizmo.rotateCommit() - onRotateChange: rotateGizmo.rotateChange() - onCurrentAngleChanged: rotateGizmo.currentAngle = currentAngle - onCurrentMousePosChanged: rotateGizmo.currentMousePos = currentMousePos - } - } - - RotateRing { - // This ring is used as visual proxy during dragging to display the currently dragged - // plane in static position, as rotation planes can wobble when ancestors don't have - // uniform scaling. - // Camera ring doesn't need dragging proxy as it doesn't wobble. - id: draggingRing - objectName: "draggingRing" - targetNode: rotateGizmo.targetNode - view3D: rotateGizmo.view3D - active: false - visible: rotRingX.dragging || rotRingY.dragging || rotRingZ.dragging - } - - RotateRing { - id: cameraRing - objectName: "cameraRing" - rotation: rotateGizmo.view3D.camera.rotation - targetNode: rotateGizmo.targetNode - color: rotateGizmo.blocked ? Qt.rgba(0.5, 0.5, 0.5, 1) - : highlightOnHover && (hovering || dragging) - ? Qt.lighter(Qt.rgba(0.5, 0.5, 0.5, 1)) - : Qt.rgba(0.5, 0.5, 0.5, 1) - scale: Qt.vector3d(1.1, 1.1, 1.1) - priority: 10 - view3D: rotateGizmo.view3D - active: rotateGizmo.visible && !rotateGizmo.blocked - dragHelper: rotateGizmo.dragHelper - visible: !rotRingX.dragging && !rotRingY.dragging && !rotRingZ.dragging && !freeRotator.dragging - - onRotateCommit: rotateGizmo.rotateCommit() - onRotateChange: rotateGizmo.rotateChange() - onCurrentAngleChanged: rotateGizmo.currentAngle = currentAngle - onCurrentMousePosChanged: rotateGizmo.currentMousePos = currentMousePos - } - - Model { - id: freeRotator - - source: "#Sphere" - materials: DefaultMaterial { - id: material - diffuseColor: "black" - opacity: mouseAreaFree.hovering && !rotateGizmo.blocked ? 0.15 : 0 - lighting: DefaultMaterial.NoLighting - } - scale: Qt.vector3d(0.15, 0.15, 0.15) - visible: !rotateGizmo.dragging && !dragging - - property bool dragging: false - property vector3d _pointerPosPressed - property vector3d _startRotation - - function handlePressed(screenPos) - { - if (!rotateGizmo.targetNode) - return; - - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - - // Need to recreate vector as we need to adjust it and we can't do that on reference of - // scenePosition, which is read-only property - var scenePos = rotateGizmo.dragHelper.pivotScenePosition(rotateGizmo.targetNode); - _pointerPosPressed = Qt.vector3d(screenPos.x, screenPos.y, 0); - - // Recreate vector so we don't follow the changes in targetNode.rotation - _startRotation = Qt.vector3d(rotateGizmo.targetNode.eulerRotation.x, - rotateGizmo.targetNode.eulerRotation.y, - rotateGizmo.targetNode.eulerRotation.z); - // Ensure we never set NaN values for rotation, even if target node originally has them - if (isNaN(_startRotation.x)) - _startRotation.x = 0; - if (isNaN(_startRotation.y)) - _startRotation.y = 0; - if (isNaN(_startRotation.z)) - _startRotation.z = 0; - - dragging = true; - } - - function handleDragged(screenPos) - { - if (!rotateGizmo.targetNode) - return; - - mouseAreaFree.applyFreeRotation( - rotateGizmo.targetNode, _startRotation, _pointerPosPressed, - Qt.vector3d(screenPos.x, screenPos.y, 0)); - - if (targetNode == multiSelectionNode) - _generalHelper.rotateMultiSelection(false); - - rotateGizmo.rotateChange(); - } - - function handleReleased(screenPos) - { - if (!rotateGizmo.targetNode) - return; - - mouseAreaFree.applyFreeRotation( - rotateGizmo.targetNode, _startRotation, _pointerPosPressed, - Qt.vector3d(screenPos.x, screenPos.y, 0)); - - if (targetNode == multiSelectionNode) - _generalHelper.rotateMultiSelection(true); - - rotateGizmo.rotateCommit(); - dragging = false; - - if (targetNode == multiSelectionNode) - _generalHelper.resetMultiSelectionNode(); - } - - MouseArea3D { - id: mouseAreaFree - view3D: rotateGizmo.view3D - rotation: rotateGizmo.view3D.camera.rotation - objectName: "Free rotator plane" - x: -50 - y: -50 - width: 100 - height: 100 - circlePickArea: Qt.point(25, 50) - grabsMouse: rotateGizmo.targetNode - active: rotateGizmo.visible && !rotateGizmo.blocked - dragHelper: rotateGizmo.dragHelper - - onPressed: (planePos, screenPos)=> { - freeRotator.handlePressed(screenPos); - } - onDragged: (planePos, screenPos)=> { - freeRotator.handleDragged(screenPos); - } - onReleased: (planePos, screenPos)=> { - freeRotator.handleReleased(screenPos); - } - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/RotateRing.qml b/src/tools/qml2puppet/mockfiles/qt5/RotateRing.qml deleted file mode 100644 index 3fe92413f71..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/RotateRing.qml +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Model { - id: rotateRing - - property View3D view3D - property alias color: material.diffuseColor - property Node targetNode: null - property bool dragging: mouseAreaMain.dragging - property bool active: false - property alias hovering: mouseAreaMain.hovering - property alias priority: mouseAreaMain.priority - property real currentAngle - property point currentMousePos - property MouseArea3D dragHelper: null - - property vector3d _pointerPosPressed - property vector3d _targetPosOnScreen - property vector3d _startRotation - property bool _trackBall - - signal rotateCommit() - signal rotateChange() - - source: "../meshes/ring.mesh" - - Model { - id: pickModel - objectName: "PickModel for " + rotateRing.objectName - source: "../meshes/ringselect.mesh" - pickable: true - } - - materials: DefaultMaterial { - id: material - diffuseColor: "white" - lighting: DefaultMaterial.NoLighting - } - - function applyLocalRotation(screenPos) - { - currentAngle = mouseAreaMain.dragHelper.getNewRotationAngle( - targetNode, _pointerPosPressed, Qt.vector3d(screenPos.x, screenPos.y, 0), - _targetPosOnScreen, currentAngle, _trackBall); - mouseAreaMain.dragHelper.applyRotationAngleToNode(targetNode, _startRotation, currentAngle); - } - - function handlePressed(screenPos, angle) - { - if (!targetNode) - return; - - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - - // Need to recreate vector as we need to adjust it and we can't do that on reference of - // scenePosition, which is read-only property - var scenePos = mouseAreaMain.pivotScenePosition(targetNode); - - _targetPosOnScreen = view3D.mapFrom3DScene(scenePos); - _targetPosOnScreen.z = 0; - _pointerPosPressed = Qt.vector3d(screenPos.x, screenPos.y, 0); - _trackBall = angle < 0.1; - - // Recreate vector so we don't follow the changes in targetNode.eulerRotation - _startRotation = Qt.vector3d(targetNode.eulerRotation.x, - targetNode.eulerRotation.y, - targetNode.eulerRotation.z); - // Ensure we never set NaN values for rotation, even if target node originally has them - if (isNaN(_startRotation.x)) - _startRotation.x = 0; - if (isNaN(_startRotation.y)) - _startRotation.y = 0; - if (isNaN(_startRotation.z)) - _startRotation.z = 0; - currentAngle = 0; - currentMousePos = screenPos; - } - - function handleDragged(screenPos) - { - if (!targetNode) - return; - - applyLocalRotation(screenPos); - - if (targetNode == multiSelectionNode) - _generalHelper.rotateMultiSelection(false); - - currentMousePos = screenPos; - rotateChange(); - } - - function handleReleased(screenPos) - { - if (!targetNode) - return; - - applyLocalRotation(screenPos); - - if (targetNode == multiSelectionNode) - _generalHelper.rotateMultiSelection(true); - - rotateCommit(); - currentAngle = 0; - currentMousePos = screenPos; - - if (targetNode == multiSelectionNode) - _generalHelper.resetMultiSelectionNode(); - } - - MouseArea3D { - id: mouseAreaMain - view3D: rotateRing.view3D - objectName: "Main plane of " + rotateRing.objectName - x: -30 - y: -30 - width: 60 - height: 60 - circlePickArea: Qt.point(9.2, 1.4) - grabsMouse: targetNode - active: rotateRing.active - pickNode: pickModel - minAngle: 0.05 - dragHelper: rotateRing.dragHelper - - onPressed: (planePos, screenPos, angle)=> { - rotateRing.handlePressed(screenPos, angle); - } - onDragged: (planePos, screenPos)=> { - rotateRing.handleDragged(screenPos); - } - onReleased: (planePos, screenPos)=> { - rotateRing.handleReleased(screenPos); - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/ScaleGizmo.qml b/src/tools/qml2puppet/mockfiles/qt5/ScaleGizmo.qml deleted file mode 100644 index b0fe1d1b476..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/ScaleGizmo.qml +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -Node { - id: scaleGizmo - - property View3D view3D - property bool highlightOnHover: false - property Node targetNode: null - readonly property bool dragging: scaleRodX.dragging || scaleRodY.dragging || scaleRodZ.dragging - || planeX.dragging || planeY.dragging || planeZ.dragging - || centerMouseArea.dragging - property MouseArea3D dragHelper: null - property alias freeDraggerArea: centerMouseArea - - position: dragHelper.pivotScenePosition(targetNode) - - onTargetNodeChanged: position = dragHelper.pivotScenePosition(targetNode) - - Connections { - target: scaleGizmo.targetNode - function onSceneTransformChanged() - { - scaleGizmo.position = scaleGizmo.dragHelper.pivotScenePosition(scaleGizmo.targetNode); - } - } - - signal scaleCommit() - signal scaleChange() - - Node { - rotation: !targetNode ? Qt.quaternion(1, 0, 0, 0) : targetNode.sceneRotation - - ScaleRod { - id: scaleRodX - eulerRotation: Qt.vector3d(0, 0, -90) - axis: Qt.vector3d(1, 0, 0) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) - : Qt.rgba(1, 0, 0, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - - ScaleRod { - id: scaleRodY - eulerRotation: Qt.vector3d(0, 0, 0) - axis: Qt.vector3d(0, 1, 0) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) - : Qt.rgba(0, 0.6, 0, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - - ScaleRod { - id: scaleRodZ - eulerRotation: Qt.vector3d(90, 0, 0) - axis: Qt.vector3d(0, 0, 1) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) - : Qt.rgba(0, 0, 1, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - - PlanarScaleHandle { - id: planeX - - y: 10 - z: 10 - - eulerRotation: Qt.vector3d(0, 90, 0) - axisX: Qt.vector3d(0, 0, -1) - axisY: Qt.vector3d(0, 1, 0) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(1, 0, 0, 1)) - : Qt.rgba(1, 0, 0, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - - PlanarScaleHandle { - id: planeY - - x: 10 - z: 10 - - eulerRotation: Qt.vector3d(90, 0, 0) - axisX: Qt.vector3d(1, 0, 0) - axisY: Qt.vector3d(0, 0, 1) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0.6, 0, 1)) - : Qt.rgba(0, 0.6, 0, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - - PlanarScaleHandle { - id: planeZ - - x: 10 - y: 10 - - eulerRotation: Qt.vector3d(0, 0, 0) - axisX: Qt.vector3d(1, 0, 0) - axisY: Qt.vector3d(0, 1, 0) - targetNode: scaleGizmo.targetNode - color: highlightOnHover && (hovering || dragging) ? Qt.lighter(Qt.rgba(0, 0, 1, 1)) - : Qt.rgba(0, 0, 1, 1) - view3D: scaleGizmo.view3D - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - onScaleCommit: scaleGizmo.scaleCommit() - onScaleChange: scaleGizmo.scaleChange() - } - } - - Model { - id: centerCube - - source: "#Cube" - scale: Qt.vector3d(0.024, 0.024, 0.024) - materials: DefaultMaterial { - id: material - diffuseColor: highlightOnHover - && (centerMouseArea.hovering || centerMouseArea.dragging) - ? Qt.lighter(Qt.rgba(0.5, 0.5, 0.5, 1)) - : Qt.rgba(0.5, 0.5, 0.5, 1) - lighting: DefaultMaterial.NoLighting - } - - MouseArea3D { - id: centerMouseArea - view3D: scaleGizmo.view3D - x: -60 - y: -60 - width: 120 - height: 120 - rotation: view3D.camera.rotation - grabsMouse: scaleGizmo.targetNode - priority: 10 - active: scaleGizmo.visible - dragHelper: scaleGizmo.dragHelper - - property vector3d _startScale - property point _startScreenPos - - function localScale(screenPos) - { - var yDelta = screenPos.y - _startScreenPos.y; - if (yDelta === 0) - return _startScale; - var scaler = 1.0 + (yDelta * 0.025); - if (scaler === 0) - scaler = 0.0001; - return Qt.vector3d(scaler * _startScale.x, - scaler * _startScale.y, - scaler * _startScale.z); - } - - onPressed: (planePos, screenPos)=> { - if (!scaleGizmo.targetNode) - return; - - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - - // Recreate vector so we don't follow the changes in targetNode.scale - _startScale = Qt.vector3d(scaleGizmo.targetNode.scale.x, - scaleGizmo.targetNode.scale.y, - scaleGizmo.targetNode.scale.z); - _startScreenPos = screenPos; - } - onDragged: (planePos, screenPos)=> { - if (!scaleGizmo.targetNode) - return; - scaleGizmo.targetNode.scale = localScale(screenPos); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(false); - scaleGizmo.scaleChange(); - } - onReleased: (planePos, screenPos)=> { - if (!scaleGizmo.targetNode) - return; - - scaleGizmo.targetNode.scale = localScale(screenPos); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(true); - scaleGizmo.scaleCommit(); - } - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/ScaleRod.qml b/src/tools/qml2puppet/mockfiles/qt5/ScaleRod.qml deleted file mode 100644 index 07675d3a7d1..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/ScaleRod.qml +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import MouseArea3D 1.0 - -DirectionalDraggable { - id: scaleRod - source: "../meshes/scalerod.mesh" - - property vector3d axis - - signal scaleCommit() - signal scaleChange() - - property vector3d _startScale - - Model { - source: "#Cube" - y: 10 - scale: Qt.vector3d(0.020, 0.020, 0.020) - materials: DefaultMaterial { - id: material - diffuseColor: scaleRod.color - lighting: DefaultMaterial.NoLighting - } - } - - onPressed: { - if (targetNode == multiSelectionNode) - _generalHelper.restartMultiSelection(); - _startScale = targetNode.scale; - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance)=> { - targetNode.scale = mouseArea.getNewScale(_startScale, Qt.vector2d(relativeDistance, 0), - axis, Qt.vector3d(0, 0, 0)); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(false); - scaleChange(); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance)=> { - targetNode.scale = mouseArea.getNewScale(_startScale, Qt.vector2d(relativeDistance, 0), - axis, Qt.vector3d(0, 0, 0)); - if (targetNode == multiSelectionNode) - _generalHelper.scaleMultiSelection(true); - scaleCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/SceneView3D.qml b/src/tools/qml2puppet/mockfiles/qt5/SceneView3D.qml deleted file mode 100644 index cfd565c6cbf..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/SceneView3D.qml +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick3D 1.15 - -View3D { - id: sceneView - anchors.fill: parent - - property bool usePerspective: false - property alias showSceneLight: sceneLight.visible - property alias showGrid: helperGrid.visible - property alias gridColor: helperGrid.gridColor - property alias sceneHelpers: sceneHelpers - property alias perspectiveCamera: scenePerspectiveCamera - property alias orthoCamera: sceneOrthoCamera - property double cameraZoomFactor: .55; - - // Empirical cameraZoomFactor values at which the grid zoom level is doubled. The values are - // approximately uniformally distributed over the non-linear range of cameraZoomFactor. - readonly property var grid_thresholds: [0.55, 1.10, 2.35, 4.9, 10.0, 20.5, 42.0, 85.0, 999999.0] - property var thresIdx: 1 - property var thresPerc: 1.0 // percentage of cameraZoomFactor to the current grid zoom threshold (0.0 - 1.0) - - camera: usePerspective ? scenePerspectiveCamera : sceneOrthoCamera - - onCameraZoomFactorChanged: { - thresIdx = Math.max(1, grid_thresholds.findIndex(v => v > cameraZoomFactor)); - thresPerc = (grid_thresholds[thresIdx] - cameraZoomFactor) / (grid_thresholds[thresIdx] - grid_thresholds[thresIdx - 1]); - } - - Node { - id: sceneHelpers - - HelperGrid { - id: helperGrid - lines: Math.pow(2, grid_thresholds.length - thresIdx - 1); - step: 100 * grid_thresholds[0] * Math.pow(2, thresIdx - 1); - subdivAlpha: thresPerc; - } - - PointLight { - id: sceneLight - position: usePerspective ? scenePerspectiveCamera.position - : sceneOrthoCamera.position - quadraticFade: 0 - linearFade: 0 - } - - // Initial camera position and rotation should be such that they look at origin. - // Otherwise EditCameraController._lookAtPoint needs to be initialized to correct - // point. - PerspectiveCamera { - id: scenePerspectiveCamera - z: 600 - y: 600 - eulerRotation.x: -45 - clipFar: 100000 - clipNear: 1 - } - - OrthographicCamera { - id: sceneOrthoCamera - z: 600 - y: 600 - eulerRotation.x: -45 - clipFar: 100000 - clipNear: -10000 - } - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/SelectionBox.qml b/src/tools/qml2puppet/mockfiles/qt5/SelectionBox.qml deleted file mode 100644 index 0044888bfe8..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/SelectionBox.qml +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (C) 2019 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 -import SelectionBoxGeometry 1.0 - -Node { - id: selectionBox - - property View3D view3D - property Node targetNode: null - property alias model: selectionBoxModel - property alias geometryName: selectionBoxGeometry.name - - SelectionBoxGeometry { - id: selectionBoxGeometry - name: "Selection Box of 3D Edit View" - view3D: selectionBox.view3D - targetNode: selectionBox.targetNode - rootNode: selectionBox - } - - Model { - id: selectionBoxModel - geometry: selectionBoxGeometry - - scale: selectionBox.targetNode ? selectionBox.targetNode.scale : Qt.vector3d(1, 1, 1) - rotation: selectionBox.targetNode ? selectionBox.targetNode.rotation : Qt.quaternion(1, 0, 0, 0) - position: selectionBox.targetNode ? selectionBox.targetNode.position : Qt.vector3d(0, 0, 0) - pivot: selectionBox.targetNode ? selectionBox.targetNode.pivot : Qt.vector3d(0, 0, 0) - - visible: selectionBox.targetNode && !selectionBoxGeometry.isEmpty - - castsShadows: false - receivesShadows: false - - materials: [ - DefaultMaterial { - diffuseColor: "#fff600" - lighting: DefaultMaterial.NoLighting - cullMode: Material.NoCulling - } - ] - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt5/SpotLightHandle.qml b/src/tools/qml2puppet/mockfiles/qt5/SpotLightHandle.qml deleted file mode 100644 index f8974207c00..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt5/SpotLightHandle.qml +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 2.0 -import QtQuick3D 1.15 - -DirectionalDraggable { - id: handleRoot - - property string currentLabel - property point currentMousePos - property string propName - property real propValue: 0 - property real newValue: 0 - - scale: autoScaler.getScale(Qt.vector3d(5, 5, 5)) - length: 3 - offset: -1.5 - - Model { - id: handle - source: "#Sphere" - materials: [ handleRoot.material ] - scale: Qt.vector3d(0.02, 0.02, 0.02) - } - - AutoScaleHelper { - id: autoScaler - active: handleRoot.active - view3D: handleRoot.view3D - } - - property real _startAngle - - signal valueCommit() - signal valueChange() - - function updateAngle(relativeDistance, screenPos) - { - handleRoot.newValue = Math.round(Math.min(180, Math.max(0, _startAngle + relativeDistance))); - var l = Qt.locale(); - handleRoot.currentLabel = propName + qsTr(": ") + Number(newValue).toLocaleString(l, 'f', 0); - handleRoot.currentMousePos = screenPos; - } - - onPressed: (mouseArea, screenPos)=> { - _startAngle = propValue; - updateAngle(0, screenPos); - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateAngle(relativeDistance, screenPos); - handleRoot.valueChange(); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateAngle(relativeDistance, screenPos); - handleRoot.valueCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt6/AreaLightHandle.qml b/src/tools/qml2puppet/mockfiles/qt6/AreaLightHandle.qml deleted file mode 100644 index 26ad41d19f7..00000000000 --- a/src/tools/qml2puppet/mockfiles/qt6/AreaLightHandle.qml +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -import QtQuick 6.0 -import QtQuick3D 6.0 - -DirectionalDraggable { - id: handleRoot - - property string currentLabel - property point currentMousePos - property string propName - property real propValue: 0 - property real newValue: 0 - property real baseScale: 5 - - scale: autoScaler.getScale(Qt.vector3d(baseScale, baseScale, baseScale)) - length: 3 - offset: -1.5 - - Model { - id: handle - readonly property bool _edit3dLocked: true // Make this non-pickable - source: "#Sphere" - materials: [ handleRoot.material ] - scale: Qt.vector3d(0.02, 0.02, 0.02) - } - - AutoScaleHelper { - id: autoScaler - active: handleRoot.active - view3D: handleRoot.view3D - } - - property real _startValue - property real _startScale - - signal valueCommit() - signal valueChange() - - function updateValue(relativeDistance, screenPos) - { - handleRoot.newValue = Math.round(Math.min(999999, Math.max(0, _startValue + (relativeDistance * _startScale)))); - var l = Qt.locale(); - handleRoot.currentLabel = propName + qsTr(": ") + Number(newValue).toLocaleString(l, 'f', 0); - handleRoot.currentMousePos = screenPos; - } - - onPressed: (mouseArea, screenPos)=> { - _startScale = autoScaler.relativeScale * baseScale; - _startValue = propValue; - updateValue(0, screenPos); - } - - onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateValue(relativeDistance, screenPos); - handleRoot.valueChange(); - } - - onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> { - updateValue(relativeDistance, screenPos); - handleRoot.valueCommit(); - } -} diff --git a/src/tools/qml2puppet/mockfiles/qt6/LightGizmo.qml b/src/tools/qml2puppet/mockfiles/qt6/LightGizmo.qml index 9a65ac9c753..bdc9dc2f753 100644 --- a/src/tools/qml2puppet/mockfiles/qt6/LightGizmo.qml +++ b/src/tools/qml2puppet/mockfiles/qt6/LightGizmo.qml @@ -36,20 +36,15 @@ Node { || spotLightHandle.dragging || spotLightInnerHandle.dragging || spotLightFadeHandle.dragging - || areaHeightHandle.dragging - || areaWidthHandle.dragging || pointLightFadeHandle.dragging property point currentMousePos property string currentLabel - property int brightnessDecimals: _generalHelper.brightnessScaler() > 10. ? 0 : 2; - property real brightnessMultiplier: Math.pow(10, brightnessDecimals); signal propertyValueCommit(string propName) signal propertyValueChange(string propName) position: targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0) visible: lightGizmo.targetNode instanceof SpotLight - || lightGizmo.targetNode instanceof AreaLight || lightGizmo.targetNode instanceof DirectionalLight || lightGizmo.targetNode instanceof PointLight @@ -213,65 +208,6 @@ Node { } } } - Node { - id: areaParts - visible: lightGizmo.targetNode instanceof AreaLight - - LightModel { - id: areaModel - geometryName: "Edit 3D AreaLight" - geometryType: LightGeometry.Area - material: lightMaterial - scale: areaParts.visible ? Qt.vector3d(lightGizmo.targetNode.width / 2, - lightGizmo.targetNode.height / 2, 1) - .times(lightGizmo.targetNode.scale) - : Qt.vector3d(1, 1, 1) - } - - AreaLightHandle { - id: areaWidthHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof AreaLight ? Qt.vector3d(-areaModel.scale.x, 0, 0) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(0, 0, 90) - targetNode: lightGizmo.targetNode instanceof AreaLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof AreaLight - dragHelper: lightGizmo.dragHelper - propName: "width" - propValue: lightGizmo.targetNode instanceof AreaLight ? targetNode.width : 0 - - onNewValueChanged: targetNode.width = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: lightGizmo.propertyValueCommit(propName) - } - - AreaLightHandle { - id: areaHeightHandle - view3D: lightGizmo.view3D - color: (hovering || dragging) ? Qt.rgba(1, 1, 1, 1) : lightGizmo.color - position: lightGizmo.targetNode instanceof AreaLight ? Qt.vector3d(0, -areaModel.scale.y, 0) - : Qt.vector3d(0, 0, 0) - eulerRotation: Qt.vector3d(0, 0, 180) - targetNode: lightGizmo.targetNode instanceof AreaLight ? lightGizmo.targetNode : null - active: lightGizmo.targetNode instanceof AreaLight - dragHelper: lightGizmo.dragHelper - propName: "height" - propValue: lightGizmo.targetNode instanceof AreaLight ? targetNode.height : 0 - - onNewValueChanged: targetNode.height = newValue - onCurrentMousePosChanged: { - lightGizmo.currentMousePos = currentMousePos; - lightGizmo.currentLabel = currentLabel; - } - onValueChange: lightGizmo.propertyValueChange(propName) - onValueCommit: lightGizmo.propertyValueCommit(propName) - } - } LightModel { id: directionalModel @@ -291,19 +227,19 @@ Node { active: lightGizmo.visible dragHelper: lightGizmo.dragHelper scale: autoScaler.getScale(Qt.vector3d(5, 5, 5)) - length: targetNode ? Math.max(1.0, 1.0 + targetNode.brightness / _generalHelper.brightnessScaler() * 10.0) + 3 : 10 + length: targetNode ? Math.max(1.0, 1.0 + targetNode.brightness * 10.0) + 3 : 10 property real _startBrightness function updateBrightness(relativeDistance, screenPos) { - var currentValue = Math.max(0, (_startBrightness + relativeDistance * _generalHelper.brightnessScaler() / 10.0)); - currentValue *= brightnessMultiplier; + var currentValue = Math.max(0, (_startBrightness + relativeDistance / 10.0)); + currentValue *= 100; currentValue = Math.round(currentValue); - currentValue /= brightnessMultiplier; + currentValue /= 100; var l = Qt.locale(); - lightGizmo.currentLabel = "brightness" + qsTr(": ") + Number(currentValue).toLocaleString(l, 'f', brightnessDecimals); + lightGizmo.currentLabel = "brightness" + qsTr(": ") + Number(currentValue).toLocaleString(l, 'f', 2); lightGizmo.currentMousePos = screenPos; targetNode.brightness = currentValue; } diff --git a/src/tools/qml2puppet/mockfiles/qt6/LightIconGizmo.qml b/src/tools/qml2puppet/mockfiles/qt6/LightIconGizmo.qml index 542482469e0..4b3fb33d7fb 100644 --- a/src/tools/qml2puppet/mockfiles/qt6/LightIconGizmo.qml +++ b/src/tools/qml2puppet/mockfiles/qt6/LightIconGizmo.qml @@ -13,10 +13,8 @@ IconGizmo { iconSource: targetNode ? targetNode instanceof DirectionalLight ? "image://IconGizmoImageProvider/directional.png:" + overlayColor - : targetNode instanceof AreaLight - ? "image://IconGizmoImageProvider/area.png:" + overlayColor - : targetNode instanceof PointLight - ? "image://IconGizmoImageProvider/point.png:" + overlayColor - : "image://IconGizmoImageProvider/spot.png:" + overlayColor + : targetNode instanceof PointLight + ? "image://IconGizmoImageProvider/point.png:" + overlayColor + : "image://IconGizmoImageProvider/spot.png:" + overlayColor : "image://IconGizmoImageProvider/point.png:" + overlayColor } diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.cpp index 9d5f7221b46..f2eab9f5656 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.cpp @@ -120,16 +120,6 @@ void CameraGeometry::doUpdateGeometry() if (!QQuick3DObjectPrivate::get(m_camera)->spatialNode) { // Doing explicit viewport mapping forces cameraNode creation m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height()); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (!m_nodeCreationUpdateDone) { - // Post-node creation update is done only once to avoid infinite loop in case the node - // creation fails. - m_nodeCreationUpdateDone = true; - m_cameraUpdatePending = true; - update(); - return; - } -#endif } GeometryBase::doUpdateGeometry(); diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.h b/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.h index d161d8a1aa3..a58ca735af2 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.h +++ b/src/tools/qml2puppet/qml2puppet/editor3d/camerageometry.h @@ -45,9 +45,6 @@ private: QQuick3DCamera *m_camera = nullptr; QRectF m_viewPortRect; bool m_cameraUpdatePending = false; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - bool m_nodeCreationUpdateDone = false; -#endif }; } diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/editor3d.pri b/src/tools/qml2puppet/qml2puppet/editor3d/editor3d.pri index 6eedaad8f1f..da7ba93e78c 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/editor3d.pri +++ b/src/tools/qml2puppet/qml2puppet/editor3d/editor3d.pri @@ -17,8 +17,3 @@ SOURCES += $$PWD/generalhelper.cpp \ $$PWD/selectionboxgeometry.cpp \ $$PWD/linegeometry.cpp \ $$PWD/icongizmoimageprovider.cpp - -versionAtLeast(QT_VERSION, 6.0.0) { - HEADERS += $$PWD/qt5compat/qquick3darealight_p.h - SOURCES += $$PWD/qt5compat/qquick3darealight.cpp -} diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp index 099855384d5..056e9ca6a02 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp @@ -218,11 +218,7 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul if (window) { #if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); -#else context = targetPriv->sceneManager->rci; -#endif if (!context.isNull()) { #else const auto &sm = targetPriv->sceneManager; @@ -235,11 +231,7 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul bounds = geometry->bounds(); } else { const auto &bufferManager(context->bufferManager()); -#if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) - bounds = renderModel->getModelBounds(bufferManager); -#else bounds = bufferManager->getModelBounds(renderModel); -#endif } center = renderModel->globalTransform.map(bounds.center()); @@ -430,7 +422,6 @@ QQuick3DPickResult GeneralHelper::pickViewAt(QQuick3DViewport *view, float posX, if (!view) return QQuick3DPickResult(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 1) // Make sure global picking is on view->setGlobalPickingEnabled(true); @@ -440,12 +431,6 @@ QQuick3DPickResult GeneralHelper::pickViewAt(QQuick3DViewport *view, float posX, if (isPickable(pickResult.objectHit())) return pickResult; } -#else - // With older Qt version we'll just pick the single object - auto pickResult = view->pick(posX, posY); - if (isPickable(pickResult.objectHit())) - return pickResult; -#endif return QQuick3DPickResult(); } @@ -486,13 +471,11 @@ bool GeneralHelper::isPickable(QQuick3DNode *node) const if (!node) return false; -#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0) // Instancing doesn't hide child nodes, so only check for instancing on the requested node if (auto model = qobject_cast(node)) { if (model->instancing()) return false; } -#endif QQuick3DNode *n = node; while (n) { @@ -607,16 +590,6 @@ QString GeneralHelper::rootSizeKey() const return _rootSizeKey; } -double GeneralHelper::brightnessScaler() const -{ - // Light brightness was rescaled in Qt6 from 100 -> 1. -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - return 100.; -#else - return 1.; -#endif -} - void GeneralHelper::setMultiSelectionTargets(QQuick3DNode *multiSelectRootNode, const QVariantList &selectedList) { @@ -1042,15 +1015,10 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec auto renderNode = static_cast(nodePriv->spatialNode); if (renderNode) { -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) - if (renderNode->flags.testFlag(QSSGRenderNode::Flag::TransformDirty)) - renderNode->calculateLocalTransform(); -#else if (renderNode->isDirty(QSSGRenderNode::DirtyFlag::TransformDirty)) { renderNode->localTransform = QSSGRenderNode::calculateTransformMatrix( node->position(), node->scale(), node->pivot(), node->rotation()); } -#endif localTransform = renderNode->localTransform; } @@ -1117,11 +1085,7 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec if (window) { #if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); -#else context = QQuick3DObjectPrivate::get(node)->sceneManager->rci; -#endif if (!context.isNull()) { #else const auto &sm = QQuick3DObjectPrivate::get(node)->sceneManager; @@ -1129,11 +1093,7 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec if (context) { #endif const auto &bufferManager(context->bufferManager()); -#if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) - QSSGBounds3 bounds = renderModel->getModelBounds(bufferManager); -#else QSSGBounds3 bounds = bufferManager->getModelBounds(renderModel); -#endif QVector3D center = bounds.center(); QVector3D extents = bounds.extents(); QVector3D localMin = center - extents; diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.h b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.h index a2416c82799..a80ab516ae2 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.h +++ b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.h @@ -82,8 +82,6 @@ public: QString lastSceneIdKey() const; QString rootSizeKey() const; - Q_INVOKABLE double brightnessScaler() const; - Q_INVOKABLE void setMultiSelectionTargets(QQuick3DNode *multiSelectRootNode, const QVariantList &selectedList); Q_INVOKABLE void resetMultiSelectionNode(); diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.cpp index 8d049d4fb35..0f014c3796c 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.cpp @@ -35,7 +35,6 @@ void GeometryBase::doUpdateGeometry() update(); } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QString GeometryBase::name() const { return objectName(); @@ -46,7 +45,6 @@ void GeometryBase::setName(const QString &name) setObjectName(name); emit nameChanged(); } -#endif void GeometryBase::updateGeometry() { diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.h b/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.h index 4b26698fe1c..acab87f13ba 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.h +++ b/src/tools/qml2puppet/qml2puppet/editor3d/geometrybase.h @@ -16,7 +16,6 @@ class GeometryBase : public QQuick3DGeometry { Q_OBJECT -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) // Name property was removed in Qt 6, so define it here for compatibility. // Name maps to object name. Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) @@ -25,7 +24,6 @@ public: void setName(const QString &name); signals: void nameChanged(); -#endif public: GeometryBase(); diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/mousearea3d.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/mousearea3d.cpp index f4f22996e1f..a271c98a5fe 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/mousearea3d.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/mousearea3d.cpp @@ -892,10 +892,6 @@ bool MouseArea3D::eventFilter(QObject *, QEvent *event) // a problem onCircle = false; if (m_pickNode) { -#if QT_VERSION < QT_VERSION_CHECK(6, 2, 1) - QQuick3DPickResult pr = m_view3D->pick(float(mousePos.x()), float(mousePos.y())); - pickSuccess = pr.objectHit() == m_pickNode; -#else // With the introduction of global picking API, // we need to pick all as various other geometries can often be the first // pick result, such as camera frustum or light geometry @@ -907,7 +903,6 @@ bool MouseArea3D::eventFilter(QObject *, QEvent *event) break; } } -#endif } } } diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight.cpp deleted file mode 100644 index 3006be15da2..00000000000 --- a/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#ifdef QUICK3D_MODULE - -#include "qquick3darealight_p.h" -#include - -#include - -namespace QmlDesigner::Internal { - -float QQuick3DAreaLight::width() const -{ - return m_width; -} - -float QQuick3DAreaLight::height() const -{ - return m_height; -} - -void QQuick3DAreaLight::setWidth(float width) -{ - m_width = width; - emit widthChanged(); -} - -void QQuick3DAreaLight::setHeight(float height) -{ - m_height = height; - emit heightChanged(); -} - -} - -#endif diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight_p.h b/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight_p.h deleted file mode 100644 index e82babcf4ea..00000000000 --- a/src/tools/qml2puppet/qml2puppet/editor3d/qt5compat/qquick3darealight_p.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#ifdef QUICK3D_MODULE - -// This is a dummy class for Qt 5 compatibility purposes only - -#include - -namespace QmlDesigner::Internal { - -class QQuick3DAreaLight : public QQuick3DAbstractLight -{ - Q_OBJECT - Q_PROPERTY(float width READ width WRITE setWidth NOTIFY widthChanged) - Q_PROPERTY(float height READ height WRITE setHeight NOTIFY heightChanged) - -public: - ~QQuick3DAreaLight() override {} - - float width() const; - float height() const; - -public slots: - void setWidth(float width); - void setHeight(float height); - -signals: - void widthChanged(); - void heightChanged(); - -private: - float m_width = 100.0f; - float m_height = 100.0f; -}; - -} - -QML_DECLARE_TYPE(QmlDesigner::Internal::QQuick3DAreaLight) - -#endif diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp index 1157b1c5f84..64c3c25a2ab 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp @@ -195,11 +195,7 @@ void SelectionBoxGeometry::doUpdateGeometry() m = targetRN->parent->globalTransform; } rootRN->localTransform = m; -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) - rootRN->markDirty(QSSGRenderNode::TransformDirtyFlag::TransformNotDirty); -#else rootRN->markDirty(QSSGRenderNode::DirtyFlag::TransformDirty); -#endif rootRN->calculateGlobalVariables(); } else if (!m_spatialNodeUpdatePending) { // Necessary spatial nodes do not yet exist. Defer selection box creation one frame. @@ -243,15 +239,10 @@ void SelectionBoxGeometry::getBounds( if (node != m_targetNode) { if (renderNode) { -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) - if (renderNode->flags.testFlag(QSSGRenderNode::Flag::TransformDirty)) - renderNode->calculateLocalTransform(); -#else if (renderNode->isDirty(QSSGRenderNode::DirtyFlag::TransformDirty)) { renderNode->localTransform = QSSGRenderNode::calculateTransformMatrix( node->position(), node->scale(), node->pivot(), node->rotation()); } -#endif localTransform = renderNode->localTransform; } trackNodeChanges(node); @@ -314,11 +305,7 @@ void SelectionBoxGeometry::getBounds( if (window) { #if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); -#elif QT_VERSION < QT_VERSION_CHECK(6, 5, 1) context = QQuick3DObjectPrivate::get(this)->sceneManager->rci; -#endif if (!context.isNull()) { #else const auto &sm = QQuick3DObjectPrivate::get(this)->sceneManager; @@ -326,11 +313,7 @@ void SelectionBoxGeometry::getBounds( if (context) { #endif const auto &bufferManager(context->bufferManager()); -#if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) - QSSGBounds3 bounds = renderModel->getModelBounds(bufferManager); -#else QSSGBounds3 bounds = bufferManager->getModelBounds(renderModel); -#endif QVector3D center = bounds.center(); QVector3D extents = bounds.extents(); QVector3D localMin = center - extents; diff --git a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.cpp b/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.cpp deleted file mode 100644 index 71e73026d1c..00000000000 --- a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.cpp +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "iconrenderer.h" - -#include "../editor3d/selectionboxgeometry.h" -#include "../editor3d/generalhelper.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef QUICK3D_MODULE -#include -#include -#endif - -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -#include -#include -#include -#endif - -#include - -IconRenderer::IconRenderer(int size, const QString &filePath, const QString &source) - : QObject(nullptr) - , m_size(size) - , m_filePath(filePath) - , m_source(source) -{ -} - -IconRenderer::~IconRenderer() = default; - -void IconRenderer::setupRender() -{ - QQuickDesignerSupport::activateDesignerMode(); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - DesignerSupport::activateDesignerWindowManager(); -#endif - - QQmlEngine *engine = nullptr; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - auto view = new QQuickView; - engine = view->engine(); - m_window = view; - QSurfaceFormat surfaceFormat = view->requestedFormat(); - surfaceFormat.setVersion(4, 1); - surfaceFormat.setProfile(QSurfaceFormat::CoreProfile); - view->setFormat(surfaceFormat); - DesignerSupport::createOpenGLContext(view); -#else - engine = new QQmlEngine; - m_renderControl = new QQuickRenderControl; - m_window = new QQuickWindow(m_renderControl); - m_window->setDefaultAlphaBuffer(true); - m_window->setColor(Qt::transparent); - m_renderControl->initialize(); -#endif - - QQmlComponent component(engine); - component.loadUrl(QUrl::fromLocalFile(m_source)); - QObject *iconItem = component.create(); - - if (iconItem) { -#ifdef QUICK3D_MODULE - if (auto scene = qobject_cast(iconItem)) { - qmlRegisterType("SelectionBoxGeometry", 1, 0, "SelectionBoxGeometry"); - QQmlComponent component(engine); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - component.loadUrl(QUrl("qrc:/qtquickplugin/mockfiles/qt5/IconRenderer3D.qml")); - m_containerItem = qobject_cast(component.create()); - DesignerSupport::setRootItem(view, m_containerItem); -#else - component.loadUrl(QUrl("qrc:/qtquickplugin/mockfiles/qt6/IconRenderer3D.qml")); - m_containerItem = qobject_cast(component.create()); - m_window->contentItem()->setSize(m_containerItem->size()); - m_window->setGeometry(0, 0, m_containerItem->width(), m_containerItem->height()); - m_containerItem->setParentItem(m_window->contentItem()); -#endif - - auto helper = new QmlDesigner::Internal::GeneralHelper(); - engine->rootContext()->setContextProperty("_generalHelper", helper); - - m_contentItem = QQmlProperty::read(m_containerItem, "view3D").value(); - auto view3D = qobject_cast(m_contentItem); - view3D->setImportScene(scene); - m_is3D = true; - } else -#endif - if (auto scene = qobject_cast(iconItem)) { - m_contentItem = scene; - m_containerItem = new QQuickItem(); - m_containerItem->setSize(QSizeF(1024, 1024)); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - DesignerSupport::setRootItem(view, m_containerItem); -#else - m_window->contentItem()->setSize(m_containerItem->size()); - m_window->setGeometry(0, 0, m_containerItem->width(), m_containerItem->height()); - m_containerItem->setParentItem(m_window->contentItem()); -#endif - m_contentItem->setParentItem(m_containerItem); - } - - if (m_containerItem && m_contentItem) { - resizeContent(m_size); - if (!initRhi()) - QTimer::singleShot(0, qGuiApp, &QGuiApplication::quit); - QTimer::singleShot(0, this, &IconRenderer::startCreateIcon); - } else { - QTimer::singleShot(0, qGuiApp, &QGuiApplication::quit); - } - } else { - QTimer::singleShot(0, qGuiApp, &QGuiApplication::quit); - } -} - -void IconRenderer::startCreateIcon() -{ -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - m_designerSupport->refFromEffectItem(m_containerItem, false); -#endif - QQuickDesignerSupportItems::disableNativeTextRendering(m_containerItem); - - if (m_is3D) - QTimer::singleShot(0, this, &IconRenderer::focusCamera); - else - QTimer::singleShot(0, this, &IconRenderer::finishCreateIcon); -} - -void IconRenderer::focusCamera() -{ -#ifdef QUICK3D_MODULE - if (m_focusStep >= 10) { - QTimer::singleShot(0, this, &IconRenderer::finishCreateIcon); - return; - } - - render({}); - - if (m_focusStep == 0) { - QMetaObject::invokeMethod(m_containerItem, "setSceneToBox"); - } else if (m_focusStep > 1 && m_focusStep < 10) { - QMetaObject::invokeMethod(m_containerItem, "fitAndHideBox"); - } - ++m_focusStep; - QTimer::singleShot(0, this, &IconRenderer::focusCamera); -#endif -} - -void IconRenderer::finishCreateIcon() -{ - QFileInfo fi(m_filePath); - - // Render regular size image - render(fi.absoluteFilePath()); - - // Render @2x image - resizeContent(m_size * 2); - if (!initRhi()) - QTimer::singleShot(1000, qGuiApp, &QGuiApplication::quit); - - QString saveFile; - saveFile = fi.absolutePath() + '/' + fi.completeBaseName() + "@2x"; - if (!fi.suffix().isEmpty()) - saveFile += '.' + fi.suffix(); - - fi.absoluteDir().mkpath("."); - - render(saveFile); - - QTimer::singleShot(0, qGuiApp, &QGuiApplication::quit); -} - -void IconRenderer::render(const QString &fileName) -{ - std::function updateNodesRecursive; - updateNodesRecursive = [&updateNodesRecursive](QQuickItem *item) { - const auto childItems = item->childItems(); - for (QQuickItem *childItem : childItems) - updateNodesRecursive(childItem); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - DesignerSupport::updateDirtyNode(item); -#else - if (item->flags() & QQuickItem::ItemHasContents) - item->update(); -#endif - }; - updateNodesRecursive(m_containerItem); - - QRect rect(QPoint(), m_contentItem->size().toSize()); - QImage renderImage; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - renderImage = m_designerSupport->renderImageForItem(m_containerItem, rect, rect.size()); -#else - m_renderControl->polishItems(); - m_renderControl->beginFrame(); - m_renderControl->sync(); - m_renderControl->render(); - - bool readCompleted = false; - QRhiReadbackResult readResult; - readResult.completed = [&] { - readCompleted = true; - QImage wrapperImage(reinterpret_cast(readResult.data.constData()), - readResult.pixelSize.width(), readResult.pixelSize.height(), - QImage::Format_RGBA8888_Premultiplied); - if (m_rhi->isYUpInFramebuffer()) - renderImage = wrapperImage.mirrored().copy(0, 0, rect.width(), rect.height()); - else - renderImage = wrapperImage.copy(0, 0, rect.width(), rect.height()); - }; - QRhiResourceUpdateBatch *readbackBatch = m_rhi->nextResourceUpdateBatch(); - readbackBatch->readBackTexture(m_texture, &readResult); - - QQuickRenderControlPrivate *rd = QQuickRenderControlPrivate::get(m_renderControl); - rd->cb->resourceUpdate(readbackBatch); - - m_renderControl->endFrame(); -#endif - if (!fileName.isEmpty()) { - QFileInfo fi(fileName); - if (fi.suffix().isEmpty()) - renderImage.save(fileName, "PNG"); - else - renderImage.save(fileName); - } -} - -void IconRenderer::resizeContent(int dimensions) -{ - QSizeF size(dimensions, dimensions); - m_contentItem->setSize(size); - if (m_contentItem->width() > m_containerItem->width()) - m_containerItem->setWidth(m_contentItem->width()); - if (m_contentItem->height() > m_containerItem->height()) - m_containerItem->setHeight(m_contentItem->height()); -} - -bool IconRenderer::initRhi() -{ -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - if (!m_rhi) { - QQuickRenderControlPrivate *rd = QQuickRenderControlPrivate::get(m_renderControl); - m_rhi = rd->rhi; - if (!m_rhi) { - qWarning() << __FUNCTION__ << "Rhi is null"; - return false; - } - } - - // Don't bother deleting old ones as iconrender is a single shot executable - m_texTarget = nullptr; - m_rpDesc = nullptr; - m_buffer = nullptr; - m_texture = nullptr; - - const QSize size = m_containerItem->size().toSize(); - m_texture = m_rhi->newTexture(QRhiTexture::RGBA8, size, 1, - QRhiTexture::RenderTarget | QRhiTexture::UsedAsTransferSource); - if (!m_texture->create()) { - qWarning() << __FUNCTION__ << "QRhiTexture creation failed"; - return false; - } - - m_buffer = m_rhi->newRenderBuffer(QRhiRenderBuffer::DepthStencil, size, 1); - if (!m_buffer->create()) { - qWarning() << __FUNCTION__ << "Depth/stencil buffer creation failed"; - return false; - } - - QRhiTextureRenderTargetDescription rtDesc {QRhiColorAttachment(m_texture)}; - rtDesc.setDepthStencilBuffer(m_buffer); - m_texTarget = m_rhi->newTextureRenderTarget(rtDesc); - m_rpDesc = m_texTarget->newCompatibleRenderPassDescriptor(); - m_texTarget->setRenderPassDescriptor(m_rpDesc); - if (!m_texTarget->create()) { - qWarning() << __FUNCTION__ << "Texture render target creation failed"; - return false; - } - - // redirect Qt Quick rendering into our texture - m_window->setRenderTarget(QQuickRenderTarget::fromRhiRenderTarget(m_texTarget)); -#endif - return true; -} diff --git a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.h b/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.h deleted file mode 100644 index f76f49dbed0..00000000000 --- a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include -#include - -#include - -QT_BEGIN_NAMESPACE -class QQuickWindow; -class QQuickItem; -class QQuickDesignerSupport; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -class QQuickRenderControl; -class QRhi; -class QRhiTexture; -class QRhiRenderBuffer; -class QRhiTextureRenderTarget; -class QRhiRenderPassDescriptor; -#endif -QT_END_NAMESPACE - -class IconRenderer : public QObject -{ - Q_OBJECT - -public: - explicit IconRenderer(int size, const QString &filePath, const QString &source); - ~IconRenderer(); - - void setupRender(); - -private: - void startCreateIcon(); - void focusCamera(); - void finishCreateIcon(); - void render(const QString &fileName); - void resizeContent(int dimensions); - bool initRhi(); - - int m_size = 16; - QString m_filePath; - QString m_source; - QQuickWindow *m_window = nullptr; - QQuickItem *m_contentItem = nullptr; - QQuickItem *m_containerItem = nullptr; - std::unique_ptr m_designerSupport; - bool m_is3D = false; - int m_focusStep = 0; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - QQuickRenderControl *m_renderControl = nullptr; - QRhi *m_rhi = nullptr; - QRhiTexture *m_texture = nullptr; - QRhiRenderBuffer *m_buffer = nullptr; - QRhiTextureRenderTarget *m_texTarget = nullptr; - QRhiRenderPassDescriptor *m_rpDesc = nullptr; -#endif -}; diff --git a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.pri b/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.pri deleted file mode 100644 index 59d5b12cee1..00000000000 --- a/src/tools/qml2puppet/qml2puppet/iconrenderer/iconrenderer.pri +++ /dev/null @@ -1,3 +0,0 @@ -HEADERS += $$PWD/iconrenderer.h - -SOURCES += $$PWD/iconrenderer.cpp diff --git a/src/tools/qml2puppet/qml2puppet/import3d/import3d.cpp b/src/tools/qml2puppet/qml2puppet/import3d/import3d.cpp index 67f16241bef..962fa8c4291 100644 --- a/src/tools/qml2puppet/qml2puppet/import3d/import3d.cpp +++ b/src/tools/qml2puppet/qml2puppet/import3d/import3d.cpp @@ -32,11 +32,7 @@ void import3D([[maybe_unused]] const QString &sourceAsset, if (!optDoc.isNull() && optDoc.isObject()) { QJsonObject optObj = optDoc.object(); -#if (QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)) const auto &optionsMap = optObj; -#else - const auto optionsMap = optObj.toVariantMap(); -#endif // QT_VERSION >= 6.4.0 if (importer->importFile(sourceAsset, outDir, optionsMap, &errorStr) != QSSGAssetImportManager::ImportState::Success) { } diff --git a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp index 3d6445e2404..46a8c605320 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp @@ -19,9 +19,7 @@ #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) #include -#endif #include #include @@ -728,7 +726,6 @@ void NodeInstanceServer::setupMockupTypes(const QVector &co { for (const MockupTypeContainer &mockupType : container) { if (!isTypeAvailable(mockupType, engine())) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) if (mockupType.majorVersion() == -1 && mockupType.minorVersion() == -1) { QQuickDesignerSupportMetaInfo::registerMockupObject(mockupType.importUri().toUtf8(), 1, @@ -740,13 +737,6 @@ void NodeInstanceServer::setupMockupTypes(const QVector &co mockupType.minorVersion(), mockupType.typeName()); } -#else - qmlRegisterType(QUrl("qrc:/qtquickplugin/mockfiles/GenericBackend.qml"), - mockupType.importUri().toUtf8(), - mockupType.majorVersion(), - mockupType.minorVersion(), - mockupType.typeName()); -#endif } } } @@ -1412,10 +1402,8 @@ void NodeInstanceServer::loadDummyContextObjectFile(const QFileInfo &qmlFileInfo void NodeInstanceServer::setTranslationLanguage(const QString &language) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) // if there exists an /i18n directory it sets default translators engine()->setUiLanguage(language); -#endif static QPointer multilanguageTranslator; if (!MultiLanguage::databaseFilePath().isEmpty() && QFileInfo::exists(QString::fromUtf8(MultiLanguage::databaseFilePath()))) { diff --git a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.h b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.h index f4eee1e8745..65542dedc25 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.h +++ b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.h @@ -40,11 +40,7 @@ namespace QtHelpers { template QListtoList(const QSet &set) { -#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) - return set.toList(); -#else return QList(set.begin(), set.end()); -#endif } } // QtHelpers diff --git a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp index 373bd6dbefb..77de3a5661b 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp @@ -282,11 +282,7 @@ static void removeObjectFromList(const QQmlProperty &property, QObject *objectToBeRemoved, [[maybe_unused]] QQmlEngine *engine) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0) QQmlListReference listReference(property.object(), property.name().toUtf8()); -#else - QQmlListReference listReference(property.object(), property.name().toUtf8(), engine); -#endif if (!QmlPrivateGate::hasFullImplementedListInterface(listReference)) { qWarning() << "Property list interface not fully implemented for Class " << property.property().typeName() << " in property " << property.name() << "!"; diff --git a/src/tools/qml2puppet/qml2puppet/instances/qmlstatenodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/qmlstatenodeinstance.cpp index a62246b4a4a..5357e57ae6d 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qmlstatenodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/qmlstatenodeinstance.cpp @@ -34,14 +34,12 @@ QmlStateNodeInstance::Pointer void setAllNodesDirtyRecursive([[maybe_unused]] QQuickItem *parentItem) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!parentItem) return; const QList children = parentItem->childItems(); for (QQuickItem *childItem : children) setAllNodesDirtyRecursive(childItem); QQuickDesignerSupport::addDirty(parentItem, QQuickDesignerSupport::Content); -#endif } void QmlStateNodeInstance::activateState() diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp index 5d198a2ca70..c407645e77a 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp @@ -68,9 +68,7 @@ #include #include -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include -#endif #ifdef QUICK3D_MODULE #include @@ -81,10 +79,7 @@ #include #include #include -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -#include "../editor3d/qt5compat/qquick3darealight_p.h" -#endif -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) +#if defined(QUICK3D_ASSET_UTILS_MODULE) #include #endif #endif @@ -172,16 +167,10 @@ static QList toPropertyNameList(const QVariant &variantList) void Qt5InformationNodeInstanceServer::createAuxiliaryQuickView(const QUrl &url, RenderViewData &viewData) { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - viewData.window = new QQuickView(quickView()->engine(), quickView()); - viewData.window->setFormat(quickView()->format()); - QQuickDesignerSupport::createOpenGLContext(static_cast(viewData.window.data())); -#else viewData.renderControl = new QQuickRenderControl; viewData.window = new QQuickWindow(viewData.renderControl); setPipelineCacheConfig(viewData.window); viewData.renderControl->initialize(); -#endif QQmlComponent component(engine()); component.loadUrl(url); viewData.rootItem = qobject_cast(component.create()); @@ -191,13 +180,9 @@ void Qt5InformationNodeInstanceServer::createAuxiliaryQuickView(const QUrl &url, return; } -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QQuickDesignerSupport::setRootItem(static_cast(viewData.window.data()), viewData.rootItem); -#else viewData.window->contentItem()->setSize(viewData.rootItem->size()); viewData.window->setGeometry(0, 0, viewData.rootItem->width(), viewData.rootItem->height()); viewData.rootItem->setParentItem(viewData.window->contentItem()); -#endif } void Qt5InformationNodeInstanceServer::updateLockedAndHiddenStates(const QSet &instances) @@ -237,16 +222,10 @@ void Qt5InformationNodeInstanceServer::handleInputEvents() } } QWheelEvent *we -#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)) = new QWheelEvent(command.pos(), command.pos(), {0, 0}, {0, angleDelta + command.angleDelta()}, command.buttons(), command.modifiers(), Qt::NoScrollPhase, false); -#else - = new QWheelEvent(command.pos(), command.pos(), {0, 0}, {0, command.angleDelta()}, - 0, Qt::Horizontal, command.buttons(), command.modifiers(), - Qt::NoScrollPhase, Qt::MouseEventNotSynthesized); -#endif angleDelta = 0; QGuiApplication::sendEvent(m_editView3DData.window, we); } else if (command.type() == QEvent::KeyPress || command.type() == QEvent::KeyRelease) { @@ -289,17 +268,7 @@ void Qt5InformationNodeInstanceServer::resolveImportSupport() #ifdef IMPORT_QUICK3D_ASSETS QSSGAssetImportManager importManager; const QHash supportedExtensions = importManager.getSupportedExtensions(); -#if (QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)) -#define AS_VARIANT_MAP(IT) IT.value().toVariantMap() - using PluginOptionMaps = QSSGAssetImportManager::PluginOptionMaps; -#else -#define AS_VARIANT_MAP(IT) IT.value() - using PluginOptionMaps = QHash; -#endif // QT_VERSION >= 6.4.0 - - const PluginOptionMaps supportedOptions = importManager.getAllOptions(); - - QVariantMap supportMap; + const QSSGAssetImportManager::PluginOptionMaps supportedOptions = importManager.getAllOptions(); QVariantMap extMap; auto itExt = supportedExtensions.constBegin(); @@ -311,10 +280,11 @@ void Qt5InformationNodeInstanceServer::resolveImportSupport() QVariantMap optMap; auto itOpt = supportedOptions.constBegin(); while (itOpt != supportedOptions.constEnd()) { - optMap.insert(itOpt.key(), AS_VARIANT_MAP(itOpt)); + optMap.insert(itOpt.key(), itOpt.value().toVariantMap()); ++itOpt; } + QVariantMap supportMap; supportMap.insert("options", optMap); supportMap.insert("extensions", extMap); nodeInstanceClient()->handlePuppetToCreatorCommand( @@ -368,7 +338,8 @@ void Qt5InformationNodeInstanceServer::updateRotationBlocks( #endif } -void Qt5InformationNodeInstanceServer::updateSnapSettings(const QVector &valueChanges) +void Qt5InformationNodeInstanceServer::updateSnapSettings( + [[maybe_unused]] const QVector &valueChanges) { #ifdef QUICK3D_MODULE auto helper = qobject_cast(m_3dHelper); @@ -393,7 +364,8 @@ void Qt5InformationNodeInstanceServer::updateSnapSettings(const QVector &valueChanges) +void Qt5InformationNodeInstanceServer::updateColorSettings( + [[maybe_unused]] const QVector &valueChanges) { #ifdef QUICK3D_MODULE if (m_editView3DData.rootItem) { @@ -432,7 +404,7 @@ void Qt5InformationNodeInstanceServer::removeRotationBlocks( #endif } -void Qt5InformationNodeInstanceServer::getNodeAtPos(const QPointF &pos) +void Qt5InformationNodeInstanceServer::getNodeAtPos([[maybe_unused]] const QPointF &pos) { #ifdef QUICK3D_MODULE // pick a Quick3DModel at view position @@ -481,8 +453,6 @@ void Qt5InformationNodeInstanceServer::getNodeAtPos(const QPointF &pos) data.append(pos3d); nodeInstanceClient()->handlePuppetToCreatorCommand({PuppetToCreatorCommand::NodeAtPos, QVariant::fromValue(data)}); -#else - Q_UNUSED(pos) #endif } @@ -498,9 +468,6 @@ void Qt5InformationNodeInstanceServer::createEditView3D() qmlRegisterType("GridGeometry", 1, 0, "GridGeometry"); qmlRegisterType("SelectionBoxGeometry", 1, 0, "SelectionBoxGeometry"); qmlRegisterType("LineGeometry", 1, 0, "LineGeometry"); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - qmlRegisterType("LightUtils", 1, 0, "AreaLight"); -#endif auto helper = new QmlDesigner::Internal::GeneralHelper(); QObject::connect(helper, &QmlDesigner::Internal::GeneralHelper::toolStateChanged, @@ -511,11 +478,7 @@ void Qt5InformationNodeInstanceServer::createEditView3D() m_3dHelper = helper; Internal::MouseArea3D::setGeneralHelper(helper); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt6/EditView3D.qml"), m_editView3DData); -#else - createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt5/EditView3D.qml"), m_editView3DData); -#endif if (m_editView3DData.rootItem) helper->setParent(m_editView3DData.rootItem); #endif @@ -527,9 +490,7 @@ void Qt5InformationNodeInstanceServer::resetParticleSystem() if (!m_targetParticleSystem) return; m_targetParticleSystem->reset(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 2) m_targetParticleSystem->setEditorTime(0); -#endif if (m_particleAnimationDriver) m_particleAnimationDriver->reset(); } @@ -555,13 +516,12 @@ void Qt5InformationNodeInstanceServer::handleParticleSystemSelected(QQuick3DPart // Ensure clean slate for newly selected system resetParticleSystem(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 2) QObject::disconnect(m_particleAnimationConnection); m_particleAnimationConnection = connect(m_particleAnimationDriver, &AnimationDriver::advanced, [this] () { if (m_targetParticleSystem) m_targetParticleSystem->setEditorTime(m_particleAnimationDriver->elapsed()); }); -#endif + if (m_particleAnimationPlaying && m_targetParticleSystem->visible()) m_particleAnimationDriver->restart(); QObject::connect(m_targetParticleSystem, &QQuick3DNode::visibleChanged, [this] () { @@ -923,12 +883,6 @@ void Qt5InformationNodeInstanceServer::updateActiveSceneToEditView3D([[maybe_unu return; QVariant activeSceneVar = objectToVariant(m_active3DScene); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - // Active scene change handling on qml side is async, so a deleted importScene would crash - // editView when it updates next. Disable/enable edit view update synchronously to avoid this. - QMetaObject::invokeMethod(m_editView3DData.rootItem, "enableEditViewUpdate", - Q_ARG(QVariant, activeSceneVar)); -#endif ServerNodeInstance sceneInstance = active3DSceneInstance(); const QString sceneId = sceneInstance.id(); @@ -1069,22 +1023,15 @@ void Qt5InformationNodeInstanceServer::updateNodesRecursive(QQuickItem *item) for (QQuickItem *childItem : childItems) updateNodesRecursive(childItem); - if (Internal::QuickItemNodeInstance::unifiedRenderPathOrQt6()) { - if (item->flags() & QQuickItem::ItemHasContents) - item->update(); - } else { - QQuickDesignerSupport::updateDirtyNode(item); - } + if (item->flags() & QQuickItem::ItemHasContents) + item->update(); } QQuickItem *Qt5InformationNodeInstanceServer::getContentItemForRendering(QQuickItem *rootItem) { QQuickItem *contentItem = QQmlProperty::read(rootItem, "contentItem").value(); - if (contentItem) { - if (!Internal::QuickItemNodeInstance::unifiedRenderPathOrQt6()) - designerSupport()->refFromEffectItem(contentItem, false); + if (contentItem) QmlDesigner::Internal::QmlPrivateGate::disableNativeTextRendering(contentItem); - } return contentItem; } @@ -1106,22 +1053,6 @@ void Qt5InformationNodeInstanceServer::doRender3DEditView() updateNodesRecursive(m_editView3DData.contentItem); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (Internal::QuickItemNodeInstance::unifiedRenderPath()) { - renderImage = m_editView3DData.window->grabWindow(); - } else { - // Fake render loop signaling to update things like QML items as 3D textures - m_editView3DData.window->beforeSynchronizing(); - m_editView3DData.window->beforeRendering(); - - QSizeF size = qobject_cast(m_editView3DData.contentItem)->size(); - QRectF renderRect(QPointF(0., 0.), size); - renderImage = designerSupport()->renderImageForItem(m_editView3DData.contentItem, - renderRect, size.toSize()); - - m_editView3DData.window->afterRendering(); - } -#else #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 1) static bool justOnce = true; if (justOnce) { @@ -1130,7 +1061,6 @@ void Qt5InformationNodeInstanceServer::doRender3DEditView() } #endif renderImage = grabRenderControl(m_editView3DData); -#endif // There's no instance related to image, so instance id is -1. // Key number is selected so that it is unlikely to conflict other ImageContainer use. @@ -1213,8 +1143,6 @@ void Qt5InformationNodeInstanceServer::renderModelNodeImageView() void Qt5InformationNodeInstanceServer::doRenderModelNodeImageView() { - // This crashes on Qt 6.0.x due to QtQuick3D issue, so the preview generation is disabled -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) || QT_VERSION >= QT_VERSION_CHECK(6, 1, 0) if (!m_priorityView3DsToRender.isEmpty()) { // Postpone any preview renders until we have rendered the priority views to ensure // materials in material library are properly initialized @@ -1237,7 +1165,6 @@ void Qt5InformationNodeInstanceServer::doRenderModelNodeImageView() m_modelNodePreviewImageCommands.remove(cmd); if (!m_modelNodePreviewImageCommands.isEmpty()) m_renderModelNodeImageViewTimer.start(17); -#endif } void Qt5InformationNodeInstanceServer::doRenderModelNode3DImageView( @@ -1273,18 +1200,15 @@ void Qt5InformationNodeInstanceServer::doRenderModelNode3DImageView( instanceObj = instance.internalObject(); } QSize renderSize = cmd.size(); - if (Internal::QuickItemNodeInstance::unifiedRenderPathOrQt6()) { - // Requested size is already adjusted for target pixel ratio, so we have to adjust - // back if ratio is not default for our window. - double ratio = m_modelNode3DImageViewData.window->devicePixelRatio(); - renderSize.setWidth(qRound(qreal(renderSize.width()) / ratio)); - renderSize.setHeight(qRound(qreal(renderSize.height()) / ratio)); - } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + // Requested size is already adjusted for target pixel ratio, so we have to adjust + // back if ratio is not default for our window. + double ratio = m_modelNode3DImageViewData.window->devicePixelRatio(); + renderSize.setWidth(qRound(qreal(renderSize.width()) / ratio)); + renderSize.setHeight(qRound(qreal(renderSize.height()) / ratio)); + m_modelNode3DImageViewData.bufferDirty = m_modelNode3DImageViewData.bufferDirty || m_modelNode3DImageViewData.rootItem->width() != renderSize.width() || m_modelNode3DImageViewData.rootItem->height() != renderSize.height(); -#endif m_modelNode3DImageViewData.window->resize(renderSize); m_modelNode3DImageViewData.rootItem->setSize(renderSize); @@ -1309,23 +1233,7 @@ void Qt5InformationNodeInstanceServer::doRenderModelNode3DImageView( , Qt::DirectConnection); updateNodesRecursive(m_modelNode3DImageViewData.contentItem); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (Internal::QuickItemNodeInstance::unifiedRenderPath()) { - renderImage = m_modelNode3DImageViewData.window->grabWindow(); - } else { - // Fake render loop signaling to update things like QML items as 3D textures - m_modelNode3DImageViewData.window->beforeSynchronizing(); - m_modelNode3DImageViewData.window->beforeRendering(); - - QSizeF size = qobject_cast(m_modelNode3DImageViewData.contentItem)->size(); - QRectF renderRect(QPointF(0., 0.), size); - renderImage = designerSupport()->renderImageForItem(m_modelNode3DImageViewData.contentItem, - renderRect, size.toSize()); - m_modelNode3DImageViewData.window->afterRendering(); - } -#else renderImage = grabRenderControl(m_modelNode3DImageViewData); -#endif } QMetaObject::invokeMethod(m_modelNode3DImageViewData.rootItem, "destroyView"); @@ -1409,11 +1317,9 @@ void Qt5InformationNodeInstanceServer::doRenderModelNode2DImageView(const Reques renderRect = QRectF(QPointF(0., 0.), QSizeF(renderSize)); } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) m_modelNode2DImageViewData.bufferDirty = m_modelNode2DImageViewData.bufferDirty || m_modelNode2DImageViewData.rootItem->width() != renderSize.width() || m_modelNode2DImageViewData.rootItem->height() != renderSize.height(); -#endif m_modelNode2DImageViewData.window->resize(renderSize); m_modelNode2DImageViewData.rootItem->setSize(renderSize); @@ -1421,16 +1327,7 @@ void Qt5InformationNodeInstanceServer::doRenderModelNode2DImageView(const Reques updateNodesRecursive(m_modelNode2DImageViewData.contentItem); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (Internal::QuickItemNodeInstance::unifiedRenderPath()) { - renderImage = m_modelNode2DImageViewData.window->grabWindow(); - } else { - renderImage = designerSupport()->renderImageForItem(m_modelNode2DImageViewData.contentItem, - renderRect, renderSize); - } -#else - renderImage = grabRenderControl(m_modelNode2DImageViewData); -#endif + renderImage = grabRenderControl(m_modelNode2DImageViewData); if (!imageHasContent(renderImage)) renderImage = nonVisualComponentPreviewImage(); @@ -1503,15 +1400,6 @@ Qt5InformationNodeInstanceServer::~Qt5InformationNodeInstanceServer() if (m_editView3DData.rootItem) QMetaObject::invokeMethod(m_editView3DData.rootItem, "aboutToShutDown", Qt::DirectConnection); - - if (!Internal::QuickItemNodeInstance::unifiedRenderPathOrQt6()) { - if (m_editView3DData.contentItem) - designerSupport()->derefFromEffectItem(m_editView3DData.contentItem); - if (m_modelNode3DImageViewData.contentItem) - designerSupport()->derefFromEffectItem(m_modelNode3DImageViewData.contentItem); - if (m_modelNode2DImageViewData.contentItem) - designerSupport()->derefFromEffectItem(m_modelNode2DImageViewData.contentItem); - } } void Qt5InformationNodeInstanceServer::sendTokenBack() @@ -1605,22 +1493,12 @@ void Qt5InformationNodeInstanceServer::initializeAuxiliaryViews() #ifdef QUICK3D_MODULE if (ViewConfig::isQuick3DMode()) createEditView3D(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt6/ModelNode3DImageView.qml"), m_modelNode3DImageViewData); -#else - createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt5/ModelNode3DImageView.qml"), - m_modelNode3DImageViewData); -#endif #endif -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt6/ModelNode2DImageView.qml"), m_modelNode2DImageViewData); -#else - createAuxiliaryQuickView(QUrl("qrc:/qtquickplugin/mockfiles/qt5/ModelNode2DImageView.qml"), - m_modelNode2DImageViewData); -#endif m_modelNode2DImageViewData.window->setDefaultAlphaBuffer(true); m_modelNode2DImageViewData.window->setColor(Qt::transparent); } @@ -1639,24 +1517,6 @@ void Qt5InformationNodeInstanceServer::handleSelectionChangeTimeout() void Qt5InformationNodeInstanceServer::handleDynamicAddObjectTimeout() { for (auto obj : std::as_const(m_dynamicObjectConstructors)) { -#if QT_VERSION < QT_VERSION_CHECK(6, 2, 1) -#ifdef QUICK3D_MODULE - auto handleHiding = [this](QQuick3DNode *node) -> bool { - if (node && hasInstanceForObject(node)) { - ServerNodeInstance instance = instanceForObject(node); - handleInstanceHidden(instance, instance.internalInstance()->isHiddenInEditor(), - false); - return true; - } - return false; - }; - auto nodeObj = qobject_cast(obj); - if (!handleHiding(nodeObj)) { - if (auto pickTarget = obj->property("_pickTarget").value()) - handleHiding(pickTarget); - } -#endif -#else auto handlePicking = [this](QObject *object) -> bool { if (object && hasInstanceForObject(object)) { ServerNodeInstance instance = instanceForObject(object); @@ -1669,7 +1529,6 @@ void Qt5InformationNodeInstanceServer::handleDynamicAddObjectTimeout() if (auto pickTarget = obj->property("_pickTarget").value()) handlePicking(pickTarget); } -#endif } m_dynamicObjectConstructors.clear(); } @@ -2305,7 +2164,8 @@ void Qt5InformationNodeInstanceServer::changeSelection(const ChangeSelectionComm render3DEditView(2); } -void Qt5InformationNodeInstanceServer::setSceneEnvironmentColor(const PropertyValueContainer &container) +void Qt5InformationNodeInstanceServer::setSceneEnvironmentColor( + [[maybe_unused]] const PropertyValueContainer &container) { #ifdef QUICK3D_MODULE auto helper = qobject_cast(m_3dHelper); @@ -2339,8 +2199,6 @@ void Qt5InformationNodeInstanceServer::setSceneEnvironmentColor(const PropertyVa Q_ARG(QVariant, QVariant::fromValue(colors))); } } -#else - Q_UNUSED(container) #endif } @@ -2729,65 +2587,12 @@ void Qt5InformationNodeInstanceServer::handleInstanceHidden( auto helper = qobject_cast(m_3dHelper); if (helper) emit helper->hiddenStateChanged(node); -#if QT_VERSION < QT_VERSION_CHECK(6, 2, 1) - if (auto model = qobject_cast(node)) - model->setPickable(!edit3dHidden); // allow 3D objects to receive mouse clicks -#endif const auto childItems = node->childItems(); for (auto childItem : childItems) { const ServerNodeInstance quick3dInstance = getQuick3DInstanceAndHidden(childItem); if (quick3dInstance.isValid()) { // Don't override explicit hide in children handleInstanceHidden(quick3dInstance, edit3dHidden || isInstanceHidden, false); - } else { -#if QT_VERSION < QT_VERSION_CHECK(6, 2, 1) - // Children of components do not have instances, but will still need to be pickable - std::function checkChildren; - checkChildren = [&](QQuick3DNode *checkNode) { - const auto childItems = checkNode->childItems(); - for (auto child : childItems) { - if (auto childNode = qobject_cast(child)) - checkChildren(childNode); - } - if (auto checkModel = qobject_cast(checkNode)) { - QVariant value; - if (!edit3dHidden) - value = QVariant::fromValue(node); - // Specify the actual pick target with dynamic property - checkModel->setProperty("_pickTarget", value); - checkModel->setPickable(!edit3dHidden); - } else { - auto checkRepeater = qobject_cast(checkNode); - auto checkLoader = qobject_cast(checkNode); -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) - auto checkRunLoader = qobject_cast(checkNode); - if (checkRepeater || checkLoader || checkRunLoader) { -#else - if (checkRepeater || checkLoader) { -#endif - // Repeaters/loaders may not yet have created their children, so we set - // _pickTarget on them and connect the notifier. - if (checkNode->property("_pickTarget").isNull()) { - if (checkRepeater) { - QObject::connect(checkRepeater, &QQuick3DRepeater::objectAdded, - this, &Qt5InformationNodeInstanceServer::handleDynamicAddObject); -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) - } else if (checkRunLoader) { - QObject::connect(checkRunLoader, &QQuick3DRuntimeLoader::statusChanged, - this, &Qt5InformationNodeInstanceServer::handleDynamicAddObject); -#endif - } else { - QObject::connect(checkLoader, &QQuick3DLoader::loaded, - this, &Qt5InformationNodeInstanceServer::handleDynamicAddObject); - } - } - checkNode->setProperty("_pickTarget", QVariant::fromValue(node)); - } - } - }; - if (auto childNode = qobject_cast(childItem)) - checkChildren(childNode); -#endif } } } @@ -2797,10 +2602,7 @@ void Qt5InformationNodeInstanceServer::handleInstanceHidden( void Qt5InformationNodeInstanceServer::handlePickTarget( [[maybe_unused]] const ServerNodeInstance &instance) { -#if defined(QUICK3D_MODULE) && (QT_VERSION >= QT_VERSION_CHECK(6, 2, 1)) - // Picking is dependent on hidden status prior to global picking support (<6.2.1), so it is - // handled in handleInstanceHidden() method in those builds - +#ifdef QUICK3D_MODULE if (!ViewConfig::isQuick3DMode()) return; @@ -2902,12 +2704,10 @@ void Qt5InformationNodeInstanceServer::update3DViewState( if (command.type() == Update3dViewStateCommand::SizeChange) { if (m_editView3DSetupDone) { m_editView3DData.rootItem->setSize(command.size()); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) m_editView3DData.window->contentItem()->setSize(m_editView3DData.rootItem->size()); m_editView3DData.window->setGeometry(0, 0, m_editView3DData.rootItem->width(), m_editView3DData.rootItem->height()); m_editView3DData.bufferDirty = true; -#endif auto helper = qobject_cast(m_3dHelper); if (helper) helper->storeToolState(helper->globalStateId(), helper->rootSizeKey(), QVariant(command.size()), 0); diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp index b0726b152a0..f4d01d28db4 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceclientproxy.cpp @@ -15,10 +15,6 @@ #include "qt5testnodeinstanceserver.h" #include "quickitemnodeinstance.h" -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - #include -#endif - #if defined(Q_OS_UNIX) #include #elif defined(Q_OS_WIN) @@ -44,10 +40,6 @@ Qt5NodeInstanceClientProxy::Qt5NodeInstanceClientProxy(QObject *parent) : if (unifiedRenderPath) Internal::QuickItemNodeInstance::enableUnifiedRenderPath(true); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - else - QQuickDesignerSupport::activateDesignerWindowManager(); -#endif if (QCoreApplication::arguments().at(1) == QLatin1String("--readcapturedstream")) { qputenv("DESIGNER_DONT_USE_SHARED_MEMORY", "1"); diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp index 6dab9421243..785357fe624 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp @@ -28,7 +28,6 @@ #include #include -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include #include #include @@ -37,9 +36,6 @@ #include #include #include -#else -#include -#endif #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 1) #include @@ -74,11 +70,7 @@ Qt5NodeInstanceServer::~Qt5NodeInstanceServer() QQuickView *Qt5NodeInstanceServer::quickView() const { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - return static_cast(m_viewData.window.data()); -#else return nullptr; -#endif } QQuickWindow *Qt5NodeInstanceServer::quickWindow() const @@ -90,25 +82,11 @@ void Qt5NodeInstanceServer::initializeView() { Q_ASSERT(!quickWindow()); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - auto view = new QQuickView; - m_viewData.window = view; - /* enables grab window without show */ - QSurfaceFormat surfaceFormat = view->requestedFormat(); - surfaceFormat.setVersion(4, 1); - surfaceFormat.setProfile(QSurfaceFormat::CoreProfile); - QSurfaceFormat::setDefaultFormat(surfaceFormat); - view->setFormat(surfaceFormat); - - QQuickDesignerSupport::createOpenGLContext(view); - m_qmlEngine = view->engine(); -#else m_viewData.renderControl = new QQuickRenderControl; m_viewData.window = new QQuickWindow(m_viewData.renderControl); setPipelineCacheConfig(m_viewData.window); m_viewData.renderControl->initialize(); m_qmlEngine = new QQmlEngine; -#endif if (qEnvironmentVariableIsSet("QML_FILE_SELECTORS")) { QQmlFileSelector *fileSelector = new QQmlFileSelector(engine(), engine()); @@ -132,9 +110,6 @@ QQuickItem *Qt5NodeInstanceServer::rootItem() const void Qt5NodeInstanceServer::setRootItem(QQuickItem *item) { m_viewData.rootItem = item; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QQuickDesignerSupport::setRootItem(quickView(), item); -#else quickWindow()->setGeometry(0, 0, item->width(), item->height()); // Insert an extra item above the root to adjust root item position to 0,0 to make entire // item to be always rendered. @@ -142,7 +117,6 @@ void Qt5NodeInstanceServer::setRootItem(QQuickItem *item) m_viewData.contentItem = new QQuickItem(quickWindow()->contentItem()); m_viewData.contentItem->setPosition(-item->position()); item->setParentItem(m_viewData.contentItem); -#endif } QQmlEngine *Qt5NodeInstanceServer::engine() const @@ -152,11 +126,9 @@ QQmlEngine *Qt5NodeInstanceServer::engine() const void Qt5NodeInstanceServer::resizeCanvasToRootItem() { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) m_viewData.bufferDirty = true; if (m_viewData.contentItem) m_viewData.contentItem->setPosition(-m_viewData.rootItem->position()); -#endif quickWindow()->resize(rootNodeInstance().boundingRect().size().toSize()); QQuickDesignerSupport::addDirty(rootNodeInstance().rootQuickItem(), QQuickDesignerSupport::Size); } @@ -309,7 +281,6 @@ void Qt5NodeInstanceServer::handleRciSet() bool Qt5NodeInstanceServer::initRhi([[maybe_unused]] RenderViewData &viewData) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!viewData.renderControl) { qWarning() << __FUNCTION__ << "Render control not created"; return false; @@ -389,7 +360,7 @@ bool Qt5NodeInstanceServer::initRhi([[maybe_unused]] RenderViewData &viewData) viewData.window->setRenderTarget(QQuickRenderTarget::fromRhiRenderTarget(viewData.texTarget)); viewData.bufferDirty = false; -#endif + return true; } @@ -398,7 +369,6 @@ QImage Qt5NodeInstanceServer::grabRenderControl([[maybe_unused]] RenderViewData NANOTRACE_SCOPE("Update", "GrabRenderControl"); QImage renderImage; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (viewData.bufferDirty && !initRhi(viewData)) return renderImage; @@ -426,14 +396,13 @@ QImage Qt5NodeInstanceServer::grabRenderControl([[maybe_unused]] RenderViewData rd->cb->resourceUpdate(readbackBatch); viewData.renderControl->endFrame(); -#endif + return renderImage; } // This method simply renders the window without grabbing it bool Qt5NodeInstanceServer::renderWindow() { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!m_viewData.rootItem || (m_viewData.bufferDirty && !initRhi(m_viewData))) return false; @@ -443,8 +412,6 @@ bool Qt5NodeInstanceServer::renderWindow() m_viewData.renderControl->render(); m_viewData.renderControl->endFrame(); return true; -#endif - return false; } QImage Qt5NodeInstanceServer::grabWindow() @@ -471,7 +438,6 @@ QQuickItem *Qt5NodeInstanceServer::parentEffectItem(QQuickItem *item) return nullptr; } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) static bool isEffectItem(QQuickItem *item, QQuickShaderEffectSource *sourceItem) { QQuickItemPrivate *pItem = QQuickItemPrivate::get(sourceItem); @@ -492,12 +458,10 @@ static bool isLayerEnabled(QQuickItemPrivate *item) { return item && item->layer() && item->layer()->enabled(); } -#endif // QT_VERSION check QImage Qt5NodeInstanceServer::grabItem([[maybe_unused]] QQuickItem *item) { QImage renderImage; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!m_viewData.rootItem || (m_viewData.bufferDirty && !initRhi(m_viewData))) return {}; @@ -623,7 +587,7 @@ QImage Qt5NodeInstanceServer::grabItem([[maybe_unused]] QQuickItem *item) if (!isLayerEnabled(pItem)) pItem->derefFromEffectItem(false); -#endif + return renderImage; } diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.h b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.h index 29f8e253efc..9294a064e08 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.h +++ b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.h @@ -12,14 +12,12 @@ QT_BEGIN_NAMESPACE class QQuickItem; class QQmlEngine; class QQuickDesignerSupport; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) class QQuickRenderControl; class QRhi; class QRhiTexture; class QRhiRenderBuffer; class QRhiTextureRenderTarget; class QRhiRenderPassDescriptor; -#endif QT_END_NAMESPACE namespace QmlDesigner { @@ -66,7 +64,6 @@ protected: QPointer window = nullptr; QQuickItem *rootItem = nullptr; QQuickItem *contentItem = nullptr; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) bool bufferDirty = true; QQuickRenderControl *renderControl = nullptr; QRhi *rhi = nullptr; @@ -74,7 +71,6 @@ protected: QRhiRenderBuffer *buffer = nullptr; QRhiTextureRenderTarget *texTarget = nullptr; QRhiRenderPassDescriptor *rpDesc = nullptr; -#endif }; virtual bool initRhi(RenderViewData &viewData); diff --git a/src/tools/qml2puppet/qml2puppet/instances/quick3dnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/quick3dnodeinstance.cpp index 343dc363b56..9ab66649cfa 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/quick3dnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/quick3dnodeinstance.cpp @@ -11,7 +11,7 @@ #include #include #include -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) +#if defined(QUICK3D_ASSET_UTILS_MODULE) #include #endif #endif @@ -42,7 +42,7 @@ void Quick3DNodeInstance::initialize( QObject *obj = object(); auto repObj = qobject_cast(obj); auto loadObj = qobject_cast(obj); -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) +#if defined(QUICK3D_ASSET_UTILS_MODULE) auto runLoadObj = qobject_cast(obj); if (repObj || loadObj || runLoadObj) { #else @@ -52,7 +52,7 @@ void Quick3DNodeInstance::initialize( if (repObj) { QObject::connect(repObj, &QQuick3DRepeater::objectAdded, infoServer, &Qt5InformationNodeInstanceServer::handleDynamicAddObject); -#if defined(QUICK3D_ASSET_UTILS_MODULE) && QT_VERSION > QT_VERSION_CHECK(6, 2, 0) +#if defined(QUICK3D_ASSET_UTILS_MODULE) } else if (runLoadObj) { QObject::connect(runLoadObj, &QQuick3DRuntimeLoader::statusChanged, infoServer, &Qt5InformationNodeInstanceServer::handleDynamicAddObject); diff --git a/src/tools/qml2puppet/qml2puppet/instances/quick3drenderablenodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/quick3drenderablenodeinstance.cpp index 45540799cba..4f07f5fb866 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/quick3drenderablenodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/quick3drenderablenodeinstance.cpp @@ -31,7 +31,6 @@ void Quick3DRenderableNodeInstance::initialize(const ObjectNodeInstance::Pointer InstanceContainer::NodeFlags flags) { #ifdef QUICK3D_MODULE -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) // In case this is the scene root, we need to create a dummy View3D for the scene // in preview puppets if (instanceId() == 0 && (!nodeInstanceServer()->isInformationServer())) { @@ -49,14 +48,12 @@ void Quick3DRenderableNodeInstance::initialize(const ObjectNodeInstance::Pointer nodeInstanceServer()->setRootItem(m_dummyRootView); } -#endif // QT_VERSION #endif // QUICK3D_MODULE ObjectNodeInstance::initialize(objectNodeInstance, flags); } QImage Quick3DRenderableNodeInstance::renderImage() const { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!isRootNodeInstance() || !m_dummyRootView) return {}; @@ -83,14 +80,11 @@ QImage Quick3DRenderableNodeInstance::renderImage() const renderImage.setDevicePixelRatio(1); return renderImage; -#endif - return {}; } QImage Quick3DRenderableNodeInstance::renderPreviewImage( [[maybe_unused]] const QSize &previewImageSize) const { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (!isRootNodeInstance() || !m_dummyRootView) return {}; @@ -118,7 +112,6 @@ QImage Quick3DRenderableNodeInstance::renderPreviewImage( return transparentImage; } } -#endif return {}; } diff --git a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp index f4da2fcc7bd..9d432fe0471 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -44,15 +44,6 @@ QuickItemNodeInstance::~QuickItemNodeInstance() { } -void QuickItemNodeInstance::handleObjectDeletion(QObject *object) -{ - auto item = qobject_cast(object); - if (item && checkIfRefFromEffect(instanceId())) - designerSupport()->derefFromEffectItem(item); - - ObjectNodeInstance::handleObjectDeletion(object); -} - static bool isContentItem(QQuickItem *item, NodeInstanceServer *nodeInstanceServer) { @@ -153,18 +144,6 @@ void QuickItemNodeInstance::enableUnifiedRenderPath(bool unifiedRenderPath) s_unifiedRenderPath = unifiedRenderPath; } -bool QuickItemNodeInstance::checkIfRefFromEffect([[maybe_unused]] qint32 id) -{ -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (s_unifiedRenderPath) - return false; - - return (s_createEffectItem || id == 0); -#else - return false; -#endif -} - void QuickItemNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance, InstanceContainer::NodeFlags flags) { @@ -174,12 +153,6 @@ void QuickItemNodeInstance::initialize(const ObjectNodeInstance::Pointer &object else quickItem()->setParentItem(nodeInstanceServer()->rootItem()); - if (quickItem()->window() && checkIfRefFromEffect(instanceId())) { - designerSupport()->refFromEffectItem(quickItem(), - !flags.testFlag( - InstanceContainer::ParentTakesOverRendering)); - } - ObjectNodeInstance::initialize(objectNodeInstance, flags); } @@ -256,11 +229,6 @@ QStringList QuickItemNodeInstance::allStates() const void QuickItemNodeInstance::updateDirtyNode([[maybe_unused]] QQuickItem *item) { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (s_unifiedRenderPath) - return; - QQuickDesignerSupport::updateDirtyNode(item); -#endif } bool QuickItemNodeInstance::unifiedRenderPath() @@ -268,15 +236,6 @@ bool QuickItemNodeInstance::unifiedRenderPath() return s_unifiedRenderPath; } -bool QuickItemNodeInstance::unifiedRenderPathOrQt6() -{ -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - return true; -#else - return s_unifiedRenderPath; -#endif -} - void QuickItemNodeInstance::setHiddenInEditor(bool hide) { ObjectNodeInstance::setHiddenInEditor(hide); @@ -462,24 +421,6 @@ QImage QuickItemNodeInstance::renderImage() const QRectF renderBoundingRect = boundingRect(); QImage renderImage; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QSize size = renderBoundingRect.size().toSize(); - static double devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble(); - size *= devicePixelRatio; - - if (s_unifiedRenderPath) { - renderImage = nodeInstanceServer()->quickWindow()->grabWindow(); - } else { - // Fake render loop signaling to update things like QML items as 3D textures - nodeInstanceServer()->quickWindow()->beforeSynchronizing(); - nodeInstanceServer()->quickWindow()->beforeRendering(); - - renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, size); - - nodeInstanceServer()->quickWindow()->afterRendering(); - } - renderImage.setDevicePixelRatio(devicePixelRatio); -#else if (s_unifiedRenderPath) { renderImage = nodeInstanceServer()->grabWindow(); renderImage = renderImage.copy(renderBoundingRect.toRect()); @@ -489,8 +430,6 @@ QImage QuickItemNodeInstance::renderImage() const renderImage = nodeInstanceServer()->grabItem(quickItem()); } -#endif - return renderImage; } @@ -503,27 +442,9 @@ QImage QuickItemNodeInstance::renderPreviewImage(const QSize &previewImageSize) const QSize size = previewImageSize * devicePixelRatio; if (quickItem()->isVisible()) { QImage image; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (s_unifiedRenderPath) { - image = nodeInstanceServer()->quickWindow()->grabWindow(); - } else { - // Fake render loop signaling to update things like QML items as 3D textures - nodeInstanceServer()->quickWindow()->beforeSynchronizing(); - nodeInstanceServer()->quickWindow()->beforeRendering(); - - image = designerSupport()->renderImageForItem(quickItem(), - previewItemBoundingRect, - size); - - nodeInstanceServer()->quickWindow()->afterRendering(); - } -#else image = nodeInstanceServer()->grabWindow(); image = image.copy(previewItemBoundingRect.toRect()); -#endif - image = image.scaledToWidth(size.width()); - return image; } else { QImage transparentImage(size, QImage::Format_ARGB32_Premultiplied); @@ -605,9 +526,6 @@ void QuickItemNodeInstance::updateDirtyNodesRecursive(QQuickItem *parentItem) co } QmlPrivateGate::disableNativeTextRendering(parentItem); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QQuickDesignerSupport::updateDirtyNode(parentItem); -#endif } void QuickItemNodeInstance::updateAllDirtyNodesRecursive(QQuickItem *parentItem) const @@ -621,12 +539,10 @@ void QuickItemNodeInstance::updateAllDirtyNodesRecursive(QQuickItem *parentItem) void QuickItemNodeInstance::setAllNodesDirtyRecursive([[maybe_unused]] QQuickItem *parentItem) const { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) const QList children = parentItem->childItems(); for (QQuickItem *childItem : children) setAllNodesDirtyRecursive(childItem); QQuickDesignerSupport::addDirty(parentItem, QQuickDesignerSupport::Content); -#endif } static inline bool isRectangleSane(const QRectF &rect) @@ -636,9 +552,6 @@ static inline bool isRectangleSane(const QRectF &rect) static bool isEffectItem([[maybe_unused]] QQuickItem *item) { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - return false; -#else if (qobject_cast(item)) return true; @@ -658,7 +571,6 @@ static bool isEffectItem([[maybe_unused]] QQuickItem *item) } return false; -#endif } QRectF QuickItemNodeInstance::boundingRectWithStepChilds(QQuickItem *parentItem) const diff --git a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.h b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.h index 5955eaaa1b6..69ee6c1671a 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.h +++ b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.h @@ -23,7 +23,6 @@ public: using WeakPointer = QWeakPointer; ~QuickItemNodeInstance() override; - void handleObjectDeletion(QObject *object) override; static Pointer create(QObject *objectToBeWrapped); static void createEffectItem(bool createEffectItem); @@ -86,7 +85,6 @@ public: static void updateDirtyNode(QQuickItem *item); static bool unifiedRenderPath(); - static bool unifiedRenderPathOrQt6(); void setHiddenInEditor(bool b) override; @@ -111,7 +109,6 @@ protected: double x() const; double y() const; - bool checkIfRefFromEffect(qint32 id); void markRepeaterParentDirty() const; private: //variables diff --git a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp index eca115d4328..758e18df359 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp @@ -309,12 +309,7 @@ ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceSe instance.internalInstance()->initialize(instance.m_nodeInstance, instanceContainer.metaFlags()); -#if QT_VERSION < QT_VERSION_CHECK(6, 2, 1) - // Handle hidden state to initialize pickable state - nodeInstanceServer->handleInstanceHidden(instance, false, false); -#else nodeInstanceServer->handlePickTarget(instance); -#endif return instance; } diff --git a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.h b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.h index abb16d74bdf..079c2fad2ba 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.h +++ b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.h @@ -16,10 +16,8 @@ class QStyleOptionGraphicsItem; class QQmlContext; class QGraphicsItem; class QGraphicsTransform; -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) class QQuickItem; class QQuickItemGrabResult; -#endif QT_END_NAMESPACE namespace QmlDesigner { @@ -46,11 +44,7 @@ namespace Internal { class ServerNodeInstance { public: -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -using QHashValueType = uint; -#else -using QHashValueType = size_t; -#endif + using QHashValueType = size_t; friend class NodeInstanceServer; friend class Qt4NodeInstanceServer; diff --git a/src/tools/qml2puppet/qml2puppet/qmlpuppet.cpp b/src/tools/qml2puppet/qml2puppet/qmlpuppet.cpp index 6d3fa2ce36a..40aa4585971 100644 --- a/src/tools/qml2puppet/qml2puppet/qmlpuppet.cpp +++ b/src/tools/qml2puppet/qml2puppet/qmlpuppet.cpp @@ -9,7 +9,6 @@ #endif #include -#include #include #include @@ -73,7 +72,6 @@ void QmlPuppet::populateParser() // we're not using the commandline parser but just populating the help text m_argParser.addOptions( {{"readcapturedstream", "Read captured stream.", "inputStream, [outputStream]"}, - {"rendericon", "Renders icon.", "size, fileName, sourceQml"}, {"import3dAsset", "Import 3d asset.", "sourceAsset, outDir, importOptJson"}}); } @@ -99,7 +97,6 @@ void QmlPuppet::initQmlRunner() { if (m_coreApp->arguments().count() < 2 || (m_argParser.isSet("readcapturedstream") && m_coreApp->arguments().count() < 3) - || (m_argParser.isSet("rendericon") && m_coreApp->arguments().count() < 5) || (m_argParser.isSet("import3dAsset") && m_coreApp->arguments().count() < 6) || (!m_argParser.isSet("readcapturedstream") && m_coreApp->arguments().count() < 4)) { qDebug() << "Wrong argument count: " << m_coreApp->arguments().count(); @@ -122,14 +119,7 @@ void QmlPuppet::initQmlRunner() } } - if (m_argParser.isSet("rendericon")) { - int size = m_coreApp->arguments().at(2).toInt(); - QString iconFileName = m_coreApp->arguments().at(3); - QString iconSource = m_coreApp->arguments().at(4); - - m_iconRenderer.reset(new IconRenderer(size, iconFileName, iconSource)); - m_iconRenderer->setupRender(); - } else if (m_argParser.isSet("import3dAsset")) { + if (m_argParser.isSet("import3dAsset")) { QString sourceAsset = m_coreApp->arguments().at(2); QString outDir = m_coreApp->arguments().at(3); QString options = m_coreApp->arguments().at(4); diff --git a/src/tools/qml2puppet/qml2puppet/qmlpuppet.h b/src/tools/qml2puppet/qml2puppet/qmlpuppet.h index 506b1c2a080..c89c4fb98d1 100644 --- a/src/tools/qml2puppet/qml2puppet/qmlpuppet.h +++ b/src/tools/qml2puppet/qml2puppet/qmlpuppet.h @@ -5,7 +5,6 @@ #include "../qmlbase.h" -class IconRenderer; class QmlPuppet : public QmlBase { using QmlBase::QmlBase; @@ -15,7 +14,4 @@ private: void populateParser() override; int startTestMode() override; void initQmlRunner() override; - -private: - QSharedPointer m_iconRenderer; }; diff --git a/src/tools/qml2puppet/qmlprivategate/qmlprivategate.cpp b/src/tools/qml2puppet/qmlprivategate/qmlprivategate.cpp index a8c715c9958..8abfed59160 100644 --- a/src/tools/qml2puppet/qmlprivategate/qmlprivategate.cpp +++ b/src/tools/qml2puppet/qmlprivategate/qmlprivategate.cpp @@ -41,10 +41,6 @@ #include #endif -#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) - #include -#endif - namespace QmlDesigner { namespace Internal { @@ -56,93 +52,9 @@ bool isPropertyBlackListed(const QmlDesigner::PropertyName &propertyName) return QQuickDesignerSupportProperties::isPropertyBlackListed(propertyName); } -#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) - -static void addToPropertyNameListIfNotBlackListed( - PropertyNameList *propertyNameList, const QQuickDesignerSupport::PropertyName &propertyName) -{ - if (!QQuickDesignerSupportProperties::isPropertyBlackListed(propertyName)) - propertyNameList->append(propertyName); -} - -PropertyNameList allPropertyNamesInline(QObject *object, - const PropertyName &baseName = {}, - QObjectList *inspectedObjects = nullptr, - int depth = 0) -{ - QQuickDesignerSupport::PropertyNameList propertyNameList; - - QObjectList localObjectList; - - if (inspectedObjects == nullptr) - inspectedObjects = &localObjectList; - - if (depth > 2) - return propertyNameList; - - if (!inspectedObjects->contains(object)) - inspectedObjects->append(object); - - const QMetaObject *metaObject = object->metaObject(); - - QStringList deferredPropertyNames; - const int namesIndex = metaObject->indexOfClassInfo("DeferredPropertyNames"); - if (namesIndex != -1) { - QMetaClassInfo classInfo = metaObject->classInfo(namesIndex); - deferredPropertyNames = QString::fromUtf8(classInfo.value()).split(QLatin1Char(',')); - } - - for (int index = 0; index < metaObject->propertyCount(); ++index) { - QMetaProperty metaProperty = metaObject->property(index); - QQmlProperty declarativeProperty(object, QString::fromUtf8(metaProperty.name())); - if (declarativeProperty.isValid() - && declarativeProperty.propertyTypeCategory() == QQmlProperty::Object) { - if (declarativeProperty.name() != QLatin1String("parent") - && !deferredPropertyNames.contains(declarativeProperty.name())) { - QObject *childObject = QQmlMetaType::toQObject(declarativeProperty.read()); - if (childObject) - propertyNameList.append( - allPropertyNamesInline(childObject, - baseName - + QQuickDesignerSupport::PropertyName( - metaProperty.name()) - + '.', - inspectedObjects, - depth + 1)); - } - } else if (QQmlGadgetPtrWrapper *valueType = QQmlGadgetPtrWrapper::instance( - qmlEngine(object), metaProperty.typeId())) { - valueType->setValue(metaProperty.read(object)); - propertyNameList.append(baseName - + QQuickDesignerSupport::PropertyName(metaProperty.name())); - propertyNameList.append( - allPropertyNamesInline(valueType, - baseName - + QQuickDesignerSupport::PropertyName(metaProperty.name()) - + '.', - inspectedObjects, - depth + 1)); - } else { - addToPropertyNameListIfNotBlackListed(&propertyNameList, - baseName - + QQuickDesignerSupport::PropertyName( - metaProperty.name())); - } - } - - return propertyNameList; -} -#endif - PropertyNameList allPropertyNames(QObject *object) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QQuickDesignerSupportProperties::allPropertyNames(object); -#elif QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) - return allPropertyNamesInline(object); -#else - return QQuickDesignerSupportProperties::allPropertyNames(object); -#endif } PropertyNameList propertyNameListForWritableProperties(QObject *object) @@ -204,15 +116,10 @@ static bool isConnections(QObject *object) // This is used in share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp QObject *createPrimitive(const QString &typeName, int majorNumber, int minorNumber, QQmlContext *context) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - QTypeRevision revision = QTypeRevision::zero(); if (majorNumber > 0) revision = QTypeRevision::fromVersion(majorNumber, minorNumber); return QQuickDesignerSupportItems::createPrimitive(typeName, revision, context); -#else - return QQuickDesignerSupportItems::createPrimitive(typeName, majorNumber, minorNumber, context); -#endif } static QString qmlDesignerRCPath() @@ -347,21 +254,13 @@ void emitComponentComplete(QObject *item) QQmlData *data = QQmlData::get(item); if (data && data->context) { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QQmlComponentAttached *componentAttached = data->context->componentAttached; -#else QQmlComponentAttached *componentAttached = data->context->componentAttacheds(); -#endif while (componentAttached) { - if (componentAttached->parent()) + if (componentAttached->parent()) { if (componentAttached->parent() == item) emit componentAttached->completed(); - -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - componentAttached = componentAttached->next; -#else + } componentAttached = componentAttached->next(); -#endif } } } @@ -552,12 +451,8 @@ bool isSubclassOf(QObject *object, const QByteArray &superTypeName) void getPropertyCache(QObject *object, QQmlEngine *engine) { -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) - QQuickDesignerSupportProperties::getPropertyCache(object, engine); -#else Q_UNUSED(engine); QQuickDesignerSupportProperties::getPropertyCache(object); -#endif } void registerNotifyPropertyChangeCallBack(void (*callback)(QObject *, const PropertyName &)) diff --git a/src/tools/qml2puppet/qmlprivategate/qmlprivategate.h b/src/tools/qml2puppet/qmlprivategate/qmlprivategate.h index 916aac3c7b0..fcc366ea1b1 100644 --- a/src/tools/qml2puppet/qmlprivategate/qmlprivategate.h +++ b/src/tools/qml2puppet/qmlprivategate/qmlprivategate.h @@ -27,16 +27,9 @@ namespace QmlPrivateGate { class ComponentCompleteDisabler { public: -#if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)) ComponentCompleteDisabler(); ~ComponentCompleteDisabler(); -#else - ComponentCompleteDisabler() - { - //nothing not available yet - } -#endif }; void createNewDynamicProperty(QObject *object, QQmlEngine *engine, const QString &name); diff --git a/src/tools/qml2puppet/qmlpuppet.qrc b/src/tools/qml2puppet/qmlpuppet.qrc index 7ec26950034..24acebb134a 100644 --- a/src/tools/qml2puppet/qmlpuppet.qrc +++ b/src/tools/qml2puppet/qmlpuppet.qrc @@ -7,7 +7,6 @@ images/non-visual-component@2x.png mockfiles/Window.qml mockfiles/SwipeView.qml - mockfiles/GenericBackend.qml mockfiles/Dialog.qml mockfiles/ToolBarButton.qml mockfiles/ToggleButton.qml