From a8d8d59f2e529af41de0fbf0acd6d2ba323e59e8 Mon Sep 17 00:00:00 2001 From: Ryan Kembrey Date: Wed, 3 Sep 2025 16:17:25 +1000 Subject: [PATCH 1/3] TechDraw: Fix regression in hiding vertices --- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 18139679ce..88454eb051 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -115,9 +115,25 @@ QVariant QGIViewPart::itemChange(GraphicsItemChange change, const QVariant& valu // we are selected } else if (change == ItemSceneChange && scene()) { - // this is means we are finished? + // This means we are finished? tidy(); } + else if (change == QGraphicsItem::ItemSceneHasChanged) { + if (scene()) { + m_selectionChangedConnection = connect(scene(), &QGraphicsScene::selectionChanged, this, [this]() { + // When selection changes, if the mouse is not over the view, + // hide any non-selected vertices. + if (!isUnderMouse()) { + for (auto* child : childItems()) { + if (child->type() == UserType::QGIVertex && !child->isSelected()) { + child->hide(); + } + } + update(); + } + }); + } + } return QGIView::itemChange(change, value); } From 415fa0a4159e4d3575b63e4467e5b7ff81020c89 Mon Sep 17 00:00:00 2001 From: Ryan Kembrey Date: Sun, 7 Sep 2025 23:05:59 +1000 Subject: [PATCH 2/3] TechDraw: Fix center marks not showing --- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 88454eb051..c473513bfa 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -106,7 +106,7 @@ QVariant QGIViewPart::itemChange(GraphicsItemChange change, const QVariant& valu if (!selectState && !isUnderMouse()) { // hide everything for (auto& child : childItems()) { - if (child->type() == UserType::QGIVertex) { + if (child->type() == UserType::QGIVertex || child->type() == UserType::QGICMark) { child->hide(); } } @@ -125,7 +125,8 @@ QVariant QGIViewPart::itemChange(GraphicsItemChange change, const QVariant& valu // hide any non-selected vertices. if (!isUnderMouse()) { for (auto* child : childItems()) { - if (child->type() == UserType::QGIVertex && !child->isSelected()) { + if ((child->type() == UserType::QGIVertex || child->type() == UserType::QGICMark) && + !child->isSelected()) { child->hide(); } } @@ -1321,7 +1322,7 @@ void QGIViewPart::hoverEnterEvent(QGraphicsSceneHoverEvent *event) QGIView::hoverEnterEvent(event); for (auto& child : childItems()) { - if (child->type() == UserType::QGIVertex) { + if (child->type() == UserType::QGIVertex || child->type() == UserType::QGICMark) { child->show(); } } @@ -1334,7 +1335,7 @@ void QGIViewPart::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) QGIView::hoverLeaveEvent(event); for (auto& child : childItems()) { - if (child->type() == UserType::QGIVertex && + if ((child->type() == UserType::QGIVertex || child->type() == UserType::QGICMark) && !child->isSelected()) { child->hide(); } From eb58e2e343eed0a51e3f2bfe11bfae3eb365de4c Mon Sep 17 00:00:00 2001 From: Ryan Kembrey Date: Mon, 22 Sep 2025 01:01:33 +1000 Subject: [PATCH 3/3] TechDraw: Fix vertices hiding on cosmetic object removal --- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index c473513bfa..1dc6df3791 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -473,7 +473,7 @@ void QGIViewPart::drawAllVertexes() cmItem->setSize(getVertexSize() * vp->CenterScale.getValue()); cmItem->setPrettyNormal(); cmItem->setZValue(ZVALUE::VERTEX); - cmItem->setVisible(false); + cmItem->setVisible(m_isHovered); } } else { //regular Vertex @@ -486,7 +486,7 @@ void QGIViewPart::drawAllVertexes() item->setRadius(getVertexSize()); item->setPrettyNormal(); item->setZValue(ZVALUE::VERTEX); - item->setVisible(false); + item->setVisible(m_isHovered); } } }