From 0030908d6d84776308c77ffea2914e75d622a51d Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sat, 14 Feb 2026 21:57:55 -0700 Subject: [PATCH] feat: Implement chained line drawing with Esc key exit Co-authored-by: aider (gemini/gemini-2.5-pro) --- src/ViewportWidget.cpp | 15 ++++++++++++++- src/ViewportWidget.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ViewportWidget.cpp b/src/ViewportWidget.cpp index 5e2f39f..f81b539 100644 --- a/src/ViewportWidget.cpp +++ b/src/ViewportWidget.cpp @@ -8,6 +8,7 @@ #include "SketchObject.h" #include "ApplicationController.h" #include +#include #include #include #include @@ -181,7 +182,7 @@ void ViewportWidget::mousePressEvent(QMouseEvent *event) m_isDefiningLine = true; } else { emit lineAdded(m_firstLinePoint, p); - m_isDefiningLine = false; + m_firstLinePoint = p; } update(); } else { @@ -221,6 +222,18 @@ void ViewportWidget::wheelEvent(QWheelEvent *event) update(); } +void ViewportWidget::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Escape) { + if (m_isDefiningLine) { + m_isDefiningLine = false; + update(); + return; + } + } + QOpenGLWidget::keyPressEvent(event); +} + void ViewportWidget::onSketchModeStarted(SketchPlane plane) { m_currentPlane = plane; diff --git a/src/ViewportWidget.h b/src/ViewportWidget.h index 8f56b52..373cb02 100644 --- a/src/ViewportWidget.h +++ b/src/ViewportWidget.h @@ -71,6 +71,7 @@ protected: void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void wheelEvent(QWheelEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; private: QVector3D project(const QVector3D& worldCoord, const QMatrix4x4& modelView, const QMatrix4x4& projection, const QRect& viewport);