diff --git a/Canvas.cpp b/Canvas.cpp index c853cf3..0157215 100644 --- a/Canvas.cpp +++ b/Canvas.cpp @@ -653,7 +653,6 @@ void Canvas::keyPressEvent(QKeyEvent* event) } break; } - case Qt::Key_Escape: { // Отмена текущего действия if (mode == Mode::DrawingLine && current_line) { @@ -691,7 +690,6 @@ void Canvas::keyPressEvent(QKeyEvent* event) } break; } - case Qt::Key_Z: { if (constraints_count > 0) { remove_constraint(constraints_count - 1); @@ -700,19 +698,22 @@ void Canvas::keyPressEvent(QKeyEvent* event) } break; } - - case Qt::Key_Plus: - zoomIn(); - break; - - case Qt::Key_Minus: - zoomOut(); - break; default: QWidget::keyPressEvent(event); } } +void Canvas::wheelEvent(QWheelEvent* event) +{ + if (event->angleDelta().y() > 0) { + zoomIn(); + } + else { + zoomOut(); + } + event->accept(); +} + void Canvas::leaveEvent(QEvent* event) { Q_UNUSED(event); diff --git a/Canvas.h b/Canvas.h index f7859e2..cd4ad82 100644 --- a/Canvas.h +++ b/Canvas.h @@ -69,6 +69,7 @@ protected: void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; + void wheelEvent(QWheelEvent* event) override; void paintEvent(QPaintEvent* event) override; void keyPressEvent(QKeyEvent* event); void leaveEvent(QEvent* event) override;