]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondrawcirclecr.cpp
Fixed hatch dialog, added snap/preview to circle tools.
[architektonas] / src / actions / actiondrawcirclecr.cpp
index dfd1150790067a17b02a030df4999069639fc70b..daebf4cc9cd3afc40220a934e22741e143690d91 100644 (file)
@@ -12,6 +12,7 @@
 // Who  When        What
 // ---  ----------  -----------------------------------------------------------
 // JLH  06/03/2010  Added this text. :-)
+// JLH  09/11/2010  Fixed preview/snapper rendering.
 //
 
 #include "actiondrawcirclecr.h"
@@ -25,8 +26,9 @@
 /**
  * Constructor.
  */
-ActionDrawCircleCR::ActionDrawCircleCR(EntityContainer & container, GraphicView & graphicView): ActionInterface("Draw circles CR",
-               container, graphicView)
+ActionDrawCircleCR::ActionDrawCircleCR(EntityContainer & container,
+       GraphicView & graphicView):
+       ActionInterface("Draw circles CR", container, graphicView)
 {
        reset();
 }
@@ -60,19 +62,21 @@ void ActionDrawCircleCR::trigger()
        container->addEntity(circle);
 
        // upd. undo list:
-       if (document != NULL)
+       if (document)
        {
                document->startUndoCycle();
                document->addUndoable(circle);
                document->endUndoCycle();
        }
 
-       deleteSnapper();
-       Vector rz = graphicView->getRelativeZero();
-       graphicView->moveRelativeZero(Vector(0.0, 0.0));
-       graphicView->drawEntity(circle);
-       graphicView->moveRelativeZero(circle->getCenter());
-       drawSnapper();
+//     deleteSnapper();
+//     Vector rz = graphicView->getRelativeZero();
+//     graphicView->moveRelativeZero(Vector(0.0, 0.0));
+//     graphicView->drawEntity(circle);
+//     graphicView->moveRelativeZero(circle->getCenter());
+//     drawSnapper();
+       graphicView->preview.clear();   // hm.
+       graphicView->redraw();
 
        setStatus(SetCenter);
 
@@ -88,13 +92,16 @@ void ActionDrawCircleCR::mouseMoveEvent(QMouseEvent * e)
        {
        case SetCenter:
                data.center = mouse;
-               deletePreview();
-               clearPreview();
+//             deletePreview();
+//             clearPreview();
 //             preview->addEntity(new Circle(preview, data));
-               drawPreview();
+//             drawPreview();
+               graphicView->preview.clear();
+               graphicView->preview.addEntity(new Circle(&(graphicView->preview), data));
                break;
        }
 
+       graphicView->redraw();
        DEBUG->print("ActionDrawCircleCR::mouseMoveEvent end");
 }
 
@@ -107,9 +114,10 @@ void ActionDrawCircleCR::mouseReleaseEvent(QMouseEvent * e)
        }
        else if (e->button() == Qt::RightButton)
        {
-               deletePreview();
-               deleteSnapper();
+//             deletePreview();
+//             deleteSnapper();
                init(getStatus() - 1);
+               graphicView->redraw();  // hm.
        }
 }