feat: Implement chained line drawing with Esc key exit
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
#include "SketchObject.h"
|
#include "SketchObject.h"
|
||||||
#include "ApplicationController.h"
|
#include "ApplicationController.h"
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
#include <QKeyEvent>
|
||||||
#include <QWheelEvent>
|
#include <QWheelEvent>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@@ -181,7 +182,7 @@ void ViewportWidget::mousePressEvent(QMouseEvent *event)
|
|||||||
m_isDefiningLine = true;
|
m_isDefiningLine = true;
|
||||||
} else {
|
} else {
|
||||||
emit lineAdded(m_firstLinePoint, p);
|
emit lineAdded(m_firstLinePoint, p);
|
||||||
m_isDefiningLine = false;
|
m_firstLinePoint = p;
|
||||||
}
|
}
|
||||||
update();
|
update();
|
||||||
} else {
|
} else {
|
||||||
@@ -221,6 +222,18 @@ void ViewportWidget::wheelEvent(QWheelEvent *event)
|
|||||||
update();
|
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)
|
void ViewportWidget::onSketchModeStarted(SketchPlane plane)
|
||||||
{
|
{
|
||||||
m_currentPlane = plane;
|
m_currentPlane = plane;
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ protected:
|
|||||||
void mousePressEvent(QMouseEvent *event) override;
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
void mouseMoveEvent(QMouseEvent *event) override;
|
void mouseMoveEvent(QMouseEvent *event) override;
|
||||||
void wheelEvent(QWheelEvent *event) override;
|
void wheelEvent(QWheelEvent *event) override;
|
||||||
|
void keyPressEvent(QKeyEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVector3D project(const QVector3D& worldCoord, const QMatrix4x4& modelView, const QMatrix4x4& projection, const QRect& viewport);
|
QVector3D project(const QVector3D& worldCoord, const QMatrix4x4& modelView, const QMatrix4x4& projection, const QRect& viewport);
|
||||||
|
|||||||
Reference in New Issue
Block a user