]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondrawlineparallel.cpp
Still in the middle of fixing preview/snapper rendering...
[architektonas] / src / actions / actiondrawlineparallel.cpp
index 3d1c0ff96ae5f31d1bf40c46ddea05133ab62017..5ed49a9a692ca475310e8e4aaacb5634f3f1b350 100644 (file)
@@ -12,6 +12,7 @@
 // Who  When        What
 // ---  ----------  -----------------------------------------------------------
 // JLH  05/22/2010  Added this text. :-)
+// JLH  08/19/2010  Fix rendering for new (correct) rendering path
 //
 
 #include "actiondrawlineparallel.h"
 #include "rs_preview.h"
 
 ActionDrawLineParallel::ActionDrawLineParallel(RS_EntityContainer & container,
-       GraphicView & graphicView): ActionInterface("Draw Parallels",
-       container, graphicView)
+       GraphicView & graphicView):
+       ActionInterface("Draw Parallels", container, graphicView),
+       parallel(NULL), distance(1.0), number(1), coord(Vector(false)), entity(NULL)
 {
-       parallel = NULL;
-       entity = NULL;
-       distance = 1.0;
-       number = 1;
-       coord = Vector(false);
+       graphicView.snapper.SetVisible(false);
 }
 
 ActionDrawLineParallel::~ActionDrawLineParallel()
@@ -48,12 +46,14 @@ ActionDrawLineParallel::~ActionDrawLineParallel()
 void ActionDrawLineParallel::trigger()
 {
        ActionInterface::trigger();
-
        RS_Creation creation(container, graphicView);
        RS_Entity * e = creation.createParallel(coord, distance, number, entity);
 
        if (!e)
                RS_DEBUG->print("ActionDrawLineParallel::trigger: No parallels added\n");
+
+       graphicView->preview.clear();
+       graphicView->redraw();
 }
 
 void ActionDrawLineParallel::mouseMoveEvent(QMouseEvent * e)
@@ -66,13 +66,20 @@ void ActionDrawLineParallel::mouseMoveEvent(QMouseEvent * e)
        {
        case SetEntity:
        {
+#if 0
                deletePreview();
                clearPreview();
-//             RS_Creation creation(preview, NULL, false);
-//             creation.createParallel(coord, distance, number, entity);
+               RS_Creation creation(preview, NULL, false);
+               creation.createParallel(coord, distance, number, entity);
                drawPreview();
+#else
+               graphicView->preview.clear();
+               RS_Creation creation(&(graphicView->preview), NULL, false);
+               creation.createParallel(coord, distance, number, entity);
+               graphicView->redraw();
+#endif
        }
-       break;
+               break;
 
        default:
                break;
@@ -91,7 +98,7 @@ void ActionDrawLineParallel::mouseReleaseEvent(QMouseEvent * e)
 
 void ActionDrawLineParallel::updateMouseButtonHints()
 {
-       if (RS_DIALOGFACTORY != NULL)
+       if (RS_DIALOGFACTORY)
        {
                switch (getStatus())
                {
@@ -117,7 +124,7 @@ void ActionDrawLineParallel::showOptions()
 {
        ActionInterface::showOptions();
 
-       if (RS_DIALOGFACTORY != NULL)
+       if (RS_DIALOGFACTORY)
                RS_DIALOGFACTORY->requestOptions(this, true);
 
        updateMouseButtonHints();
@@ -127,7 +134,7 @@ void ActionDrawLineParallel::hideOptions()
 {
        ActionInterface::hideOptions();
 
-       if (RS_DIALOGFACTORY != NULL)
+       if (RS_DIALOGFACTORY)
                RS_DIALOGFACTORY->requestOptions(this, false);
 }
 
@@ -137,7 +144,7 @@ void ActionDrawLineParallel::commandEvent(RS_CommandEvent * e)
 
        if (checkCommand("help", c))
        {
-               if (RS_DIALOGFACTORY != NULL)
+               if (RS_DIALOGFACTORY)
                        RS_DIALOGFACTORY->commandMessage(msgAvailableCommands()
                                + getAvailableCommands().join(", "));
 
@@ -151,13 +158,13 @@ void ActionDrawLineParallel::commandEvent(RS_CommandEvent * e)
                {
                        finish();
                        graphicView->setCurrentAction(new ActionDrawLineParallelThrough(*container,
-                                       *graphicView));
+                               *graphicView));
                }
                else if (checkCommand("number", c))
                {
-                       deleteSnapper();
-                       deletePreview();
-                       clearPreview();
+//                     deleteSnapper();
+//                     deletePreview();
+//                     clearPreview();
                        setStatus(SetNumber);
                }
                else
@@ -167,7 +174,7 @@ void ActionDrawLineParallel::commandEvent(RS_CommandEvent * e)
 
                        if (ok && d > 1.0e-10)
                                distance = d;
-                       else    if (RS_DIALOGFACTORY != NULL)
+                       else if (RS_DIALOGFACTORY)
                                RS_DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
 
 
@@ -177,6 +184,7 @@ void ActionDrawLineParallel::commandEvent(RS_CommandEvent * e)
                        updateMouseButtonHints();
                        //setStatus(SetEntity);
                }
+
                break;
 
        case SetNumber:
@@ -188,20 +196,18 @@ void ActionDrawLineParallel::commandEvent(RS_CommandEvent * e)
                {
                        if (n > 0 && n < 100)
                                number = n;
-                       else    if (RS_DIALOGFACTORY != NULL)
+                       else if (RS_DIALOGFACTORY)
                                RS_DIALOGFACTORY->commandMessage(tr("Not a valid number. Try 1..99"));
-
                }
-               else    if (RS_DIALOGFACTORY != NULL)
+               else if (RS_DIALOGFACTORY)
                        RS_DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
 
-
-               if (RS_DIALOGFACTORY != NULL)
+               if (RS_DIALOGFACTORY)
                        RS_DIALOGFACTORY->requestOptions(this, true, true);
 
                setStatus(SetEntity);
        }
-       break;
+               break;
 
        default:
                break;
@@ -233,7 +239,7 @@ void ActionDrawLineParallel::updateMouseCursor()
 
 void ActionDrawLineParallel::updateToolBar()
 {
-       if (RS_DIALOGFACTORY != NULL)
+       if (RS_DIALOGFACTORY)
                RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarLines);
 }