]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondrawcircle.cpp
Phase two of adding polyline functionality...
[architektonas] / src / actions / actiondrawcircle.cpp
index 7c19be06412e87f7781e5eea632c0b239fafd763..9f64a0ee1c23ab2b13ac7838e50964ecc9c5a7c8 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 "actiondrawcircle.h"
@@ -59,19 +60,21 @@ void ActionDrawCircle::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->preview.clear();   // hm.
+//     deleteSnapper();
+//     Vector rz = graphicView->getRelativeZero();
+//     graphicView->moveRelativeZero(Vector(0.0, 0.0));
+//     graphicView->drawEntity(circle);
        graphicView->moveRelativeZero(circle->getCenter());
-       drawSnapper();
+//     drawSnapper();
+       graphicView->redraw();
 
        setStatus(SetCenter);
        reset();
@@ -92,18 +95,16 @@ void ActionDrawCircle::mouseMoveEvent(QMouseEvent * e)
                break;
 
        case SetRadius:
-
                if (data.center.valid)
                {
                        data.radius = data.center.distanceTo(mouse);
-                       deletePreview();
-                       clearPreview();
-//                     preview->addEntity(new Circle(preview, data));
-                       drawPreview();
+                       graphicView->preview.clear();
+                       graphicView->preview.addEntity(new Circle(&(graphicView->preview), data));
                }
                break;
        }
 
+       graphicView->redraw();
        DEBUG->print("ActionDrawCircle::mouseMoveEvent end");
 }
 
@@ -116,9 +117,13 @@ void ActionDrawCircle::mouseReleaseEvent(QMouseEvent * e)
        }
        else if (e->button() == Qt::RightButton)
        {
-               deletePreview();
-               deleteSnapper();
+//             deletePreview();
+//             deleteSnapper();
+// //Is this necessary? Or should the base class take care of this kind of crap?
+//             graphicView->preview.clear();
                init(getStatus() - 1);
+               // Looks like we need at least to redraw... Though shouldn't base class do it???
+               graphicView->redraw();
        }
 }
 
@@ -138,14 +143,13 @@ void ActionDrawCircle::coordinateEvent(Vector * e)
                break;
 
        case SetRadius:
-
                if (data.center.valid)
                {
                        graphicView->moveRelativeZero(mouse);
                        data.radius = data.center.distanceTo(mouse);
                        trigger();
                }
-               //setStatus(SetCenter);
+
                break;
 
        default: