[TD]fix fail to create vertex outside frame

This commit is contained in:
wandererfan
2025-11-03 22:25:01 -05:00
committed by Chris Hennes
parent f0da095cf8
commit 73e4b296b1
3 changed files with 11 additions and 2 deletions

View File

@@ -273,6 +273,10 @@ void QGTracker::onDoubleClick(QPointF pos)
void QGTracker::getPickedQGIV(QPointF pos)
{
if (m_qgParent) {
return;
}
setVisible(false);
m_qgParent = nullptr;
QList<QGraphicsView *> views = scene()->views();
@@ -284,13 +288,12 @@ void QGTracker::getPickedQGIV(QPointF pos)
if (topItem != pickedItem) {
pickedItem = topItem;
} //pickedItem sb a QGIV
QGIView* qgParent = dynamic_cast<QGIView*>(pickedItem);
auto* qgParent = dynamic_cast<QGIView*>(pickedItem);
if (qgParent) {
m_qgParent = qgParent;
}
}
setVisible(true);
return;
}
QRectF QGTracker::boundingRect() const
@@ -420,6 +423,7 @@ std::vector<Base::Vector3d> QGTracker::convertPoints()
void QGTracker::terminateDrawing()
{
setCursor(Qt::ArrowCursor);
// should we care if m_qgParent is null?
Q_EMIT drawingFinished(m_points, m_qgParent);
}

View File

@@ -95,6 +95,8 @@ public:
void setTrackerMode(TrackerMode m) { m_trackerMode = m; }
QPointF snapToAngle(QPointF pt);
void setOwnerQView(QGIView* owner) { m_qgParent = owner; }
Q_SIGNALS:
void drawingFinished(std::vector<QPointF> pts, TechDrawGui::QGIView* qgParent);
void qViewPicked(QPointF pos, TechDrawGui::QGIView* qgParent);

View File

@@ -185,6 +185,9 @@ void TaskCosVertex::startTracker()
if (!m_tracker) {
m_tracker = new QGTracker(m_vpp->getQGSPage(), m_trackerMode);
std::string parentName = m_baseFeat->getNameInDocument();
QGIView* parentView = m_vpp->getQGSPage()->getQGIVByName(parentName);
m_tracker->setOwnerQView(parentView);
QObject::connect(
m_tracker, &QGTracker::drawingFinished,
this, &TaskCosVertex::onTrackerFinished