X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Factiondefault.cpp;h=19e0bc1864d352cd2c626c09216d4a010d530ec0;hb=48105dec9198cf5a81dd9286010d0d45e28f70c3;hp=4385c7c0dd9f775551ff4613dbbe9e612ece7b03;hpb=d774c2655ba2c3657a565f325411144452392277;p=architektonas diff --git a/src/actions/actiondefault.cpp b/src/actions/actiondefault.cpp index 4385c7c..19e0bc1 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 // @@ -16,6 +18,7 @@ #include "rs.h" #include "rs_commandevent.h" +#include "rs_debug.h" #include "rs_dialogfactory.h" #include "rs_line.h" #include "rs_modification.h" @@ -31,6 +34,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 +55,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 +75,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 +106,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 +118,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 +134,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 +166,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 +271,7 @@ void ActionDefault::mouseReleaseEvent(QMouseEvent * e) else setStatus(SetCorner2); } - break; + break; case SetCorner2: { @@ -263,6 +281,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 +292,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; } }