X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Factiondefault.cpp;h=c58d2ba172e2d75ff7cf85a2469a2e501c951f96;hb=d86611a87f46873819dfae63f1112b248ba9aca1;hp=4385c7c0dd9f775551ff4613dbbe9e612ece7b03;hpb=d774c2655ba2c3657a565f325411144452392277;p=architektonas diff --git a/src/actions/actiondefault.cpp b/src/actions/actiondefault.cpp index 4385c7c..c58d2ba 100644 --- a/src/actions/actiondefault.cpp +++ b/src/actions/actiondefault.cpp @@ -3,7 +3,9 @@ // 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 // @@ -31,6 +33,9 @@ ActionDefault::ActionDefault(RS_EntityContainer & container, container, graphicView) { RS_DEBUG->print("ActionDefault::ActionDefault"); + //hm. + graphicView.snapper.SetVisible(); + graphicView.preview.SetVisible(); RS_DEBUG->print("ActionDefault::ActionDefault: OK"); } @@ -49,10 +54,13 @@ void ActionDefault::init(int status /*= 0*/) 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"); } @@ -66,15 +74,15 @@ void ActionDefault::keyPressEvent(QKeyEvent * e) { 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) @@ -97,8 +105,7 @@ 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); @@ -110,8 +117,7 @@ void ActionDefault::mouseMoveEvent(QMouseEvent * e) 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); @@ -127,21 +133,31 @@ void ActionDefault::mouseMoveEvent(QMouseEvent * e) 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: @@ -149,18 +165,19 @@ void ActionDefault::mouseMoveEvent(QMouseEvent * e) { 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: @@ -253,7 +270,7 @@ void ActionDefault::mouseReleaseEvent(QMouseEvent * e) else setStatus(SetCorner2); } - break; + break; case SetCorner2: { @@ -263,6 +280,7 @@ void ActionDefault::mouseReleaseEvent(QMouseEvent * e) // deleteSnapper(); // deletePreview(); // clearPreview(); + graphicView->preview.SetVisible(false); bool cross = (v2.y > v1.y); RS_Selection s(*container, graphicView); @@ -273,9 +291,13 @@ void ActionDefault::mouseReleaseEvent(QMouseEvent * e) 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; } }