src/actions/actionmodifytrim.h \
src/actions/actionmodifytrimamount.h \
src/actions/actionoptionsdrawing.h \
+ src/actions/actiondrawpolyline.h \
+ src/actions/actionpolylineadd.h \
+ src/actions/actionpolylineappend.h \
+ src/actions/actionpolylinedel.h \
+ src/actions/actionpolylinedelbetween.h \
+ src/actions/actionpolylinetrim.h \
src/actions/actionprintpreview.h \
src/actions/actionselect.h \
src/actions/actionselectall.h \
src/actions/actionmodifytrim.cpp \
src/actions/actionmodifytrimamount.cpp \
src/actions/actionoptionsdrawing.cpp \
+ src/actions/actiondrawpolyline.cpp \
+ src/actions/actionpolylineadd.cpp \
+ src/actions/actionpolylineappend.cpp \
+ src/actions/actionpolylinedel.cpp \
+ src/actions/actionpolylinedelbetween.cpp \
+ src/actions/actionpolylinetrim.cpp \
src/actions/actionprintpreview.cpp \
src/actions/actionselect.cpp \
src/actions/actionselectall.cpp \
--- /dev/null
+#ifndef __ACTIONDRAWPOLYLINE_H__
+#define __ACTIONDRAWPOLYLINE_H__
+
+#include "actioninterface.h"
+#include "vector.h"
+
+class Polyline;
+
+/**
+ * This action class can handle user events to draw freehand lines.
+ *
+ * @author James Hammons
+ */
+class ActionDrawPolyline: public ActionInterface
+{
+ public:
+ ActionDrawPolyline(EntityContainer & container, GraphicView & graphicView);
+ ~ActionDrawPolyline();
+
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseButtonHints();
+ virtual void updateMouseCursor();
+ virtual void updateToolBar();
+
+ protected:
+ Vector vertex;
+ Polyline * polyline;
+};
+
+#endif // __ACTIONDRAWPOLYLINE_H__
--- /dev/null
+#ifndef __ACTIONPOLYLINEADD_H__
+#define __ACTIONPOLYLINEADD_H__
+
+#include "actioninterface.h"
+
+class Polyline;
+
+/**
+ * This action class adds a node to an existing polyline.
+ *
+ * @author James Hammons
+ */
+class ActionPolylineAdd: public ActionInterface
+{
+ public:
+ ActionPolylineAdd(EntityContainer & container, GraphicView & graphicView);
+ ~ActionPolylineAdd();
+
+ virtual void init(int status = 0);
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseCursor();
+
+ protected:
+ Polyline * polyline;
+};
+
+#endif // __ACTIONPOLYLINEADD_H__
--- /dev/null
+#ifndef __ACTIONPOLYLINEAPPEND_H__
+#define __ACTIONPOLYLINEAPPEND_H__
+
+#include "actioninterface.h"
+
+class Polyline;
+
+/**
+ * This action class adds a node to an existing polyline.
+ *
+ * @author James Hammons
+ */
+class ActionPolylineAppend: public ActionInterface
+{
+ public:
+ ActionPolylineAppend(EntityContainer & container, GraphicView & graphicView);
+ ~ActionPolylineAppend();
+
+ virtual void init(int status = 0);
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseCursor();
+
+ protected:
+ Polyline * polyline;
+};
+
+#endif // __ACTIONPOLYLINEAPPEND_H__
--- /dev/null
+#ifndef __ACTIONPOLYLINEDEL_H__
+#define __ACTIONPOLYLINEDEL_H__
+
+#include "actioninterface.h"
+
+class Polyline;
+
+/**
+ * This action class adds a node to an existing polyline.
+ *
+ * @author James Hammons
+ */
+class ActionPolylineDel: public ActionInterface
+{
+ public:
+ ActionPolylineDel(EntityContainer & container, GraphicView & graphicView);
+ ~ActionPolylineDel();
+
+ virtual void init(int status = 0);
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseCursor();
+
+ protected:
+ Polyline * polyline;
+};
+
+#endif // __ACTIONPOLYLINEDEL_H__
--- /dev/null
+#ifndef __ACTIONPOLYLINEDELBETWEEN_H__
+#define __ACTIONPOLYLINEDELBETWEEN_H__
+
+#include "actioninterface.h"
+
+class Polyline;
+
+/**
+ * This action class adds a node to an existing polyline.
+ *
+ * @author James Hammons
+ */
+class ActionPolylineDelBetween: public ActionInterface
+{
+ public:
+ ActionPolylineDelBetween(EntityContainer & container, GraphicView & graphicView);
+ ~ActionPolylineDelBetween();
+
+ virtual void init(int status = 0);
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseCursor();
+
+ protected:
+ Polyline * polyline;
+};
+
+#endif // __ACTIONPOLYLINEDELBETWEEN_H__
--- /dev/null
+#ifndef __ACTIONPOLYLINETRIM_H__
+#define __ACTIONPOLYLINETRIM_H__
+
+#include "actioninterface.h"
+
+class Polyline;
+
+/**
+ * This action class adds a node to an existing polyline.
+ *
+ * @author James Hammons
+ */
+class ActionPolylineTrim: public ActionInterface
+{
+ public:
+ ActionPolylineTrim(EntityContainer & container, GraphicView & graphicView);
+ ~ActionPolylineTrim();
+
+ virtual void init(int status = 0);
+ virtual void trigger();
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void updateMouseCursor();
+
+ protected:
+ Polyline * polyline;
+};
+
+#endif // __ACTIONPOLYLINETRIM_H__
gridLayout->addWidget(parent->CreateToolButton(actionDrawPolyline), 1, 0, 1, 1);
gridLayout->addWidget(parent->CreateToolButton(actionPolylineAdd), 1, 1, 1, 1);
-#warning "!!! Missing actionPolylineAppend !!!"
-// gridLayout->addWidget(parent->CreateToolButton(actionPolylineAppend), 2, 0, 1, 1);
+ gridLayout->addWidget(parent->CreateToolButton(actionPolylineAppend), 2, 0, 1, 1);
gridLayout->addWidget(parent->CreateToolButton(actionPolylineDel), 2, 1, 1, 1);
gridLayout->addWidget(parent->CreateToolButton(actionPolylineDelBetween), 3, 0, 1, 1);
gridLayout->addWidget(parent->CreateToolButton(actionPolylineTrim), 3, 1, 1, 1);
subMenu->addAction(actionPolylineAdd);
connect(actionPolylineAdd, SIGNAL(activated()), actionHandler, SLOT(slotPolylineAdd()));
connect(this, SIGNAL(windowsChanged(bool)), actionPolylineAdd, SLOT(setEnabled(bool)));
+ subMenu->addAction(actionPolylineAppend);
+ connect(actionPolylineAppend, SIGNAL(activated()), actionHandler, SLOT(slotPolylineAppend()));
+ connect(this, SIGNAL(windowsChanged(bool)), actionPolylineAppend, SLOT(setEnabled(bool)));
// action = actionFactory.createAction(RS2::ActionPolylineDel, actionHandler);
subMenu->addAction(actionPolylineDel);
connect(actionPolylineDel, SIGNAL(activated()), actionHandler, SLOT(slotPolylineDel()));
QAction * actionDrawPolyline;
QAction * actionPolylineAdd;
+QAction * actionPolylineAppend;
QAction * actionPolylineDel;
QAction * actionPolylineDelBetween;
QAction * actionPolylineTrim;
actionDrawPolyline = CreateAction(tr("&Draw"), tr(""), tr(""), QIcon(":/res/qg_polyline.xpm"), QKeySequence("p, l"), NULL);
actionPolylineAdd = CreateAction(tr("&Add Node"), tr(""), tr(""), QIcon(":/res/qg_polylineadd.xpm"), QKeySequence("o, a"), NULL);
+ actionPolylineAppend = CreateAction(tr("A&ppend Node"), tr(""), tr(""), QIcon(":/res/qg_polylineappend.xpm"), QKeySequence("o, p"), NULL);
actionPolylineDel = CreateAction(tr("&Delete Node"), tr(""), tr(""), QIcon(":/res/qg_polylinedel.xpm"), QKeySequence("o, d"), NULL);
actionPolylineDelBetween = CreateAction(tr("Delete Segments &Between Two Nodes"), tr(""), tr(""), QIcon(":/res/qg_polylinedelbetween.xpm"), QKeySequence("o, b"), NULL);
actionPolylineTrim = CreateAction(tr("&Trim Segments"), tr(""), tr(""), QIcon(":/res/qg_polylinetrim.xpm"), QKeySequence("o, t"), NULL);
extern QAction * actionDrawPolyline;
extern QAction * actionPolylineAdd;
+extern QAction * actionPolylineAppend;
extern QAction * actionPolylineDel;
extern QAction * actionPolylineDelBetween;
extern QAction * actionPolylineTrim;
#include "actiondrawlinetangent1.h"
#include "actiondrawlinetangent2.h"
#include "actiondrawpoint.h"
+#include "actiondrawpolyline.h"
#include "actiondrawspline.h"
#include "actiondrawtext.h"
#include "actioneditcopy.h"
#include "actionmodifytrim.h"
#include "actionmodifytrimamount.h"
#include "actionoptionsdrawing.h"
+#include "actionpolylineadd.h"
+#include "actionpolylineappend.h"
+#include "actionpolylinedel.h"
+#include "actionpolylinedelbetween.h"
+#include "actionpolylinetrim.h"
#include "actionselect.h"
#include "actionselectall.h"
#include "actionselectcontour.h"
#include "actionzoomredraw.h"
#include "actionzoomwindow.h"
-#warning "!!! Need to add polyline functionality !!!"
-#if 0
-#include "actiondrawpolyline.h"
-#include "actionpolylineadd.h"
-#include "actionpolylineappend.h"
-#include "actionpolylinedel.h"
-#include "actionpolylinedelbetween.h"
-#include "actionpolylinetrim.h"
-#endif
-
#ifdef RS_CAM
#include "actioncamexportauto.h"
#include "actioncamreorder.h"
a = new ActionSelectLayer(*doc, *gv);
break;
- // Tool actions:
- //
-//no
-// case RS2::ActionToolRegenerateDimensions:
-// a = new ActionToolRegenerateDimensions(*doc, *gv);
-// break;
-
// Zooming actions:
//
case RS2::ActionZoomIn:
case RS2::ActionDrawLineRelAngle:
a = new ActionDrawLineRelAngle(*doc, *gv, M_PI / 2.0, false);
break;
-#warning "!!! Need to add polyline functionality !!!"
-#ifdef RS_PROF
case RS2::ActionDrawPolyline:
a = new ActionDrawPolyline(*doc, *gv);
break;
case RS2::ActionPolylineTrim:
a = new ActionPolylineTrim(*doc, *gv);
break;
-#endif
case RS2::ActionDrawLinePolygon:
a = new ActionDrawLinePolygon(*doc, *gv);
break;