]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondimleader.cpp
Phase two of adding polyline functionality...
[architektonas] / src / actions / actiondimleader.cpp
index f65ff3192240e4f884381be10541baa88097b7de..52165067c872072bc6e80fdf6729c1aaeaf0bf84 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 "actiondimleader.h"
@@ -39,9 +40,6 @@ ActionDimLeader::~ActionDimLeader()
 
 void ActionDimLeader::reset()
 {
-       //data = LineData(Vector(false), Vector(false));
-       //start = Vector(false);
-       //history.clear();
        points.clear();
 }
 
@@ -62,29 +60,28 @@ void ActionDimLeader::trigger()
                leader->setLayerToActive();
                leader->setPenToActive();
 
-//             for(Vector * v=points.first(); v!=NULL; v=points.next())
-//                     leader->addVertex(*v);
-               for (int i = 0; i < points.size(); i++)
+               for(int i=0; i<points.size(); i++)
                        leader->addVertex(*(points[i]));
 
                container->addEntity(leader);
 
                // upd. undo list:
-               if (document != NULL)
+               if (document)
                {
                        document->startUndoCycle();
                        document->addUndoable(leader);
                        document->endUndoCycle();
                }
 
-               deletePreview();
-               clearPreview();
-               deleteSnapper();
-               Vector rz = graphicView->getRelativeZero();
-               graphicView->moveRelativeZero(Vector(0.0, 0.0));
-               graphicView->drawEntity(leader);
-               graphicView->moveRelativeZero(rz);
-               //drawSnapper();
+//             deletePreview();
+//             clearPreview();
+//             deleteSnapper();
+//             Vector rz = graphicView->getRelativeZero();
+//             graphicView->moveRelativeZero(Vector(0.0, 0.0));
+//             graphicView->drawEntity(leader);
+//             graphicView->moveRelativeZero(rz);
+               graphicView->preview.clear();   //hm.
+               graphicView->redraw();
 
                DEBUG->print("ActionDimLeader::trigger(): leader added: %d", leader->getId());
        }
@@ -98,8 +95,9 @@ void ActionDimLeader::mouseMoveEvent(QMouseEvent * e)
 
        if (getStatus() == SetEndpoint && points.last() != NULL)
        {
-               deletePreview();
-               clearPreview();
+//             deletePreview();
+//             clearPreview();
+               graphicView->preview.clear();
 
                // fill in lines that were already set:
                Vector last(false);
@@ -110,15 +108,20 @@ void ActionDimLeader::mouseMoveEvent(QMouseEvent * e)
 
 //                     if (last.valid)
 //                             preview->addEntity(new Line(preview, LineData(last, *v)));
+                       if (last.valid)
+                               graphicView->preview.addEntity(new Line(&(graphicView->preview), LineData(last, *v)));
 
                        last = *v;
                }
 
                Vector p = *points.last();
 //             preview->addEntity(new Line(preview, LineData(p, mouse)));
-               drawPreview();
+//             drawPreview();
+               graphicView->preview.addEntity(new Line(&(graphicView->preview), LineData(p, mouse)));
        }
 
+       graphicView->redraw();
+
        DEBUG->print("ActionDimLeader::mouseMoveEvent end");
 }
 
@@ -139,9 +142,10 @@ void ActionDimLeader::mouseReleaseEvent(QMouseEvent * e)
                }
                else
                {
-                       deletePreview();
-                       deleteSnapper();
+//                     deletePreview();
+//                     deleteSnapper();
                        init(getStatus() - 1);
+                       graphicView->redraw();  //hm.
                }
        }
 }
@@ -193,7 +197,7 @@ void ActionDimLeader::commandEvent(CommandEvent * e)
 
        if (checkCommand("help", c))
        {
-               if (DIALOGFACTORY != NULL)
+               if (DIALOGFACTORY)
                        DIALOGFACTORY->commandMessage(msgAvailableCommands()
                                + getAvailableCommands().join(", "));