Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt-creator for openSUSE:Factory checked in at 2025-10-13 17:26:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt-creator (Old) and /work/SRC/openSUSE:Factory/.qt-creator.new.18484 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt-creator" Mon Oct 13 17:26:44 2025 rev:51 rq:1310314 version:17.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/qt-creator/qt-creator.changes 2025-10-08 18:17:27.809813950 +0200 +++ /work/SRC/openSUSE:Factory/.qt-creator.new.18484/qt-creator.changes 2025-10-13 17:33:06.453782156 +0200 @@ -1,0 +2,6 @@ +Wed Oct 8 20:52:46 UTC 2025 - Christophe Marin <[email protected]> + +- Add upstream change: + * 0001-QmlDesigner-Compile-fixes-for-Qt-6.10-private-API-ch.patch + +------------------------------------------------------------------- New: ---- 0001-QmlDesigner-Compile-fixes-for-Qt-6.10-private-API-ch.patch ----------(New B)---------- New:- Add upstream change: * 0001-QmlDesigner-Compile-fixes-for-Qt-6.10-private-API-ch.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt-creator.spec ++++++ --- /var/tmp/diff_new_pack.t6mGJn/_old 2025-10-13 17:33:09.165896545 +0200 +++ /var/tmp/diff_new_pack.t6mGJn/_new 2025-10-13 17:33:09.173896882 +0200 @@ -60,6 +60,7 @@ Source: https://download.qt.io/official_releases/qtcreator/%{short_version}/%{real_version}%{tar_suffix}/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz Source1: qt-creator-rpmlintrc # Patches 0-10 are upstream changes +Patch0: 0001-QmlDesigner-Compile-fixes-for-Qt-6.10-private-API-ch.patch # Patches 11-20 are openSUSE changes Patch11: fix-application-output.patch Patch12: 0001-Disable-some-plugins.patch ++++++ 0001-QmlDesigner-Compile-fixes-for-Qt-6.10-private-API-ch.patch ++++++ >From 5a4c700ccefc76c7c531c834734e6fefa14b5364 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen <[email protected]> Date: Tue, 29 Jul 2025 17:20:41 +0300 Subject: [PATCH] QmlDesigner: Compile fixes for Qt 6.10 private API changes Fixes: QDS-15681 Change-Id: Ie2f56a31e7323a6c4eb9a306c63e0b87b4480c41 Reviewed-by: Mahmoud Badri <[email protected]> (cherry picked from commit c901f9e3e9f28aa651448e05d3cac531193de3fc) --- .../qmlpuppet/editor3d/camerageometry.cpp | 2 +- .../qmlpuppet/editor3d/generalhelper.cpp | 12 +++++++- .../qmlpuppet/editor3d/mousearea3d.cpp | 15 +++++++--- .../qmlpuppet/editor3d/mousearea3d.h | 1 + .../editor3d/selectionboxgeometry.cpp | 7 ++--- .../qt5bakelightsnodeinstanceserver.cpp | 28 +++++++++++++++++++ 6 files changed, 54 insertions(+), 11 deletions(-) diff --git a/src/tools/qmlpuppet/qmlpuppet/editor3d/camerageometry.cpp b/src/tools/qmlpuppet/qmlpuppet/editor3d/camerageometry.cpp index 2c5987e0445..d8361f93066 100644 --- a/src/tools/qmlpuppet/qmlpuppet/editor3d/camerageometry.cpp +++ b/src/tools/qmlpuppet/qmlpuppet/editor3d/camerageometry.cpp @@ -154,7 +154,7 @@ void CameraGeometry::fillVertexData(QByteArray &vertexData, QByteArray &indexDat QRectF rect = m_viewPortRect; if (rect.isNull()) rect = QRectF(0, 0, 1000, 1000); // Let's have some visualization for null viewports - camera->calculateGlobalVariables(rect); + camera->calculateProjection(rect); m = camera->projection.inverted(); } diff --git a/src/tools/qmlpuppet/qmlpuppet/editor3d/generalhelper.cpp b/src/tools/qmlpuppet/qmlpuppet/editor3d/generalhelper.cpp index 647d170383b..eb246b6b704 100644 --- a/src/tools/qmlpuppet/qmlpuppet/editor3d/generalhelper.cpp +++ b/src/tools/qmlpuppet/qmlpuppet/editor3d/generalhelper.cpp @@ -357,12 +357,22 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul auto geometry = qobject_cast<SelectionBoxGeometry *>(model->geometry()); if (geometry) { bounds = geometry->bounds(); + + // Selection boxes manipulate render node parent's transform directly, + // so we can't just use sceneTransform() of the model. + // However, they are always at top level, so we can use local transform + // from the render node's parent. + QMatrix4x4 m; + if (renderModel->parent) + m = renderModel->parent->localTransform; + m *= renderModel->localTransform; + center = m.map(bounds.center()); } else { const auto &bufferManager(context->bufferManager()); bounds = bufferManager->getModelBounds(renderModel); + center = model->sceneTransform().map(bounds.center()); } - center = renderModel->globalTransform.map(bounds.center()); const QVector3D e = bounds.extents(); const QVector3D s = model->sceneScale(); qreal maxScale = qSqrt(qreal(s.x() * s.x() + s.y() * s.y() + s.z() * s.z())); diff --git a/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.cpp b/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.cpp index de6737c39db..8506fb1a454 100644 --- a/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.cpp +++ b/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.cpp @@ -808,8 +808,7 @@ QVector3D MouseArea3D::getMousePosInPlane(const MouseArea3D *helper, const DoubleVec3D rayPos0 = m_view3D->mapTo3DScene(mousePos1.toVec3()); DoubleVec3D rayPos1; if (qobject_cast<QQuick3DOrthographicCamera *>(m_view3D->camera())) { - if (auto cameraNode = static_cast<QSSGRenderCamera *>(QQuick3DObjectPrivate::get(m_view3D->camera())->spatialNode)) - rayPos1 = rayPos0 - rayPos0.length() * DoubleVec3D(cameraNode->getDirection()); + rayPos1 = rayPos0 - rayPos0.length() * DoubleVec3D(getDirection(m_view3D->camera())); } else { DoubleVec3D dir; DoubleVec3D camPos = m_view3D->camera()->scenePosition(); @@ -1030,6 +1029,15 @@ QVector3D MouseArea3D::getNormal() const return QVector3D(dataPtr[8], dataPtr[9], dataPtr[10]).normalized(); } +QVector3D MouseArea3D::getDirection(const QQuick3DNode *node) const +{ + const QMatrix4x4 m = node->sceneTransform(); + const float *dataPtr(m.data()); + QVector3D retval(dataPtr[8], dataPtr[9], dataPtr[10]); + retval.normalize(); + return retval; +} + QVector3D MouseArea3D::getCameraToNodeDir(QQuick3DNode *node) const { QVector3D dir; @@ -1037,8 +1045,7 @@ QVector3D MouseArea3D::getCameraToNodeDir(QQuick3DNode *node) const // We need to do a cast here to be compatible with Qt 5.x. // From Qt 6.2 the type can be read from the node directly. if (qobject_cast<QQuick3DOrthographicCamera *>(m_view3D->camera())) { - if (auto renderCamera = QQuick3DObjectPrivate::get(m_view3D->camera())->spatialNode) - dir -= static_cast<QSSGRenderCamera *>(renderCamera)->getDirection(); + dir -= getDirection(m_view3D->camera()); } else { QVector3D camPos = m_view3D->camera()->scenePosition(); QVector3D nodePos = pivotScenePosition(node); diff --git a/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.h b/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.h index 8d705c6eb0b..49a61bdfa09 100644 --- a/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.h +++ b/src/tools/qmlpuppet/qmlpuppet/editor3d/mousearea3d.h @@ -135,6 +135,7 @@ private: void setDragging(bool enable); void setHovering(bool enable); QVector3D getNormal() const; + QVector3D getDirection(const QQuick3DNode *node) const; QVector3D getCameraToNodeDir(QQuick3DNode *node) const; Q_DISABLE_COPY(MouseArea3D) diff --git a/src/tools/qmlpuppet/qmlpuppet/editor3d/selectionboxgeometry.cpp b/src/tools/qmlpuppet/qmlpuppet/editor3d/selectionboxgeometry.cpp index 48e0f9f23df..ea453d73819 100644 --- a/src/tools/qmlpuppet/qmlpuppet/editor3d/selectionboxgeometry.cpp +++ b/src/tools/qmlpuppet/qmlpuppet/editor3d/selectionboxgeometry.cpp @@ -195,13 +195,10 @@ void SelectionBoxGeometry::doUpdateGeometry() // to avoid having to reparent the selection box. This has to be done directly on render // nodes. QMatrix4x4 m; - if (targetRN->parent) { - targetRN->parent->calculateGlobalVariables(); - m = targetRN->parent->globalTransform; - } + if (m_targetNode->parentNode()) + m = m_targetNode->parentNode()->sceneTransform(); rootRN->localTransform = m; rootRN->markDirty(QSSGRenderNode::DirtyFlag::TransformDirty); - rootRN->calculateGlobalVariables(); } else if (!m_spatialNodeUpdatePending) { // Necessary spatial nodes do not yet exist. Defer selection box creation one frame. m_spatialNodeUpdatePending = true; diff --git a/src/tools/qmlpuppet/qmlpuppet/instances/qt5bakelightsnodeinstanceserver.cpp b/src/tools/qmlpuppet/qmlpuppet/instances/qt5bakelightsnodeinstanceserver.cpp index 770eabdaa8d..f0a108a274e 100644 --- a/src/tools/qmlpuppet/qmlpuppet/instances/qt5bakelightsnodeinstanceserver.cpp +++ b/src/tools/qmlpuppet/qmlpuppet/instances/qt5bakelightsnodeinstanceserver.cpp @@ -96,6 +96,7 @@ void Qt5BakeLightsNodeInstanceServer::bakeLights() return; } +#if QT_VERSION < QT_VERSION_CHECK(6, 10, 0) QQuick3DLightmapBaker::Callback callback = [this](QQuick3DLightmapBaker::BakingStatus status, std::optional<QString> msg, QQuick3DLightmapBaker::BakingControl *) { m_callbackReceived = true; @@ -119,6 +120,33 @@ void Qt5BakeLightsNodeInstanceServer::bakeLights() break; } }; +#else + QQuick3DLightmapBaker::Callback callback = [this](const QVariantMap &data, + QQuick3DLightmapBaker::BakingControl *) { + m_callbackReceived = true; + const QQuick3DLightmapBaker::BakingStatus status + = static_cast<QQuick3DLightmapBaker::BakingStatus>(data[QStringLiteral("status")].toInt()); + QString msg = data.value("message").toString(); + switch (status) { + case QQuick3DLightmapBaker::BakingStatus::Warning: + case QQuick3DLightmapBaker::BakingStatus::Error: { + nodeInstanceClient()->handlePuppetToCreatorCommand( + {PuppetToCreatorCommand::BakeLightsProgress, msg}); + nodeInstanceClient()->flush(); + } break; + case QQuick3DLightmapBaker::BakingStatus::Cancelled: + abort(tr("Baking cancelled.")); + break; + case QQuick3DLightmapBaker::BakingStatus::Complete: + runDenoiser(); + break; + default: + qWarning() << __FUNCTION__ << "Unexpected light baking status received:" + << int(status) << msg; + break; + } + }; +#endif QQuick3DLightmapBaker *baker = m_view3D->lightmapBaker(); baker->bake(callback); -- 2.51.0
