Вертикальное и горизонтальное выравнивание

This commit is contained in:
2025-12-09 22:08:57 +03:00
parent 15e701ff4f
commit d9f40e90a5
5 changed files with 39 additions and 9 deletions

View File

@@ -75,15 +75,29 @@ void Canvas::mousePressEvent(QMouseEvent* event)
#ifdef _DEBUG
qDebug() << "Scene point in" << scene.x() << scene.y();
#endif
if (mode == Mode::None){
Point* p = findPointAt(scene);
if (p) {
draggedPoint = p;
dragOffset = scene - QPointF(*p->x, *p->y);
return;
}
}
else if (mode == Mode::Horizontal || mode == Mode::Vertical) {
Line* found = findAt(scene);
if (found) {
if (mode == Mode::Horizontal)
sys.addConstraintHorizontal(*found, constraints_count++);
else
sys.addConstraintVertical(*found, constraints_count++);
update();
}
mode = Mode::None;
after_constraint = true;
}
else if (mode == Mode::DrawingLine) {
if (!current_line) {
current_line = new Line();