]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondrawcircle3p.cpp
Phase two of adding polyline functionality...
[architektonas] / src / actions / actiondrawcircle3p.cpp
index c836878032af34d5565c7297f10fe5d2c85e3b7e..a20d8f49d533a6fc5269bf5f329d684dbabc6458 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 "actiondrawcircle3p.h"
@@ -21,9 +22,9 @@
 #include "graphicview.h"
 #include "preview.h"
 
-ActionDrawCircle3P::ActionDrawCircle3P(RS_EntityContainer & container,
-       GraphicView & graphicView): ActionInterface("Draw circles",
-       container, graphicView)
+ActionDrawCircle3P::ActionDrawCircle3P(EntityContainer & container,
+       GraphicView & graphicView):
+       ActionInterface("Draw circles", container, graphicView)
 {
        reset();
 }
@@ -50,12 +51,11 @@ void ActionDrawCircle3P::init(int status)
 void ActionDrawCircle3P::trigger()
 {
        ActionInterface::trigger();
-
        preparePreview();
 
        if (data.isValid())
        {
-               RS_Circle * circle = new RS_Circle(container, data);
+               Circle * circle = new Circle(container, data);
                circle->setLayerToActive();
                circle->setPenToActive();
                container->addEntity(circle);
@@ -68,18 +68,20 @@ void ActionDrawCircle3P::trigger()
                        document->endUndoCycle();
                }
 
-               deleteSnapper();
-               Vector rz = graphicView->getRelativeZero();
-               graphicView->moveRelativeZero(Vector(0.0, 0.0));
-               graphicView->drawEntity(circle);
-               graphicView->moveRelativeZero(rz);
-               drawSnapper();
+//             deleteSnapper();
+//             Vector rz = graphicView->getRelativeZero();
+//             graphicView->moveRelativeZero(Vector(0.0, 0.0));
+//             graphicView->drawEntity(circle);
+//             graphicView->moveRelativeZero(rz);
+//             drawSnapper();
+               graphicView->preview.clear();   // hm.
+               graphicView->redraw();
 
                setStatus(SetPoint1);
                reset();
        }
        else
-               RS_DIALOGFACTORY->requestWarningDialog(tr("Invalid circle data."));
+               DIALOGFACTORY->requestWarningDialog(tr("Invalid circle data."));
 }
 
 void ActionDrawCircle3P::preparePreview()
@@ -88,7 +90,7 @@ void ActionDrawCircle3P::preparePreview()
 
        if (point1.valid && point2.valid && point3.valid)
        {
-               RS_Circle circle(NULL, data);
+               Circle circle(NULL, data);
                bool success = circle.createFrom3P(point1, point2, point3);
 
                if (success)
@@ -116,15 +118,19 @@ void ActionDrawCircle3P::mouseMoveEvent(QMouseEvent * e)
 
                if (data.isValid())
                {
-//                     RS_Circle * circle = new RS_Circle(preview, data);
-//
+//                     Circle * circle = new Circle(preview, data);
 //                     deletePreview();
 //                     clearPreview();
 //                     preview->addEntity(circle);
 //                     drawPreview();
+                       graphicView->preview.clear();
+                       graphicView->preview.addEntity(new Circle(&(graphicView->preview), data));
                }
+
                break;
        }
+
+       graphicView->redraw();
 }
 
 void ActionDrawCircle3P::mouseReleaseEvent(QMouseEvent * e)
@@ -136,9 +142,10 @@ void ActionDrawCircle3P::mouseReleaseEvent(QMouseEvent * e)
        }
        else if (e->button() == Qt::RightButton)
        {
-               deletePreview();
-               deleteSnapper();
+//             deletePreview();
+//             deleteSnapper();
                init(getStatus() - 1);
+               graphicView->redraw();  // hm.
        }
 }
 
@@ -173,13 +180,13 @@ void ActionDrawCircle3P::coordinateEvent(Vector * e)
        }
 }
 
-void ActionDrawCircle3P::commandEvent(RS_CommandEvent * e)
+void ActionDrawCircle3P::commandEvent(CommandEvent * e)
 {
        QString c = e->getCommand().toLower();
 
        if (checkCommand("help", c))
        {
-               RS_DIALOGFACTORY->commandMessage(msgAvailableCommands()
+               DIALOGFACTORY->commandMessage(msgAvailableCommands()
                        + getAvailableCommands().join(", "));
                return;
        }
@@ -196,19 +203,19 @@ void ActionDrawCircle3P::updateMouseButtonHints()
        switch (getStatus())
        {
        case SetPoint1:
-               RS_DIALOGFACTORY->updateMouseWidget(tr("Specify first point"), tr("Cancel"));
+               DIALOGFACTORY->updateMouseWidget(tr("Specify first point"), tr("Cancel"));
                break;
 
        case SetPoint2:
-               RS_DIALOGFACTORY->updateMouseWidget(tr("Specify second point"), tr("Back"));
+               DIALOGFACTORY->updateMouseWidget(tr("Specify second point"), tr("Back"));
                break;
 
        case SetPoint3:
-               RS_DIALOGFACTORY->updateMouseWidget(tr("Specify third point"), tr("Back"));
+               DIALOGFACTORY->updateMouseWidget(tr("Specify third point"), tr("Back"));
                break;
 
        default:
-               RS_DIALOGFACTORY->updateMouseWidget("", "");
+               DIALOGFACTORY->updateMouseWidget("", "");
                break;
        }
 }
@@ -221,7 +228,7 @@ void ActionDrawCircle3P::updateMouseCursor()
 void ActionDrawCircle3P::updateToolBar()
 {
        if (!isFinished())
-               RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
+               DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
        else
-               RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarCircles);
+               DIALOGFACTORY->requestToolBar(RS2::ToolBarCircles);
 }