From 6713e7d713eb7bf672132d65f57c31cc71a234ad Mon Sep 17 00:00:00 2001 From: Dongxu Li Date: Sun, 3 Jan 2016 13:48:52 -0500 Subject: [PATCH] polyline: cleanup --- librecad/src/actions/rs_actioneditcopy.cpp | 9 ---- librecad/src/actions/rs_actioneditcopy.h | 1 - .../src/actions/rs_actionpolylinesegment.cpp | 41 ++++++------------- .../src/actions/rs_actionpolylinesegment.h | 5 +-- 4 files changed, 13 insertions(+), 43 deletions(-) diff --git a/librecad/src/actions/rs_actioneditcopy.cpp b/librecad/src/actions/rs_actioneditcopy.cpp index bfc68c0b2a..aef26eebed 100644 --- a/librecad/src/actions/rs_actioneditcopy.cpp +++ b/librecad/src/actions/rs_actioneditcopy.cpp @@ -48,8 +48,6 @@ RS_ActionEditCopy::RS_ActionEditCopy(bool copy, { } - - RS_ActionEditCopy::~RS_ActionEditCopy() = default; @@ -72,13 +70,6 @@ void RS_ActionEditCopy::trigger() { RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected(),container->totalSelectedLength()); } - -void RS_ActionEditCopy::mouseMoveEvent(QMouseEvent* e) { - snapPoint(e); -} - - - void RS_ActionEditCopy::mouseReleaseEvent(QMouseEvent* e) { if (e->button()==Qt::LeftButton) { RS_CoordinateEvent ce(snapPoint(e)); diff --git a/librecad/src/actions/rs_actioneditcopy.h b/librecad/src/actions/rs_actioneditcopy.h index d1046c7273..fb815da21b 100644 --- a/librecad/src/actions/rs_actioneditcopy.h +++ b/librecad/src/actions/rs_actioneditcopy.h @@ -55,7 +55,6 @@ class RS_ActionEditCopy : public RS_ActionInterface { virtual void trigger(); - virtual void mouseMoveEvent(QMouseEvent* e); virtual void mouseReleaseEvent(QMouseEvent* e); virtual void coordinateEvent(RS_CoordinateEvent* e); diff --git a/librecad/src/actions/rs_actionpolylinesegment.cpp b/librecad/src/actions/rs_actionpolylinesegment.cpp index bca244d340..31fd7bf8c7 100644 --- a/librecad/src/actions/rs_actionpolylinesegment.cpp +++ b/librecad/src/actions/rs_actionpolylinesegment.cpp @@ -35,7 +35,10 @@ #include "rs_polyline.h" #include "rs_debug.h" - +namespace { +std::initializer_list +entityType{RS2::EntityLine, RS2::EntityPolyline, RS2::EntityArc}; +} RS_ActionPolylineSegment::RS_ActionPolylineSegment(RS_EntityContainer& container, RS_GraphicView& graphicView) @@ -46,7 +49,7 @@ RS_ActionPolylineSegment::RS_ActionPolylineSegment(RS_EntityContainer& container void RS_ActionPolylineSegment::init(int status) { RS_ActionInterface::init(status); - targetEntity = NULL; + targetEntity = nullptr; } /** @@ -240,7 +243,7 @@ void RS_ActionPolylineSegment::trigger() { // container->optimizeContours(); convertPolyline(targetEntity); - targetEntity = NULL; + targetEntity = nullptr; setStatus(ChooseEntity); RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected(),container->totalSelectedLength()); @@ -250,42 +253,22 @@ void RS_ActionPolylineSegment::trigger() { //////////////////////////////////////// } - - -void RS_ActionPolylineSegment::mouseMoveEvent(QMouseEvent* e) { - RS_DEBUG->print("RS_ActionPolylineSegment::mouseMoveEvent begin"); - - switch (getStatus()) { - case ChooseEntity: - snapPoint(e); - break; - default: - break; - } - - - RS_DEBUG->print("RS_ActionPolylineSegment::mouseMoveEvent end"); -} - - - void RS_ActionPolylineSegment::mouseReleaseEvent(QMouseEvent* e) { if (e->button()==Qt::LeftButton) { switch (getStatus()) { case ChooseEntity: - targetEntity = catchEntity(e); - if (targetEntity==NULL) { + targetEntity = catchEntity(e, entityType); + + if (targetEntity==nullptr) { RS_DIALOGFACTORY->commandMessage(tr("No Entity found.")); - } else if (targetEntity->rtti()!=RS2::EntityLine && targetEntity->rtti()!=RS2::EntityArc - && targetEntity->rtti()!=RS2::EntityPolyline) { - RS_DIALOGFACTORY->commandMessage( - tr("Entity must be a line, arc or polyline.")); - } else if (targetEntity->rtti()==RS2::EntityPolyline && ((RS_Polyline*)targetEntity)->isClosed()){ + } else if (targetEntity->rtti()==RS2::EntityPolyline && ((RS_Polyline*)targetEntity)->isClosed()){ RS_DIALOGFACTORY->commandMessage( tr("Entity can not be a closed polyline.")); } else { + //TODO, verify topology of selected targetEntity->setHighlighted(true); graphicView->drawEntity(targetEntity); + // setStatus(SetReferencePoint); ////////////////////////////////////////2006/06/15 graphicView->redraw(); diff --git a/librecad/src/actions/rs_actionpolylinesegment.h b/librecad/src/actions/rs_actionpolylinesegment.h index 3c2ee21b60..4c1f79140f 100644 --- a/librecad/src/actions/rs_actionpolylinesegment.h +++ b/librecad/src/actions/rs_actionpolylinesegment.h @@ -37,24 +37,21 @@ class RS_Polyline; */ class RS_ActionPolylineSegment : public RS_PreviewActionInterface { Q_OBJECT -public: /** * Action States. */ enum Status { - ChooseEntity /**< Choosing one of the polyline segments. */ + ChooseEntity = 0 /**< Choosing one of the polyline segments. */ }; public: RS_ActionPolylineSegment(RS_EntityContainer& container, RS_GraphicView& graphicView); - ~RS_ActionPolylineSegment()=default; virtual void init(int status=0); virtual void trigger(); - virtual void mouseMoveEvent(QMouseEvent* e); virtual void mouseReleaseEvent(QMouseEvent* e); virtual void updateMouseButtonHints();