3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 05/22/2010 Added this text. :-)
15 #include "actiondrawpoint.h"
17 #include "rs_commandevent.h"
18 #include "rs_dialogfactory.h"
19 #include "graphicview.h"
20 #include "rs_preview.h"
22 ActionDrawPoint::ActionDrawPoint(RS_EntityContainer & container, GraphicView & graphicView):
23 ActionInterface("Draw Points", container, graphicView)
27 ActionDrawPoint::~ActionDrawPoint()
31 void ActionDrawPoint::trigger()
35 RS_Point * point = new RS_Point(container, RS_PointData(pt));
36 container->addEntity(point);
40 document->startUndoCycle();
41 document->addUndoable(point);
42 document->endUndoCycle();
46 graphicView->moveRelativeZero(Vector(0.0, 0.0));
47 graphicView->drawEntity(point);
48 graphicView->moveRelativeZero(pt);
53 void ActionDrawPoint::mouseMoveEvent(QMouseEvent * e)
58 void ActionDrawPoint::mouseReleaseEvent(QMouseEvent * e)
60 if (e->button() == Qt::LeftButton)
62 Vector ce(snapPoint(e));
65 else if (e->button() == Qt::RightButton)
68 init(getStatus() - 1);
72 void ActionDrawPoint::coordinateEvent(Vector * e)
83 void ActionDrawPoint::commandEvent(RS_CommandEvent * e)
85 QString c = e->getCommand().toLower();
87 if (checkCommand("help", c))
89 if (RS_DIALOGFACTORY != NULL)
90 RS_DIALOGFACTORY->commandMessage(msgAvailableCommands()
91 + getAvailableCommands().join(", "));
97 QStringList ActionDrawPoint::getAvailableCommands()
103 void ActionDrawPoint::updateMouseButtonHints()
105 if (RS_DIALOGFACTORY != NULL)
110 RS_DIALOGFACTORY->updateMouseWidget(tr("Specify location"), tr("Cancel"));
114 RS_DIALOGFACTORY->updateMouseWidget("", "");
120 void ActionDrawPoint::updateMouseCursor()
122 graphicView->setMouseCursor(RS2::CadCursor);
125 void ActionDrawPoint::updateToolBar()
127 if (RS_DIALOGFACTORY != NULL)
130 RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
132 RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarPoints);