mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-20 16:20:52 +01:00
DVEvent: press key escape, abort the curent action
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3369 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -609,6 +609,15 @@ void DiagramView::focusInEvent(QFocusEvent *e) {
|
||||
mode if needed.
|
||||
*/
|
||||
void DiagramView::keyPressEvent(QKeyEvent *e) {
|
||||
if (m_event_interface) {
|
||||
if (m_event_interface -> keyPressEvent(e)) {
|
||||
if (m_event_interface->isFinish()) {
|
||||
emit (itemAdded());
|
||||
delete m_event_interface; m_event_interface = nullptr;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
switchToVisualisationModeIfNeeded(e);
|
||||
QGraphicsView::keyPressEvent(e);
|
||||
}
|
||||
@@ -618,6 +627,15 @@ void DiagramView::keyPressEvent(QKeyEvent *e) {
|
||||
mode if needed.
|
||||
*/
|
||||
void DiagramView::keyReleaseEvent(QKeyEvent *e) {
|
||||
if (m_event_interface) {
|
||||
if (m_event_interface -> KeyReleaseEvent(e)) {
|
||||
if (m_event_interface->isFinish()) {
|
||||
emit (itemAdded());
|
||||
delete m_event_interface; m_event_interface = nullptr;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
switchToSelectionModeIfNeeded(e);
|
||||
QGraphicsView::keyReleaseEvent(e);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ DVEventAddImage::DVEventAddImage(DiagramView *dv) :
|
||||
* @brief DVEventAddImage::~DVEventAddImage
|
||||
*/
|
||||
DVEventAddImage::~DVEventAddImage() {
|
||||
if (m_running) {
|
||||
if (m_running || m_abort) {
|
||||
if (m_is_added) m_diagram -> removeItem(m_image);
|
||||
delete m_image;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ DVEventAddShape::DVEventAddShape(DiagramView *dv, QetShapeItem::ShapeType shape_
|
||||
* @brief DVEventAddShape::~DVEventAddShape
|
||||
*/
|
||||
DVEventAddShape::~DVEventAddShape() {
|
||||
if (m_running) {
|
||||
if (m_running || m_abort) {
|
||||
m_diagram -> removeItem(m_shape_item);
|
||||
delete m_shape_item;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
DVEventInterface::DVEventInterface(DiagramView *dv) :
|
||||
m_dv(dv),
|
||||
m_diagram(dv->diagram()),
|
||||
m_running(false)
|
||||
m_running(false),
|
||||
m_abort(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -53,6 +54,26 @@ bool DVEventInterface::wheelEvent(QWheelEvent *event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief DVEventInterface::keyPressEvent
|
||||
* By default, press escape key abort the curent action
|
||||
* @param event
|
||||
* @return
|
||||
*/
|
||||
bool DVEventInterface::keyPressEvent(QKeyEvent *event) {
|
||||
if (event->key() == Qt::Key_Escape) {
|
||||
m_running = false;
|
||||
m_abort = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool DVEventInterface::KeyReleaseEvent(QKeyEvent *event) {
|
||||
Q_UNUSED (event);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool DVEventInterface::isRunning() const {
|
||||
return m_running;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
class QMouseEvent;
|
||||
class QWheelEvent;
|
||||
class QKeyEvent;
|
||||
class DiagramView;
|
||||
class Diagram;
|
||||
|
||||
@@ -42,6 +43,8 @@ class DVEventInterface
|
||||
virtual bool mouseMoveEvent (QMouseEvent *event);
|
||||
virtual bool mouseReleaseEvent (QMouseEvent *event);
|
||||
virtual bool wheelEvent (QWheelEvent *event);
|
||||
virtual bool keyPressEvent (QKeyEvent *event);
|
||||
virtual bool KeyReleaseEvent (QKeyEvent *event);
|
||||
virtual bool isRunning () const;
|
||||
virtual bool isFinish () const;
|
||||
|
||||
@@ -49,6 +52,7 @@ class DVEventInterface
|
||||
DiagramView *m_dv;
|
||||
Diagram *m_diagram;
|
||||
bool m_running;
|
||||
bool m_abort;
|
||||
};
|
||||
|
||||
#endif // DVEVENTINTERFACE_H
|
||||
|
||||
Reference in New Issue
Block a user