1 // rs_actioneditcopy.cpp
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 "rs_actioneditcopy.h"
17 #include "rs_dialogfactory.h"
18 #include "rs_modification.h"
23 * @param undo true for undo and false for redo.
25 RS_ActionEditCopy::RS_ActionEditCopy(bool copy, RS_EntityContainer & container, GraphicView & graphicView):
26 RS_ActionInterface("Edit Copy", container, graphicView)
31 RS_ActionEditCopy::~RS_ActionEditCopy()
35 void RS_ActionEditCopy::init(int status)
37 RS_ActionInterface::init(status);
41 void RS_ActionEditCopy::trigger()
45 RS_Modification m(*container, graphicView);
46 m.copy(referencePoint, !copy);
48 //graphicView->redraw();
50 graphicView->killSelectActions();
51 //init(getStatus()-1);
52 RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
55 void RS_ActionEditCopy::mouseMoveEvent(QMouseEvent * e)
60 void RS_ActionEditCopy::mouseReleaseEvent(QMouseEvent * e)
62 if (e->button() == Qt::LeftButton)
64 Vector ce(snapPoint(e));
67 else if (e->button() == Qt::RightButton)
70 init(getStatus() - 1);
74 void RS_ActionEditCopy::coordinateEvent(Vector * e)
83 void RS_ActionEditCopy::updateMouseButtonHints()
87 case SetReferencePoint:
88 RS_DIALOGFACTORY->updateMouseWidget(tr("Specify reference point"),
93 RS_DIALOGFACTORY->updateMouseWidget("", "");
98 void RS_ActionEditCopy::updateMouseCursor()
100 graphicView->setMouseCursor(RS2::CadCursor);
103 void RS_ActionEditCopy::updateToolBar()
106 RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
108 RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);