]> Shamusworld >> Repos - architektonas/blobdiff - src/actions/actiondefault.cpp
In the middle of major refactoring...
[architektonas] / src / actions / actiondefault.cpp
similarity index 55%
rename from src/actions/rs_actiondefault.cpp
rename to src/actions/actiondefault.cpp
index e49edd8f877c09da642442a17cedaf8789d34b4b..4385c7c0dd9f775551ff4613dbbe9e612ece7b03 100644 (file)
@@ -1,4 +1,4 @@
-// rs_actiondefault.cpp
+// actiondefault.cpp
 //
 // Part of the Architektonas Project
 // Originally part of QCad Community Edition by Andrew Mustun
@@ -12,7 +12,7 @@
 // JLH  06/03/2010  Added this text. :-)
 //
 
-#include "rs_actiondefault.h"
+#include "actiondefault.h"
 
 #include "rs.h"
 #include "rs_commandevent.h"
 /**
  * Constructor.
  */
-RS_ActionDefault::RS_ActionDefault(RS_EntityContainer & container, GraphicView & graphicView): RS_PreviewActionInterface("Default",
-               container, graphicView)
+ActionDefault::ActionDefault(RS_EntityContainer & container,
+       GraphicView & graphicView): ActionInterface("Default",
+       container, graphicView)
 {
-       RS_DEBUG->print("RS_ActionDefault::RS_ActionDefault");
-       RS_DEBUG->print("RS_ActionDefault::RS_ActionDefault: OK");
+       RS_DEBUG->print("ActionDefault::ActionDefault");
+       RS_DEBUG->print("ActionDefault::ActionDefault: OK");
 }
 
-RS_ActionDefault::~RS_ActionDefault()
+ActionDefault::~ActionDefault()
 {
 }
 
-void RS_ActionDefault::init(int status)
+/*virtual*/ RS2::ActionType ActionDefault::rtti()
 {
-       RS_DEBUG->print("RS_ActionDefault::init");
+       return RS2::ActionDefault;
+}
+
+void ActionDefault::init(int status /*= 0*/)
+{
+       RS_DEBUG->print("ActionDefault::init");
 
-       RS_PreviewActionInterface::init(status);
+       ActionInterface::init(status);
        v1 = v2 = Vector(false);
-       snapMode = RS2::SnapFree;
-       snapRes = RS2::RestrictNothing;
+//     snapMode = RS2::SnapFree;
+//     snapRes = RS2::RestrictNothing;
        restrBak = RS2::RestrictNothing;
        RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
 
-       RS_DEBUG->print("RS_ActionDefault::init: OK");
+       RS_DEBUG->print("ActionDefault::init: OK");
 }
 
-void RS_ActionDefault::trigger()
+void ActionDefault::trigger()
 {
-       RS_PreviewActionInterface::trigger();
+       ActionInterface::trigger();
 }
 
-void RS_ActionDefault::keyPressEvent(QKeyEvent * e)
+void ActionDefault::keyPressEvent(QKeyEvent * e)
 {
        if (e->key() == Qt::Key_Shift)
        {
-               restrBak = snapRes;
-               setSnapRestriction(RS2::RestrictOrthogonal);
+//             restrBak = snapRes;
+//             setSnapRestriction(RS2::RestrictOrthogonal);
        }
 }
 
-void RS_ActionDefault::keyReleaseEvent(QKeyEvent * e)
+void ActionDefault::keyReleaseEvent(QKeyEvent * e)
 {
-       if (e->key() == Qt::Key_Shift)
-               setSnapRestriction(restrBak);
+//     if (e->key() == Qt::Key_Shift)
+//             setSnapRestriction(restrBak);
 }
 
-void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
+void ActionDefault::mouseMoveEvent(QMouseEvent * e)
 {
        Vector mouse = graphicView->toGraph(Vector(e->x(), e->y()));
        Vector relMouse = mouse - graphicView->getRelativeZero();
@@ -81,7 +87,6 @@ void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
        switch (getStatus())
        {
        case Dragging:
-               //v2 = graphicView->toGraph(e->x(), e->y());
                v2 = mouse;
 
                if (graphicView->toGuiDX(v1.distanceTo(v2)) > 10)
@@ -90,9 +95,9 @@ void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
                        double dist;
                        Vector ref = container->getNearestSelectedRef(v1, &dist);
 
-                       if (ref.valid == true && graphicView->toGuiDX(dist) < 8)
+                       if (ref.valid && graphicView->toGuiDX(dist) < 8)
                        {
-                               RS_DEBUG->print("RS_ActionDefault::mouseMoveEvent: "
+                               RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
                                        "moving reference point");
                                setStatus(MovingRef);
                                v1 = ref;
@@ -101,11 +106,11 @@ void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
                        else
                        {
                                // test for an entity to drag:
-                               RS_Entity * en = catchEntity(v1);
+                               RS_Entity * en = graphicView->snapper.catchEntity(v1);
 
-                               if (en != NULL && en->isSelected())
+                               if (en && en->isSelected())
                                {
-                                       RS_DEBUG->print("RS_ActionDefault::mouseMoveEvent: "
+                                       RS_DEBUG->print("ActionDefault::mouseMoveEvent: "
                                                "moving entity");
                                        setStatus(Moving);
                                        v1 = en->getNearestRef(v1);
@@ -116,48 +121,46 @@ void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
                                        setStatus(SetCorner2);
                        }
                }
+
                break;
 
        case MovingRef:
                v2 = snapPoint(e);
 
-               deletePreview();
-               clearPreview();
-               preview->addSelectionFrom(*container);
-               preview->moveRef(v1, v2 - v1);
-               drawPreview();
+//             deletePreview();
+//             clearPreview();
+//             preview->addSelectionFrom(*container);
+//             preview->moveRef(v1, v2 - v1);
+//             drawPreview();
                break;
 
        case Moving:
                v2 = snapPoint(e);
 
-               deletePreview();
-               clearPreview();
-               preview->addSelectionFrom(*container);
-               preview->move(v2 - v1);
-               drawPreview();
+//             deletePreview();
+//             clearPreview();
+//             preview->addSelectionFrom(*container);
+//             preview->move(v2 - v1);
+//             drawPreview();
                break;
 
        case SetCorner2:
-
                if (v1.valid)
                {
-                       //v2 = snapPoint(e);
                        v2 = mouse;
 
-                       //deleteSnapper();
-                       deletePreview();
-                       clearPreview();
-
-                       preview->addEntity(new RS_Line(preview,
-                                       RS_LineData(Vector(v1.x, v1.y), Vector(v2.x, v1.y))));
-                       preview->addEntity(new RS_Line(preview,
-                                       RS_LineData(Vector(v2.x, v1.y), Vector(v2.x, v2.y))));
-                       preview->addEntity(new RS_Line(preview,
-                                       RS_LineData(Vector(v2.x, v2.y), Vector(v1.x, v2.y))));
-                       preview->addEntity(new RS_Line(preview,
-                                       RS_LineData(Vector(v1.x, v2.y), Vector(v1.x, v1.y))));
-                       drawPreview();
+//                     deletePreview();
+//                     clearPreview();
+
+//                     preview->addEntity(new RS_Line(preview,
+//                             RS_LineData(Vector(v1.x, v1.y), Vector(v2.x, v1.y))));
+//                     preview->addEntity(new RS_Line(preview,
+//                             RS_LineData(Vector(v2.x, v1.y), Vector(v2.x, v2.y))));
+//                     preview->addEntity(new RS_Line(preview,
+//                             RS_LineData(Vector(v2.x, v2.y), Vector(v1.x, v2.y))));
+//                     preview->addEntity(new RS_Line(preview,
+//                             RS_LineData(Vector(v1.x, v2.y), Vector(v1.x, v1.y))));
+//                     drawPreview();
                }
 
        default:
@@ -165,7 +168,7 @@ void RS_ActionDefault::mouseMoveEvent(QMouseEvent * e)
        }
 }
 
-void RS_ActionDefault::mousePressEvent(QMouseEvent * e)
+void ActionDefault::mousePressEvent(QMouseEvent * e)
 {
        if (e->button() == Qt::LeftButton)
        {
@@ -179,9 +182,9 @@ void RS_ActionDefault::mousePressEvent(QMouseEvent * e)
                case Moving:
                {
                        v2 = snapPoint(e);
-                       deleteSnapper();
-                       deletePreview();
-                       clearPreview();
+//                     deleteSnapper();
+//                     deletePreview();
+//                     clearPreview();
                        RS_Modification m(*container, graphicView);
                        RS_MoveData data;
                        data.number = 0;
@@ -198,15 +201,14 @@ void RS_ActionDefault::mousePressEvent(QMouseEvent * e)
                case MovingRef:
                {
                        v2 = snapPoint(e);
-                       deleteSnapper();
-                       deletePreview();
-                       clearPreview();
+//                     deleteSnapper();
+//                     deletePreview();
+//                     clearPreview();
                        RS_Modification m(*container, graphicView);
                        RS_MoveRefData data;
                        data.ref = v1;
                        data.offset = v2 - v1;
                        m.moveRef(data);
-                       //container->moveSelectedRef(v1, v2-v2);
                        setStatus(Neutral);
                        RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
                        RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
@@ -219,9 +221,9 @@ void RS_ActionDefault::mousePressEvent(QMouseEvent * e)
        }
 }
 
-void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
+void ActionDefault::mouseReleaseEvent(QMouseEvent * e)
 {
-       RS_DEBUG->print("RS_ActionDefault::mouseReleaseEvent()");
+       RS_DEBUG->print("ActionDefault::mouseReleaseEvent()");
 
        if (e->button() == Qt::LeftButton)
        {
@@ -232,20 +234,19 @@ void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
                case Dragging:
                {
                        // select single entity:
-                       RS_Entity * en = catchEntity(e);
+                       RS_Entity * en = graphicView->snapper.catchEntity(e);
 
-                       if (en != NULL)
+                       if (en)
                        {
-                               deleteSnapper();
-                               deletePreview();
-                               clearPreview();
+//                             deleteSnapper();
+//                             deletePreview();
+//                             clearPreview();
 
                                RS_Selection s(*container, graphicView);
                                s.selectSingle(en);
 
                                RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
 
-                               //deleteSnapper();
                                e->accept();
                                setStatus(Neutral);
                        }
@@ -256,14 +257,12 @@ void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
 
                case SetCorner2:
                {
-                       //v2 = snapPoint(e);
                        v2 = graphicView->toGraph(e->x(), e->y());
 
                        // select window:
-                       //if (graphicView->toGuiDX(v1.distanceTo(v2))>20) {
-                       deleteSnapper();
-                       deletePreview();
-                       clearPreview();
+//                     deleteSnapper();
+//                     deletePreview();
+//                     clearPreview();
 
                        bool cross = (v2.y > v1.y);
                        RS_Selection s(*container, graphicView);
@@ -273,7 +272,6 @@ void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
 
                        setStatus(Neutral);
                        e->accept();
-                       //}
                }
                break;
 
@@ -288,16 +286,17 @@ void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
                case SetCorner2:
                case Moving:
                case MovingRef:
-                       deletePreview();
-                       clearPreview();
-                       deleteSnapper();
+//                     deletePreview();
+//                     clearPreview();
+//                     deleteSnapper();
                        setStatus(Neutral);
                        RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
                        e->accept();
                        break;
 
                default:
-                       deleteSnapper();
+                       graphicView->snapper.SetVisible(false);
+                       graphicView->preview.SetVisible(false);
                        RS_DIALOGFACTORY->requestPreviousMenu();
                        e->accept();
                        break;
@@ -305,33 +304,19 @@ void RS_ActionDefault::mouseReleaseEvent(QMouseEvent * e)
        }
 }
 
-void RS_ActionDefault::commandEvent(RS_CommandEvent * e)
+void ActionDefault::commandEvent(RS_CommandEvent * e)
 {
        QString c = e->getCommand().toLower();
-
-       // if the current action can't deal with the command,
-       //   it might be intended to launch a new command
-       //if (!e.isAccepted()) {
-       // command for new action:
-       //RS2::ActionType type = RS_COMMANDS->cmdToAction(c);
-       //if (type!=RS2::ActionNone) {
-       //graphicView->setCurrentAction(type);
-       //return true;
-       //}
-       //}
 }
 
-QStringList RS_ActionDefault::getAvailableCommands()
+QStringList ActionDefault::getAvailableCommands()
 {
        QStringList cmd;
 
-       //cmd += "line";
-       //cmd += "rectangle";
-
        return cmd;
 }
 
-void RS_ActionDefault::updateMouseButtonHints()
+void ActionDefault::updateMouseButtonHints()
 {
        switch (getStatus())
        {
@@ -340,7 +325,7 @@ void RS_ActionDefault::updateMouseButtonHints()
                break;
 
        case SetCorner2:
-               RS_DIALOGFACTORY->updateMouseWidget(tr("Choose second edge"), tr("Back"));
+               RS_DIALOGFACTORY->updateMouseWidget(tr("Drag to second point"), tr("Back"));
                break;
 
        default:
@@ -349,7 +334,7 @@ void RS_ActionDefault::updateMouseButtonHints()
        }
 }
 
-void RS_ActionDefault::updateMouseCursor()
+void ActionDefault::updateMouseCursor()
 {
        switch (getStatus())
        {
@@ -367,14 +352,11 @@ void RS_ActionDefault::updateMouseCursor()
        }
 }
 
-void RS_ActionDefault::updateToolBar()
+void ActionDefault::updateToolBar()
 {
-       //RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
        switch (getStatus())
        {
        case Neutral:
-               // would switch back to main in edit / measure / .. modes
-               //RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain);
                break;
 
        case Moving:
@@ -386,4 +368,3 @@ void RS_ActionDefault::updateToolBar()
                break;
        }
 }
-