Debug информация о теге линии

This commit is contained in:
2025-12-15 15:27:48 +03:00
parent c283720a99
commit a6cf2bb13e
3 changed files with 34 additions and 10 deletions

View File

@@ -76,11 +76,11 @@ void Canvas::changeMode(Mode _mode)
// Методы поиска и проверки
// ===================================================================
Line* Canvas::findAt(QPointF& pos)
Line* Canvas::findAt(QPointF& pos, qreal tolerance)
{
// TODO: реализовать проверку, находится ли точка на линии
for (Line* line : lines) {
if (line->contains(pos)) {
if (line->contains(pos, tolerance)) {
return line;
}
}
@@ -186,7 +186,7 @@ void Canvas::remove_constraints()
void Canvas::mousePressEvent(QMouseEvent* event)
{
QPointF scene = screenToLogical(event->pos());
QPointF scene = UCS_POSITION;
#ifdef _DEBUG
qDebug() << "Scene point in" << scene.x() << scene.y();
@@ -373,9 +373,9 @@ void Canvas::mousePressEvent(QMouseEvent* event)
}
else {
// Линии уже параллельны - сообщаем об ошибке
#ifdef _DEBUG
#ifdef _DEBUG
qDebug() << "Line" << current_line << "and" << found << "are parallel. Abort!";
#endif
#endif
QMessageBox::warning(this,
QString("Wrong"),
@@ -449,7 +449,7 @@ void Canvas::mouseMoveEvent(QMouseEvent* event)
{
// ====================== Перемещение точки ======================
if (draggedPoint) {
QPointF pos = screenToLogical(event->pos()) - dragOffset;
QPointF pos = UCS_POSITION - dragOffset;
// Обновляем все связанные точки (совпадающие, горизонтальные, вертикальные)
for (Point* pair : points) {
@@ -472,7 +472,7 @@ void Canvas::mouseMoveEvent(QMouseEvent* event)
// ====================== Перемещение линии ======================
else if (draggedLine) {
QPointF newCenter = screenToLogical(event->pos()) - dragOffset;
QPointF newCenter = UCS_POSITION - dragOffset;
QPointF oldCenter(
(*draggedLine->p1.x + *draggedLine->p2.x) / 2.0,
(*draggedLine->p1.y + *draggedLine->p2.y) / 2.0
@@ -499,9 +499,12 @@ void Canvas::mouseMoveEvent(QMouseEvent* event)
}
}
}
update();
}
#ifdef _DEBUG
else
showObjectTag(WIDGET_POSITION);
#endif
}
void Canvas::mouseReleaseEvent(QMouseEvent* event)
@@ -595,6 +598,18 @@ void Canvas::paintEvent(QPaintEvent* event)
}
}
#ifdef _DEBUG
void Canvas::showObjectTag(QPointF pos)
{
QPointF l = screenToLogical(pos);
Line* lineUnderCursor = findAt(l, 2.0);
if (lineUnderCursor && lineUnderCursor != draggedLine) {
QString Text = QString("Tag Line: %1").arg(lineUnderCursor->get_tag());
QToolTip::showText(mapToGlobal(pos.toPoint()), Text, this);
}
}
#endif
QPointF Canvas::screenToLogical(const QPointF& screenPos) const
{
QPointF logical = screenPos;