-// rs_actiondefault.cpp
+// actiondefault.cpp
//
// Part of the Architektonas Project
// Originally part of QCad Community Edition by Andrew Mustun
// JLH 06/03/2010 Added this text. :-)
//
-#include "rs_actiondefault.h"
+#include "actiondefault.h"
#include "rs.h"
#include "rs_commandevent.h"
/**
* Constructor.
*/
-RS_ActionDefault::RS_ActionDefault(RS_EntityContainer & container, GraphicView & graphicView): RS_PreviewActionInterface("Default",
- container, graphicView)
+ActionDefault::ActionDefault(RS_EntityContainer & container,
+ GraphicView & graphicView): ActionInterface("Default",
+ container, graphicView)
{
- RS_DEBUG->print("RS_ActionDefault::RS_ActionDefault");
- RS_DEBUG->print("RS_ActionDefault::RS_ActionDefault: OK");
+ RS_DEBUG->print("ActionDefault::ActionDefault");
+ RS_DEBUG->print("ActionDefault::ActionDefault: OK");
}
-RS_ActionDefault::~RS_ActionDefault()
+ActionDefault::~ActionDefault()
{
}
-void RS_ActionDefault::init(int status)
+/*virtual*/ RS2::ActionType ActionDefault::rtti()
{
- RS_DEBUG->print("RS_ActionDefault::init");
+ return RS2::ActionDefault;
+}
+
+void ActionDefault::init(int status /*= 0*/)
+{
+ RS_DEBUG->print("ActionDefault::init");
- RS_PreviewActionInterface::init(status);
+ ActionInterface::init(status);
v1 = v2 = Vector(false);
- snapMode = RS2::SnapFree;
- snapRes = RS2::RestrictNothing;
+// snapMode = RS2::SnapFree;
+// snapRes = RS2::RestrictNothing;
restrBak = RS2::RestrictNothing;
RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
- RS_DEBUG->print("RS_ActionDefault::init: OK");
+ RS_DEBUG->print("ActionDefault::init: OK");
}
-void RS_ActionDefault::trigger()
+void ActionDefault::trigger()
{
- RS_PreviewActionInterface::trigger();
+ ActionInterface::trigger();
}
-void RS_ActionDefault::keyPressEvent(QKeyEvent * e)
+void ActionDefault::keyPressEvent(QKeyEvent * e)
{
if (e->key() == Qt::Key_Shift)
{
- restrBak = snapRes;
- setSnapRestriction(RS2::RestrictOrthogonal);
+// restrBak = snapRes;
+// setSnapRestriction(RS2::RestrictOrthogonal);
}
}
-void RS_ActionDefault::keyReleaseEvent(QKeyEvent * e)
+void ActionDefault::keyReleaseEvent(QKeyEvent * e)
{
- if (e->key() == Qt::Key_Shift)
- setSnapRestriction(restrBak);
+// if (e->key() == Qt::Key_Shift)
+// setSnapRestriction(restrBak);
}
-void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
+void ActionDefault::mouseMoveEvent(QMouseEvent * e)
{
Vector mouse = graphicView->toGraph(Vector(e->x(), e->y()));
Vector relMouse = mouse - graphicView->getRelativeZero();
switch (getStatus())
{
case Dragging:
- //v2 = graphicView->toGraph(e->x(), e->y());
v2 = mouse;
if (graphicView->toGuiDX(v1.distanceTo(v2)) > 10)
double dist;
Vector ref = container->getNearestSelectedRef(v1, &dist);
- if (ref.valid == true && graphicView->toGuiDX(dist) < 8)
+ if (ref.valid && graphicView->toGuiDX(dist) < 8)
{
- RS_DEBUG->print("RS_ActionDefault::mouseMoveEvent: "
+ RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
"moving reference point");
setStatus(MovingRef);
v1 = ref;
else
{
// test for an entity to drag:
- RS_Entity * en = catchEntity(v1);
+ RS_Entity * en = graphicView->snapper.catchEntity(v1);
- if (en != NULL && en->isSelected())
+ if (en && en->isSelected())
{
- RS_DEBUG->print("RS_ActionDefault::mouseMoveEvent: "
+ RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
"moving entity");
setStatus(Moving);
v1 = en->getNearestRef(v1);
setStatus(SetCorner2);
}
}
+
break;
case MovingRef:
v2 = snapPoint(e);
- deletePreview();
- clearPreview();
- preview->addSelectionFrom(*container);
- preview->moveRef(v1, v2 - v1);
- drawPreview();
+// deletePreview();
+// clearPreview();
+// preview->addSelectionFrom(*container);
+// preview->moveRef(v1, v2 - v1);
+// drawPreview();
break;
case Moving:
v2 = snapPoint(e);
- deletePreview();
- clearPreview();
- preview->addSelectionFrom(*container);
- preview->move(v2 - v1);
- drawPreview();
+// deletePreview();
+// clearPreview();
+// preview->addSelectionFrom(*container);
+// preview->move(v2 - v1);
+// drawPreview();
break;
case SetCorner2:
-
if (v1.valid)
{
- //v2 = snapPoint(e);
v2 = mouse;
- //deleteSnapper();
- deletePreview();
- clearPreview();
-
- preview->addEntity(new RS_Line(preview,
- RS_LineData(Vector(v1.x, v1.y), Vector(v2.x, v1.y))));
- preview->addEntity(new RS_Line(preview,
- RS_LineData(Vector(v2.x, v1.y), Vector(v2.x, v2.y))));
- preview->addEntity(new RS_Line(preview,
- RS_LineData(Vector(v2.x, v2.y), Vector(v1.x, v2.y))));
- preview->addEntity(new RS_Line(preview,
- RS_LineData(Vector(v1.x, v2.y), Vector(v1.x, v1.y))));
- drawPreview();
+// deletePreview();
+// clearPreview();
+
+// preview->addEntity(new RS_Line(preview,
+// RS_LineData(Vector(v1.x, v1.y), Vector(v2.x, v1.y))));
+// preview->addEntity(new RS_Line(preview,
+// RS_LineData(Vector(v2.x, v1.y), Vector(v2.x, v2.y))));
+// preview->addEntity(new RS_Line(preview,
+// RS_LineData(Vector(v2.x, v2.y), Vector(v1.x, v2.y))));
+// preview->addEntity(new RS_Line(preview,
+// RS_LineData(Vector(v1.x, v2.y), Vector(v1.x, v1.y))));
+// drawPreview();
}
default:
}
}
-void RS_ActionDefault::mousePressEvent(QMouseEvent * e)
+void ActionDefault::mousePressEvent(QMouseEvent * e)
{
if (e->button() == Qt::LeftButton)
{
case Moving:
{
v2 = snapPoint(e);
- deleteSnapper();
- deletePreview();
- clearPreview();
+// deleteSnapper();
+// deletePreview();
+// clearPreview();
RS_Modification m(*container, graphicView);
RS_MoveData data;
data.number = 0;
case MovingRef:
{
v2 = snapPoint(e);
- deleteSnapper();
- deletePreview();
- clearPreview();
+// deleteSnapper();
+// deletePreview();
+// clearPreview();
RS_Modification m(*container, graphicView);
RS_MoveRefData data;
data.ref = v1;
data.offset = v2 - v1;
m.moveRef(data);
- //container->moveSelectedRef(v1, v2-v2);
setStatus(Neutral);
RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
}
}
-void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
+void ActionDefault::mouseReleaseEvent(QMouseEvent * e)
{
- RS_DEBUG->print("RS_ActionDefault::mouseReleaseEvent()");
+ RS_DEBUG->print("ActionDefault::mouseReleaseEvent()");
if (e->button() == Qt::LeftButton)
{
case Dragging:
{
// select single entity:
- RS_Entity * en = catchEntity(e);
+ RS_Entity * en = graphicView->snapper.catchEntity(e);
- if (en != NULL)
+ if (en)
{
- deleteSnapper();
- deletePreview();
- clearPreview();
+// deleteSnapper();
+// deletePreview();
+// clearPreview();
RS_Selection s(*container, graphicView);
s.selectSingle(en);
RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
- //deleteSnapper();
e->accept();
setStatus(Neutral);
}
case SetCorner2:
{
- //v2 = snapPoint(e);
v2 = graphicView->toGraph(e->x(), e->y());
// select window:
- //if (graphicView->toGuiDX(v1.distanceTo(v2))>20) {
- deleteSnapper();
- deletePreview();
- clearPreview();
+// deleteSnapper();
+// deletePreview();
+// clearPreview();
bool cross = (v2.y > v1.y);
RS_Selection s(*container, graphicView);
setStatus(Neutral);
e->accept();
- //}
}
break;
case SetCorner2:
case Moving:
case MovingRef:
- deletePreview();
- clearPreview();
- deleteSnapper();
+// deletePreview();
+// clearPreview();
+// deleteSnapper();
setStatus(Neutral);
RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
e->accept();
break;
default:
- deleteSnapper();
+ graphicView->snapper.SetVisible(false);
+ graphicView->preview.SetVisible(false);
RS_DIALOGFACTORY->requestPreviousMenu();
e->accept();
break;
}
}
-void RS_ActionDefault::commandEvent(RS_CommandEvent * e)
+void ActionDefault::commandEvent(RS_CommandEvent * e)
{
QString c = e->getCommand().toLower();
-
- // if the current action can't deal with the command,
- // it might be intended to launch a new command
- //if (!e.isAccepted()) {
- // command for new action:
- //RS2::ActionType type = RS_COMMANDS->cmdToAction(c);
- //if (type!=RS2::ActionNone) {
- //graphicView->setCurrentAction(type);
- //return true;
- //}
- //}
}
-QStringList RS_ActionDefault::getAvailableCommands()
+QStringList ActionDefault::getAvailableCommands()
{
QStringList cmd;
- //cmd += "line";
- //cmd += "rectangle";
-
return cmd;
}
-void RS_ActionDefault::updateMouseButtonHints()
+void ActionDefault::updateMouseButtonHints()
{
switch (getStatus())
{
break;
case SetCorner2:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Choose second edge"), tr("Back"));
+ RS_DIALOGFACTORY->updateMouseWidget(tr("Drag to second point"), tr("Back"));
break;
default:
}
}
-void RS_ActionDefault::updateMouseCursor()
+void ActionDefault::updateMouseCursor()
{
switch (getStatus())
{
}
}
-void RS_ActionDefault::updateToolBar()
+void ActionDefault::updateToolBar()
{
- //RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
switch (getStatus())
{
case Neutral:
- // would switch back to main in edit / measure / .. modes
- //RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
break;
case Moving:
break;
}
}
-