From c81b4fb07c64e33135e721a1ed1289b06a8e55eb Mon Sep 17 00:00:00 2001 From: blacksun Date: Wed, 5 Nov 2014 10:09:12 +0000 Subject: [PATCH] element editor : improve add line git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3454 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/editor/elementscene.cpp | 9 ++++++++ sources/editor/esevent/eseventaddline.cpp | 26 ++++++++++++----------- sources/editor/esevent/eseventaddline.h | 5 +++-- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/sources/editor/elementscene.cpp b/sources/editor/elementscene.cpp index c61ca37dd..9b91cb6c7 100644 --- a/sources/editor/elementscene.cpp +++ b/sources/editor/elementscene.cpp @@ -68,6 +68,7 @@ ElementScene::~ElementScene() { */ void ElementScene::slot_move() { behavior = Normal; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -75,6 +76,7 @@ void ElementScene::slot_move() { */ void ElementScene::slot_addRectangle() { behavior = Rectangle; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -82,6 +84,7 @@ void ElementScene::slot_addRectangle() { */ void ElementScene::slot_addCircle() { behavior = Circle; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -89,6 +92,7 @@ void ElementScene::slot_addCircle() { */ void ElementScene::slot_addEllipse() { behavior = Ellipse; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -96,6 +100,7 @@ void ElementScene::slot_addEllipse() { */ void ElementScene::slot_addPolygon() { behavior = Polygon; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } @@ -104,6 +109,7 @@ void ElementScene::slot_addPolygon() { */ void ElementScene::slot_addText() { behavior = Text; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -111,6 +117,7 @@ void ElementScene::slot_addText() { */ void ElementScene::slot_addTerminal() { behavior = Terminal; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -118,6 +125,7 @@ void ElementScene::slot_addTerminal() { */ void ElementScene::slot_addArc() { behavior = Arc; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** @@ -125,6 +133,7 @@ void ElementScene::slot_addArc() { */ void ElementScene::slot_addTextField() { behavior = TextField; + if (m_event_interface) delete m_event_interface; m_event_interface = nullptr; } /** diff --git a/sources/editor/esevent/eseventaddline.cpp b/sources/editor/esevent/eseventaddline.cpp index 9174bca2d..b935e537c 100644 --- a/sources/editor/esevent/eseventaddline.cpp +++ b/sources/editor/esevent/eseventaddline.cpp @@ -72,18 +72,6 @@ bool ESEventAddLine::mousePressEvent(QGraphicsSceneMouseEvent *event) { return true; } - //Remove the current line if exist - //or finish if no line - if (event -> button() == Qt::RightButton) { - if (m_line) { - delete m_line; m_line = nullptr; - } - else { - m_running = false; - } - return true; - } - return false; } @@ -101,3 +89,17 @@ bool ESEventAddLine::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { m_line -> setLine(QLineF(m_line->line().p1(), pos)); return true; } + +/** + * @brief ESEventAddLine::mouseReleaseEvent + * @param event + * @return + */ +bool ESEventAddLine::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { + if (event -> button() == Qt::RightButton) { + if (m_line) {delete m_line; m_line = nullptr;} + else {m_running = false;} + return true; + } + return false; +} diff --git a/sources/editor/esevent/eseventaddline.h b/sources/editor/esevent/eseventaddline.h index 0242d1e11..4a0903546 100644 --- a/sources/editor/esevent/eseventaddline.h +++ b/sources/editor/esevent/eseventaddline.h @@ -30,8 +30,9 @@ class ESEventAddLine : public ESEventInterface ESEventAddLine(ElementScene *scene); virtual ~ESEventAddLine(); - virtual bool mousePressEvent(QGraphicsSceneMouseEvent *event); - virtual bool mouseMoveEvent (QGraphicsSceneMouseEvent *event); + virtual bool mousePressEvent (QGraphicsSceneMouseEvent *event); + virtual bool mouseMoveEvent (QGraphicsSceneMouseEvent *event); + virtual bool mouseReleaseEvent (QGraphicsSceneMouseEvent *event); private: PartLine *m_line;