// Part of the Architektonas Project
// Originally part of QCad Community Edition by Andrew Mustun
// Extensively rewritten and refactored by James L. Hammons
-// (C) 2010 Underground Software
+// Portions copyright (C) 2001-2003 RibbonSoft
+// Copyright (C) 2010 Underground Software
+// See the README and GPLv2 files for licensing and warranty information
//
// JLH = James L. Hammons <jlhamm@acm.org>
//
container, graphicView)
{
RS_DEBUG->print("ActionDefault::ActionDefault");
+ //hm.
+ graphicView.snapper.SetVisible();
+ graphicView.preview.SetVisible();
RS_DEBUG->print("ActionDefault::ActionDefault: OK");
}
ActionInterface::init(status);
v1 = v2 = Vector(false);
-// snapMode = RS2::SnapFree;
-// snapRes = RS2::RestrictNothing;
+ graphicView->snapper.setSnapMode(RS2::SnapFree);
+ graphicView->snapper.setSnapRestriction(RS2::RestrictNothing);
restrBak = RS2::RestrictNothing;
RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
+//hm. Nope.
+// graphicView->snapper.SetVisible();
+// graphicView->preview.SetVisible();
RS_DEBUG->print("ActionDefault::init: OK");
}
{
if (e->key() == Qt::Key_Shift)
{
-// restrBak = snapRes;
-// setSnapRestriction(RS2::RestrictOrthogonal);
+ restrBak = graphicView->snapper.getSnapRestriction();
+ graphicView->snapper.setSnapRestriction(RS2::RestrictOrthogonal);
}
}
void ActionDefault::keyReleaseEvent(QKeyEvent * e)
{
-// if (e->key() == Qt::Key_Shift)
-// setSnapRestriction(restrBak);
+ if (e->key() == Qt::Key_Shift)
+ graphicView->snapper.setSnapRestriction(restrBak);
}
void ActionDefault::mouseMoveEvent(QMouseEvent * e)
if (ref.valid && graphicView->toGuiDX(dist) < 8)
{
- RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
- "moving reference point");
+ RS_DEBUG->print("ActionDefault::mouseMoveEvent: moving reference point");
setStatus(MovingRef);
v1 = ref;
graphicView->moveRelativeZero(v1);
if (en && en->isSelected())
{
- RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
- "moving entity");
+ RS_DEBUG->print("ActionDefault::mouseMoveEvent: moving entity");
setStatus(Moving);
v1 = en->getNearestRef(v1);
graphicView->moveRelativeZero(v1);
case MovingRef:
v2 = snapPoint(e);
-// deletePreview();
// clearPreview();
// preview->addSelectionFrom(*container);
// preview->moveRef(v1, v2 - v1);
// drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addSelectionFrom(*container);
+ graphicView->preview.moveRef(v1, v2 -v1);
+ graphicView->snapper.SetVisible();
+ graphicView->preview.SetVisible();
+ graphicView->redraw();
break;
case Moving:
v2 = snapPoint(e);
-// deletePreview();
// clearPreview();
// preview->addSelectionFrom(*container);
// preview->move(v2 - v1);
// drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addSelectionFrom(*container);
+ graphicView->preview.move(v2 -v1);
+ graphicView->snapper.SetVisible();
+ graphicView->preview.SetVisible();
+ graphicView->redraw();
break;
case SetCorner2:
{
v2 = mouse;
-// deletePreview();
-// clearPreview();
+ graphicView->preview.clear();
-// 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();
+ graphicView->preview.addEntity(new RS_Line(&(graphicView->preview),
+ RS_LineData(Vector(v1.x, v1.y), Vector(v2.x, v1.y))));
+ graphicView->preview.addEntity(new RS_Line(&(graphicView->preview),
+ RS_LineData(Vector(v2.x, v1.y), Vector(v2.x, v2.y))));
+ graphicView->preview.addEntity(new RS_Line(&(graphicView->preview),
+ RS_LineData(Vector(v2.x, v2.y), Vector(v1.x, v2.y))));
+ graphicView->preview.addEntity(new RS_Line(&(graphicView->preview),
+ RS_LineData(Vector(v1.x, v2.y), Vector(v1.x, v1.y))));
+
+ graphicView->preview.SetVisible();
+ graphicView->redraw();
}
default:
else
setStatus(SetCorner2);
}
- break;
+ break;
case SetCorner2:
{
// deleteSnapper();
// deletePreview();
// clearPreview();
+ graphicView->preview.SetVisible(false);
bool cross = (v2.y > v1.y);
RS_Selection s(*container, graphicView);
setStatus(Neutral);
e->accept();
}
- break;
+ break;
default:
+ // Was either moving entity or point, so clear that shiatsu
+ graphicView->snapper.SetVisible(false);
+ graphicView->preview.SetVisible(false);
+ graphicView->redraw();
break;
}
}