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.
|
mode if needed.
|
||||||
*/
|
*/
|
||||||
void DiagramView::keyPressEvent(QKeyEvent *e) {
|
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);
|
switchToVisualisationModeIfNeeded(e);
|
||||||
QGraphicsView::keyPressEvent(e);
|
QGraphicsView::keyPressEvent(e);
|
||||||
}
|
}
|
||||||
@@ -618,6 +627,15 @@ void DiagramView::keyPressEvent(QKeyEvent *e) {
|
|||||||
mode if needed.
|
mode if needed.
|
||||||
*/
|
*/
|
||||||
void DiagramView::keyReleaseEvent(QKeyEvent *e) {
|
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);
|
switchToSelectionModeIfNeeded(e);
|
||||||
QGraphicsView::keyReleaseEvent(e);
|
QGraphicsView::keyReleaseEvent(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ DVEventAddImage::DVEventAddImage(DiagramView *dv) :
|
|||||||
* @brief DVEventAddImage::~DVEventAddImage
|
* @brief DVEventAddImage::~DVEventAddImage
|
||||||
*/
|
*/
|
||||||
DVEventAddImage::~DVEventAddImage() {
|
DVEventAddImage::~DVEventAddImage() {
|
||||||
if (m_running) {
|
if (m_running || m_abort) {
|
||||||
if (m_is_added) m_diagram -> removeItem(m_image);
|
if (m_is_added) m_diagram -> removeItem(m_image);
|
||||||
delete m_image;
|
delete m_image;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ DVEventAddShape::DVEventAddShape(DiagramView *dv, QetShapeItem::ShapeType shape_
|
|||||||
* @brief DVEventAddShape::~DVEventAddShape
|
* @brief DVEventAddShape::~DVEventAddShape
|
||||||
*/
|
*/
|
||||||
DVEventAddShape::~DVEventAddShape() {
|
DVEventAddShape::~DVEventAddShape() {
|
||||||
if (m_running) {
|
if (m_running || m_abort) {
|
||||||
m_diagram -> removeItem(m_shape_item);
|
m_diagram -> removeItem(m_shape_item);
|
||||||
delete m_shape_item;
|
delete m_shape_item;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,8 @@
|
|||||||
DVEventInterface::DVEventInterface(DiagramView *dv) :
|
DVEventInterface::DVEventInterface(DiagramView *dv) :
|
||||||
m_dv(dv),
|
m_dv(dv),
|
||||||
m_diagram(dv->diagram()),
|
m_diagram(dv->diagram()),
|
||||||
m_running(false)
|
m_running(false),
|
||||||
|
m_abort(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,6 +54,26 @@ bool DVEventInterface::wheelEvent(QWheelEvent *event) {
|
|||||||
return false;
|
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 {
|
bool DVEventInterface::isRunning() const {
|
||||||
return m_running;
|
return m_running;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
class QMouseEvent;
|
class QMouseEvent;
|
||||||
class QWheelEvent;
|
class QWheelEvent;
|
||||||
|
class QKeyEvent;
|
||||||
class DiagramView;
|
class DiagramView;
|
||||||
class Diagram;
|
class Diagram;
|
||||||
|
|
||||||
@@ -42,6 +43,8 @@ class DVEventInterface
|
|||||||
virtual bool mouseMoveEvent (QMouseEvent *event);
|
virtual bool mouseMoveEvent (QMouseEvent *event);
|
||||||
virtual bool mouseReleaseEvent (QMouseEvent *event);
|
virtual bool mouseReleaseEvent (QMouseEvent *event);
|
||||||
virtual bool wheelEvent (QWheelEvent *event);
|
virtual bool wheelEvent (QWheelEvent *event);
|
||||||
|
virtual bool keyPressEvent (QKeyEvent *event);
|
||||||
|
virtual bool KeyReleaseEvent (QKeyEvent *event);
|
||||||
virtual bool isRunning () const;
|
virtual bool isRunning () const;
|
||||||
virtual bool isFinish () const;
|
virtual bool isFinish () const;
|
||||||
|
|
||||||
@@ -49,6 +52,7 @@ class DVEventInterface
|
|||||||
DiagramView *m_dv;
|
DiagramView *m_dv;
|
||||||
Diagram *m_diagram;
|
Diagram *m_diagram;
|
||||||
bool m_running;
|
bool m_running;
|
||||||
|
bool m_abort;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DVEVENTINTERFACE_H
|
#endif // DVEVENTINTERFACE_H
|
||||||
|
|||||||
Reference in New Issue
Block a user