]> Shamusworld >> Repos - architektonas/blob - src/mainapp/createqtactions.cpp
Refactored CAD tool bars to use predefined actions.
[architektonas] / src / mainapp / createqtactions.cpp
1 // createqtactions.cpp
2 //
3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
7 //
8 // JLH = James L. Hammons <jlhamm@acm.org>
9 //
10 // Who  When        What
11 // ---  ----------  -----------------------------------------------------------
12 // JLH  05/21/2010  Created this file. :-)
13 //
14
15 #include "createqtactions.h"
16
17 // Here are the actions to be created...
18
19 QAction * actionFileNew;
20 QAction * actionFileOpen;
21 QAction * actionFileSave;
22 QAction * actionFileSaveAs;
23 QAction * actionFileExport;
24 QAction * actionFileClose;
25 QAction * actionFilePrint;
26 QAction * actionFilePrintPreview;
27 QAction * actionFileQuit;
28
29 QAction * actionEditUndo;
30 QAction * actionEditRedo;
31 QAction * actionEditCut;
32 QAction * actionEditCopy;
33 QAction * actionEditPaste;
34 QAction * actionOptionsGeneral;
35 QAction * actionOptionsDrawing;
36
37 QAction * actionViewGrid;
38 QAction * actionViewDraft;
39 QAction * actionZoomRedraw;
40 QAction * actionZoomIn;
41 QAction * actionZoomOut;
42 QAction * actionZoomAuto;
43 QAction * actionZoomPrevious;
44 QAction * actionZoomWindow;
45 QAction * actionZoomPan;
46 QAction * actionViewStatusbar;
47 QAction * actionFocusCommandLine;
48
49 QAction * actionDeselectAll;
50 QAction * actionSelectAll;
51 QAction * actionSelectSingle;
52 QAction * actionSelectContour;
53 QAction * actionDeselectWindow;
54 QAction * actionSelectWindow;
55 QAction * actionSelectInvert;
56 QAction * actionSelectIntersected;
57 QAction * actionDeselectIntersected;
58 QAction * actionSelectLayer;
59
60 QAction * actionDrawPoint;
61 QAction * actionDrawLine;
62 QAction * actionDrawLineAngle;
63 QAction * actionDrawLineHorizontal;
64 QAction * actionDrawLineVertical;
65 QAction * actionDrawLineRectangle;
66 QAction * actionDrawLineParallel;
67 QAction * actionDrawLineParallelThrough;
68 QAction * actionDrawLineBisector;
69 QAction * actionDrawLineTangent1;
70 QAction * actionDrawLineTangent2;
71 QAction * actionDrawLineOrthogonal;
72 QAction * actionDrawLineRelAngle;
73 QAction * actionDrawLineFree;
74 QAction * actionDrawLinePolygon;
75 QAction * actionDrawLinePolygon2;
76 QAction * actionDrawLinePolyline;
77
78 QAction * actionDrawArc;
79 QAction * actionDrawArc3P;
80 QAction * actionDrawArcParallel;
81 QAction * actionDrawArcTangential;
82
83 QAction * actionDrawCircle;
84 QAction * actionDrawCircleCR;
85 QAction * actionDrawCircle2P;
86 QAction * actionDrawCircle3P;
87 QAction * actionDrawCircleParallel;
88
89 QAction * actionDrawEllipseAxis;
90 QAction * actionDrawEllipseArcAxis;
91
92 QAction * actionDrawSpline;
93
94 QAction * actionDrawPolyline;
95 QAction * actionPolylineAdd;
96 QAction * actionPolylineDel;
97 QAction * actionPolylineDelBetween;
98 QAction * actionPolylineTrim;
99
100 QAction * actionDrawText;
101 QAction * actionDrawHatch;
102 QAction * actionDrawImage;
103
104 QAction * actionDimAligned;
105 QAction * actionDimLinear;
106 QAction * actionDimLinearHor;
107 QAction * actionDimLinearVer;
108 QAction * actionDimRadial;
109 QAction * actionDimDiametric;
110 QAction * actionDimAngular;
111 QAction * actionDimLeader;
112
113 QAction * actionModifyMove;
114 QAction * actionModifyRotate;
115 QAction * actionModifyScale;
116 QAction * actionModifyMirror;
117 QAction * actionModifyMoveRotate;
118 QAction * actionModifyRotate2;
119 QAction * actionModifyTrim;
120 QAction * actionModifyTrim2;
121 QAction * actionModifyTrimAmount;
122 QAction * actionModifyBevel;
123 QAction * actionModifyRound;
124 QAction * actionModifyCut;
125 QAction * actionModifyStretch;
126 QAction * actionModifyEntity;
127 QAction * actionModifyAttributes;
128 QAction * actionModifyDelete;
129 QAction * actionModifyDeleteQuick;
130 QAction * actionModifyExplodeText;
131 QAction * actionModifyExplode;
132
133 QAction * actionSnapFree;
134 QAction * actionSnapGrid;
135 QAction * actionSnapEndpoint;
136 QAction * actionSnapOnEntity;
137 QAction * actionSnapCenter;
138 QAction * actionSnapMiddle;
139 QAction * actionSnapDist;
140 QAction * actionSnapIntersection;
141 QAction * actionSnapIntersectionManual;
142 QAction * actionRestrictNothing;
143 QAction * actionRestrictOrthogonal;
144 QAction * actionRestrictHorizontal;
145 QAction * actionRestrictVertical;
146 QAction * actionSetRelativeZero;
147 QAction * actionLockRelativeZero;
148
149 QAction * actionInfoDist;
150 QAction * actionInfoDist2;
151 QAction * actionInfoAngle;
152 QAction * actionInfoArea;
153 QAction * actionInfoTotalLength;
154
155 QAction * actionLayersDefreezeAll;
156 QAction * actionLayersFreezeAll;
157 QAction * actionLayersAdd;
158 QAction * actionLayersRemove;
159 QAction * actionLayersEdit;
160 QAction * actionLayersToggleView;
161
162 QAction * actionBlocksDefreezeAll;
163 QAction * actionBlocksFreezeAll;
164 QAction * actionBlocksAdd;
165 QAction * actionBlocksRemove;
166 QAction * actionBlocksAttributes;
167 QAction * actionBlocksInsert;
168 QAction * actionBlocksEdit;
169 QAction * actionBlocksCreate;
170 QAction * actionBlocksExplode;
171
172 QAction * actionScriptOpenIDE;
173 QAction * actionScriptRun;
174
175 QAction * actionCamExportAuto;
176 QAction * actionCamReorder;
177
178 QAction * actionHelpAboutApp;
179 QAction * actionHelpManual;
180
181 //
182 // Function prototypes
183 //
184 //QAction * CreateAction(name, tooltip, statustip, icon, keysequence, parent);
185 QAction * CreateAction(QString, QString, QString, QIcon, QKeySequence, QWidget *);
186 //QAction * CreateAction2(name, tooltip, statustip, icon, keysequence, keysequence, parent);
187 QAction * CreateAction2(QString, QString, QString, QIcon, QKeySequence, QKeySequence, QWidget *);
188
189 //nope using namespace Qt;
190 //ick
191 #define  tr             QObject::tr
192
193 //
194 // Create all Qt actions associated with the main application window.
195 //
196 void CreateQtActions(QWidget * parent)
197 {
198         actionFileNew = CreateAction(tr("&New"), tr("New Drawing"), tr("Creates a new drawing"), QIcon(":/res/filenew.png"), QKeySequence(Qt::CTRL + Qt::Key_N), parent);
199         actionFileOpen = CreateAction(tr("&Open..."), tr("Open Drawing"), tr("Opens an existing drawing"), QIcon(":/res/fileopen2.png"), QKeySequence(Qt::CTRL + Qt::Key_O), parent);
200         actionFileSave = CreateAction(tr("&Save"), tr("Save Drawing"), tr("Saves the current drawing"), QIcon(":/res/filesave2.png"), QKeySequence(Qt::CTRL + Qt::Key_S), parent);
201         actionFileSaveAs = CreateAction(tr("Save &As..."), tr("Save Drawing As"), tr("Saves the current drawing under a new filename"), QIcon(":/res/filesaveas.png"), QKeySequence(), parent);
202         actionFileExport = CreateAction(tr("&Export..."), tr("Export Drawing"), tr("Exports the current drawing as bitmap"), QIcon(), QKeySequence(), parent);
203         actionFileClose = CreateAction(tr("&Close"), tr("Close Drawing"), tr("Closes the current drawing"), QIcon(":/res/fileclose.png"), QKeySequence(Qt::CTRL + Qt::Key_W), parent);
204         actionFilePrint = CreateAction(tr("&Print..."), tr("Print Drawing"), tr("Prints out the current drawing"), QIcon(":/res/fileprint.png"), QKeySequence(Qt::CTRL + Qt::Key_P), parent);
205         actionFilePrintPreview = CreateAction(tr("Print Pre&view"), tr("Print Preview"), tr("Shows a preview of a print"), QIcon(":/res/fileprintpreview.png"), QKeySequence(), NULL);
206         actionFilePrintPreview->setCheckable(true);
207         actionFileQuit = CreateAction(tr("&Quit"), tr("Quit"), tr("Quits the application"), QIcon(":/res/exit.png"), QKeySequence(Qt::CTRL + Qt::Key_Q), parent);
208
209         actionEditUndo = CreateAction2(tr("&Undo"), tr("Undo"), tr("Undoes last action"), QIcon(":/res/undo2.png"), QKeySequence(tr("o, o", "Edit|Undo")), QKeySequence(Qt::CTRL + Qt::Key_Z), parent);
210         actionEditRedo = CreateAction2(tr("&Redo"), tr("Redo"), tr("Redoes last action"), QIcon(":/res/redo2.png"), QKeySequence(tr("u, u", "Edit|Redo")), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Z), parent);
211         actionEditCut = CreateAction(tr("Cu&t"), tr("Cut"), tr("Cuts entities to the clipboard"), QIcon(":/res/editcut2.png"), QKeySequence(Qt::CTRL + Qt::Key_X), parent);
212         actionEditCopy = CreateAction(tr("&Copy"), tr("Copy"), tr("Copies entities to the clipboard"), QIcon(":/res/editcopy2.png"), QKeySequence(Qt::CTRL + Qt::Key_C), parent);
213         actionEditPaste = CreateAction(tr("&Paste"), tr("Paste"), tr("Pastes the clipboard contents"), QIcon(":/res/editpaste2.png"), QKeySequence(Qt::CTRL + Qt::Key_V), parent);
214         actionOptionsGeneral = CreateAction(tr(
215 #ifdef __APPLE__
216         "&Preferences"
217 #else
218         "&Application Preferences..."
219 #endif
220         ), tr("Application"), tr("General Application Preferences"), QIcon(":/res/configure.png"), QKeySequence(), NULL);
221         actionOptionsDrawing = CreateAction(tr("Current &Drawing Preferences..."), tr("Drawing"), tr("Settings for the current Drawing"), QIcon(), QKeySequence(), NULL);
222
223         actionViewGrid = CreateAction(tr("&Grid"), tr("Grid"), tr("Enables/disables the grid"), QIcon(":/res/viewgrid.png"), QKeySequence("g, r"), parent);
224         actionViewGrid->setCheckable(true);
225         actionViewDraft = CreateAction(tr("&Draft"), tr("Draft"), tr("Enables/disables the draft mode"), QIcon(":/res/viewdraft.png"), QKeySequence("d, f"), parent);
226         actionViewDraft->setCheckable(true);
227         actionZoomRedraw = CreateAction(tr("&Redraw"), tr("Redraw"), tr("Redraw"), QIcon(":/res/zoomredraw.png"), QKeySequence("r, g"), NULL);
228         actionZoomIn = CreateAction(tr("Zoom &In"), tr("Zoom in"), tr("Zooms in"), QIcon(":/res/zoomin.png"), QKeySequence("+"), NULL);
229         actionZoomOut = CreateAction(tr("Zoom &Out"), tr("Zoom out"), tr("Zooms out"), QIcon(":/res/zoomout.png"), QKeySequence("-"), NULL);
230         actionZoomAuto = CreateAction(tr("&Auto Zoom"), tr("Auto Zoom"), tr("Zooms automatic"), QIcon(":/res/zoomauto.png"), QKeySequence("z, a"), NULL);
231         actionZoomPrevious = CreateAction(tr("&Previous View"), tr("Previous View"), tr("Shows previous view"), QIcon(":/res/zoomprevious.png"), QKeySequence("z, v"), NULL);
232         actionZoomWindow = CreateAction(tr("&Window Zoom"), tr("Window Zoom"), tr("Zooms in a window"), QIcon(":/res/zoomwindow.png"), QKeySequence("z, w"), NULL);
233         actionZoomPan = CreateAction(tr("&Pan Zoom"), tr("Pan Zoom"), tr("Realtime Panning"), QIcon(":/res/zoompan.png"), QKeySequence("z, p"), NULL);
234         actionViewStatusbar = CreateAction(tr("&Statusbar"), tr("Statusbar"), tr("Enables/disables the statusbar"), QIcon(), QKeySequence(), parent);
235         actionViewStatusbar->setCheckable(true);
236         actionFocusCommandLine = CreateAction(tr("Focus on &Command Line"), tr("Focus on Command Line"), tr(""), QIcon(":/res/editclear.png"), QKeySequence(Qt::Key_Space), parent);
237
238         actionDeselectAll = CreateAction2(tr("Deselect &all"), tr("Deselect all"), tr("Deselects all Entities"), QIcon(":/res/select-none"), QKeySequence("t, n"), QKeySequence(Qt::CTRL + Qt::Key_K), parent);
239         actionSelectAll = CreateAction2(tr("Select &All"), tr("Select All"), tr("Selects all Entities"), QIcon(":/res/select-all"), QKeySequence("t, a"), QKeySequence(Qt::CTRL + Qt::Key_A), parent);
240         actionSelectSingle = CreateAction(tr("(De-)&Select Entity"), tr("Select Entity"), tr("Selects single Entities"), QIcon(":/res/select-single"), QKeySequence("t, s"), NULL);
241         actionSelectContour = CreateAction(tr("(De-)Select &Contour"), tr("(De-)Select Contour"), tr("(De-)Selects connected entities"), QIcon(":/res/select-contour"), QKeySequence("t, c"), NULL);
242         actionDeselectWindow = CreateAction(tr("Deselect &Window"), tr("Deselect Window"), tr("Deselects all Entities in a given Window"), QIcon(":/res/select-nonwindow"), QKeySequence("u, w"), NULL);
243         actionSelectWindow = CreateAction(tr("Select &Window"), tr("Select Window"), tr("Selects all Entities in a given Window"), QIcon(":/res/select-window"), QKeySequence("t, w"), NULL);
244         actionSelectInvert = CreateAction(tr("&Invert Selection"), tr("Invert Selection"), tr("Inverts the current selection"), QIcon(":/res/select-invert"), QKeySequence("t, i"), NULL);
245         actionSelectIntersected = CreateAction(tr("In&tersected Entities"), tr("Select Intersected Entities"), tr("Selects all entities intersected by a line"), QIcon(":/res/select-intersection"), QKeySequence("t, x"), NULL);
246         actionDeselectIntersected = CreateAction(tr("Deselect Inte&rsected Entities"), tr("Deselect Intersected Entities"), tr("Deselects all entities intersected by a line"), QIcon(":/res/select-nonintersection"), QKeySequence("u, x"), NULL);
247         actionSelectLayer = CreateAction(tr("(De-)Select Layer"), tr("(De-)Select Layer"), tr("(De-)Selects layers"), QIcon(":/res/select-layer"), QKeySequence("t, l"), NULL);
248
249         actionDrawPoint = CreateAction(tr("&Points"), tr("Points"), tr("Draw Points"), QIcon(":/res/qg_points.xpm"), QKeySequence("p, o"), NULL);
250         actionDrawLine = CreateAction(tr("&2 Points"), tr("Line: 2 Points"), tr("Draw lines"), QIcon(":/res/qg_linesnormal.xpm"), QKeySequence("l, i"), NULL);
251         actionDrawLineAngle = CreateAction(tr("&Angle"), tr("Line: Angle"), tr("Draw lines with a given angle"), QIcon(":/res/qg_linesangle.xpm"), QKeySequence("l, a"), NULL);
252         actionDrawLineHorizontal = CreateAction(tr("&Horizontal"), tr("Line: Horizontal"), tr("Draw horizontal lines"), QIcon(":/res/qg_lineshor.xpm"), QKeySequence("l, h"), NULL);
253         actionDrawLineVertical = CreateAction(tr("&Vertical"), tr("hor./vert. line"), tr("Draw horizontal/vertical lines"), QIcon(":/res/qg_linesver.xpm"), QKeySequence("l, v"), NULL);
254         actionDrawLineRectangle = CreateAction(tr("&Rectangle"), tr("Rectangle"), tr("Draw rectangles"), QIcon(":/res/qg_linesrect.xpm"), QKeySequence("r, e"), NULL);
255         actionDrawLineParallel = CreateAction(tr("Para&llel"), tr("Parallel"), tr("Draw parallels to existing lines, arcs, circles"), QIcon(":/res/qg_linespara.xpm"), QKeySequence("l, p"), NULL);
256         actionDrawLineParallelThrough = CreateAction(tr("Par&allel through point"), tr("Parallel through point"), tr("Draw parallel through a given point"), QIcon(":/res/qg_linesparathrough.xpm"), QKeySequence("l, g"), NULL);
257         actionDrawLineBisector = CreateAction(tr("&Bisector"), tr("Bisector"), tr("Draw bisectors"), QIcon(":/res/qg_linesbisector.xpm"), QKeySequence("l, b"), NULL);
258         actionDrawLineTangent1 = CreateAction(tr("&Tangent (P,C)"), tr("Tangent (P,C)"), tr("Draw tangent (point, circle)"), QIcon(":/res/qg_linestan1.xpm"), QKeySequence("l, t, 1"), NULL);
259         actionDrawLineTangent2 = CreateAction(tr("Tan&gent (C,C)"), tr("Tangent (C,C)"), tr("Draw tangent (circle, circle)"), QIcon(":/res/qg_linestan2.xpm"), QKeySequence("l, t, 2"), NULL);
260         actionDrawLineOrthogonal = CreateAction(tr("&Orthogonal"), tr("Orthogonal"), tr("Draw orthogonal line"), QIcon(":/res/qg_linesorthogonal.xpm"), QKeySequence("l, o"), NULL);
261         actionDrawLineRelAngle = CreateAction(tr("R&elative angle"), tr("Relative angle"), tr("Draw line with relative angle"), QIcon(":/res/qg_linesrelativeangle.xpm"), QKeySequence("l, r"), NULL);
262         actionDrawLineFree = CreateAction(tr("&Freehand Line"), tr("Line: Freehand"), tr("Draw freehand lines"), QIcon(":/res/qg_linesfree.xpm"), QKeySequence("l, f"), NULL);
263         actionDrawLinePolygon = CreateAction(tr("Pol&ygon (Cen,Cor)"), tr("Polygon"), tr("Draw polygon with center and corner"), QIcon(":/res/qg_linespolygon.xpm"), QKeySequence("p, g, 1"), NULL);
264         actionDrawLinePolygon2 = CreateAction(tr("Polygo&n (Cor,Cor)"), tr("Polygon"), tr("Draw polygon with two corners"), QIcon(":/res/qg_linespolygon2.xpm"), QKeySequence("p, g, 2"), NULL);
265 //hmm.
266 //      actionDrawLinePolyline = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
267
268         actionDrawArc = CreateAction(tr("&Center, Point, Angles"), tr("Arc: Center, Point, Angles"), tr("Draw arcs"), QIcon(":/res/qg_arcscraa.xpm"), QKeySequence("a, r"), NULL);
269         actionDrawArc3P = CreateAction(tr("&3 Points"), tr("Arc: 3 Points"), tr("Draw arcs with 3 points"), QIcon(":/res/qg_arcs3p.xpm"), QKeySequence("a, 3"), NULL);
270         actionDrawArcParallel = CreateAction(tr("&Concentric"), tr("Concentric"), tr("Draw parallels to existing lines, arcs, circles"), QIcon(":/res/qg_arcspara.xpm"), QKeySequence("a, c"), NULL);
271         actionDrawArcTangential = CreateAction(tr("&Tangential"), tr("Arc: Tangential"), tr("Draw arcs tangential to base entity"), QIcon(":/res/qg_arcstangential.xpm"), QKeySequence("a, n"), NULL);
272
273         actionDrawCircle = CreateAction(tr("Center, &Point"), tr("Circle: Center, Point"), tr("Draw circles with center and point"), QIcon(":/res/qg_circles.xpm"), QKeySequence("c, i"), NULL);
274         actionDrawCircleCR = CreateAction(tr("Center, &Radius"), tr("Circle: Center, Radius"), tr("Draw circles with center and radius"), QIcon(":/res/qg_circlescr.xpm"), QKeySequence("c, r"), NULL);
275         actionDrawCircle2P = CreateAction(tr("2 Points"), tr("Circle: 2 Points"), tr("Draw circles with 2 points"), QIcon(":/res/qg_circles2p.xpm"), QKeySequence("c, 2"), NULL);
276         actionDrawCircle3P = CreateAction(tr("3 Points"), tr("Circle: 3 Points"), tr("Draw circles with 3 points"), QIcon(":/res/qg_circles3p.xpm"), QKeySequence("c, 3"), NULL);
277         actionDrawCircleParallel = CreateAction(tr("&Concentric"), tr("Concentric"), tr("Draw parallels to existing lines, arcs, circles"), QIcon(":/res/qg_circlespara.xpm"), QKeySequence("c, c"), NULL);
278
279         actionDrawEllipseAxis = CreateAction(tr("&Ellipse (Axis)"), tr("Ellipse with Axis"), tr("Draw Ellipses"), QIcon(":/res/qg_ellipsesaxes.xpm"), QKeySequence("e, p"), NULL);
280         actionDrawEllipseArcAxis = CreateAction(tr("&Ellipse Arc (Axis)"), tr("Ellipse Arc with Axis"), tr("Draw Ellipse Arcs"), QIcon(":/res/qg_ellipsearcsaxes.xpm"), QKeySequence("e, a"), NULL);
281
282         actionDrawSpline = CreateAction(tr("&Spline"), tr("Spline"), tr("Draw splines"), QIcon(":/res/qg_splinesnurbs.xpm"), QKeySequence("s, p"), NULL);
283
284         actionDrawPolyline = CreateAction(tr("&Draw"), tr(""), tr(""), QIcon(":/res/qg_polyline.xpm"), QKeySequence("p, l"), NULL);
285         actionPolylineAdd = CreateAction(tr("&Add Node"), tr(""), tr(""), QIcon(":/res/qg_polylineadd.xpm"), QKeySequence("o, a"), NULL);
286         actionPolylineDel = CreateAction(tr("&Delete Node"), tr(""), tr(""), QIcon(":/res/qg_polylinedel.xpm"), QKeySequence("o, d"), NULL);
287         actionPolylineDelBetween = CreateAction(tr("Delete Segments &Between Two Nodes"), tr(""), tr(""), QIcon(":/res/qg_polylinedelbetween.xpm"), QKeySequence("o, b"), NULL);
288         actionPolylineTrim = CreateAction(tr("&Trim Segments"), tr(""), tr(""), QIcon(":/res/qg_polylinetrim.xpm"), QKeySequence("o, t"), NULL);
289
290         actionDrawText = CreateAction(tr("&Text"), tr("Text"), tr("Draw Text Entities"), QIcon(":/res/qg_menutext.xpm"), QKeySequence("t, e"), NULL);
291         actionDrawHatch = CreateAction(tr("&Hatch"), tr("Hatch"), tr("Draw Hatches and Solid Fills"), QIcon(":/res/qg_menuhatch.xpm"), QKeySequence("h, a"), NULL);
292         actionDrawImage = CreateAction(tr("Insert &Image"), tr("Image"), tr("Insert Image (Bitmap)"), QIcon(":/res/qg_menuimage.xpm"), QKeySequence("i, m"), NULL);
293
294         actionDimAligned = CreateAction(tr("&Aligned"), tr("Aligned"), tr("Aligned Dimension"), QIcon(":/res/qg_dimaligned.xpm"), QKeySequence("d, a"), NULL);
295         actionDimLinear = CreateAction(tr("&Linear"), tr("Linear"), tr("Linear Dimension"), QIcon(":/res/qg_dimlinear.xpm"), QKeySequence("d, l"), NULL);
296         actionDimLinearHor = CreateAction(tr("&Horizontal"), tr("Horizontal"), tr("Horizontal Dimension"), QIcon(":/res/qg_dimhor.xpm"), QKeySequence("d, h"), NULL);
297         actionDimLinearVer = CreateAction(tr("&Vertical"), tr("Vertical"), tr("Vertical Dimension"), QIcon(":/res/qg_dimver.xpm"), QKeySequence("d, v"), NULL);
298         actionDimRadial = CreateAction(tr("&Radial"), tr("Radial"), tr("Radial Dimension"), QIcon(":/res/qg_dimradial.xpm"), QKeySequence("d, r"), NULL);
299         actionDimDiametric = CreateAction(tr("&Diametric"), tr("Diametric"), tr("Diametric Dimension"), QIcon(":/res/qg_dimdiametric.xpm"), QKeySequence("d, d"), NULL);
300         actionDimAngular = CreateAction(tr("&Angular"), tr("Angular"), tr("Angular Dimension"), QIcon(":/res/qg_dimangular.xpm"), QKeySequence("d, n"), NULL);
301         actionDimLeader = CreateAction(tr("&Leader"), tr("Leader"), tr("Leader Dimension"), QIcon(":/res/qg_dimleader.xpm"), QKeySequence("d, e"), NULL);
302
303         actionModifyMove = CreateAction(tr("&Move / Copy"), tr("Move / Copy"), tr("Move or copy entities one or multiple times"), QIcon(":/res/qg_modifymove.xpm"), QKeySequence("m, v"), NULL);
304         actionModifyRotate = CreateAction(tr("&Rotate"), tr("Rotate"), tr("Rotate Entities"), QIcon(":/res/qg_modifyrotate.xpm"), QKeySequence("r, o"), NULL);
305         actionModifyScale = CreateAction(tr("&Scale"), tr("Scale"), tr("Scale Entities"), QIcon(":/res/qg_modifyscale.xpm"), QKeySequence("s, z"), NULL);
306         actionModifyMirror = CreateAction(tr("&Mirror"), tr("Mirror"), tr("Mirror Entities"), QIcon(":/res/qg_modifymirror.xpm"), QKeySequence("m, i"), NULL);
307         actionModifyMoveRotate = CreateAction(tr("M&ove and Rotate"), tr("Move and Rotate"), tr("Move and Rotate Entities"), QIcon(":/res/qg_modifymoverotate.xpm"), QKeySequence("m, r"), NULL);
308         actionModifyRotate2 = CreateAction(tr("Rotate T&wo"), tr("Rotate Two"), tr("Rotate Entities around two centers"), QIcon(":/res/qg_modifyrotate2.xpm"), QKeySequence("r, 2"), NULL);
309         actionModifyTrim = CreateAction(tr("&Trim"), tr("Trim"), tr("Trim Entities"), QIcon(":/res/qg_modifytrim.xpm"), QKeySequence("r, m"), NULL);
310         actionModifyTrim2 = CreateAction(tr("&Trim Two"), tr("Trim Two"), tr("Trim two Entities"), QIcon(":/res/qg_modifytrim2.xpm"), QKeySequence("t, m"), NULL);
311         actionModifyTrimAmount = CreateAction(tr("&Lengthen"), tr("Lengthen"), tr("Lengthen by a given amount"), QIcon(":/res/qg_modifytrimamount.xpm"), QKeySequence("l, e"), NULL);
312         actionModifyBevel = CreateAction(tr("&Bevel"), tr("Bevel"), tr("Bevel Entities"), QIcon(":/res/qg_modifybevel.xpm"), QKeySequence("c, h"), NULL);
313         actionModifyRound = CreateAction(tr("&Round"), tr("Round"), tr("Round Entities"), QIcon(":/res/qg_modifyround.xpm"), QKeySequence("r, n"), NULL);
314         actionModifyCut = CreateAction(tr("&Divide"), tr("Divide"), tr("Cut Entities"), QIcon(":/res/qg_modifycut.xpm"), QKeySequence("d, i"), NULL);
315         actionModifyStretch = CreateAction(tr("&Stretch"), tr("Stretch"), tr("Stretch Entities"), QIcon(":/res/qg_modifystretch.xpm"), QKeySequence("s, s"), NULL);
316         actionModifyEntity = CreateAction(tr("&Properties"), tr("Properties"), tr("Modify Entity Properties"), QIcon(":/res/qg_modifyentity.xpm"), QKeySequence("p, r"), NULL);
317         actionModifyAttributes = CreateAction(tr("&Attributes"), tr("Attributes"), tr("Modify Entity Attributes"), QIcon(":/res/qg_modifyattributes.xpm"), QKeySequence("a, t"), NULL);
318         actionModifyDelete = CreateAction(tr("&Delete"), tr("Delete"), tr("Delete Entities"), QIcon(":/res/qg_modifydelete.xpm"), QKeySequence("e, r"), NULL);
319 //      actionModifyDeleteFree = CreateAction(tr("&Delete Freehand"), tr("Delete Freehand"), tr("Delete Freehand"), QIcon(), QKeySequence(), NULL);
320         // hm.
321         actionModifyDeleteQuick = CreateAction(tr("&Delete selected"), tr("Delete selected"), tr("Delete selected entities"), QIcon(":/res/qg_modifydelete.xpm"), QKeySequence(
322 #ifdef __APPLE__
323                 Qt::Key_Backspace
324 #else
325                 Qt::Key_Delete
326 #endif
327                 ), parent);
328         actionModifyExplodeText = CreateAction(tr("&Explode Text into Letters"), tr("Explode Text"), tr("Explodes Text Entities into single Letters"), QIcon(":/res/qg_modifyexplodetext.xpm"), QKeySequence("x, e"), NULL);
329         actionModifyExplode = CreateAction(tr("&Explode"), tr("Explode"), tr("Explode Blocks and other Entity Groups"), QIcon(":/res/qg_modifyexplode.xpm"), QKeySequence("x, p"), NULL);
330
331         actionSnapFree = CreateAction(tr("&Free"), tr("Free"), tr("Free positioning"), QIcon(":/res/qg_snapfree.xpm"), QKeySequence("s, f"), parent);
332         actionSnapFree->setCheckable(true);
333         actionSnapGrid = CreateAction(tr("&Grid"), tr("Grid"), tr("Grid psoitioning"), QIcon(":/res/qg_snapgrid.xpm"), QKeySequence("s, g"), parent);
334         actionSnapGrid->setCheckable(true);
335         actionSnapEndpoint = CreateAction(tr("&Endpoints"), tr("Endpoints"), tr("Snap to endpoints"), QIcon(":/res/qg_snapendpoint.xpm"), QKeySequence("s, e"), parent);
336         actionSnapEndpoint->setCheckable(true);
337         actionSnapOnEntity = CreateAction(tr("&On Entity"), tr("On Entity"), tr("Snap to nearest point on entity"), QIcon(":/res/qg_snaponentity.xpm"), QKeySequence("s, t"), parent);
338         actionSnapOnEntity->setCheckable(true);
339         actionSnapCenter = CreateAction(tr("&Center"), tr("Center"), tr("Snap to centers"), QIcon(":/res/qg_snapcenter.xpm"), QKeySequence("s, c"), parent);
340         actionSnapCenter->setCheckable(true);
341         actionSnapMiddle = CreateAction(tr("&Middle"), tr("Middle"), tr("Snap to middle points"), QIcon(":/res/qg_snapmiddle.xpm"), QKeySequence("s, m"), parent);
342         actionSnapMiddle->setCheckable(true);
343         actionSnapDist = CreateAction(tr("&Distance from Endpoint"), tr("Distance from Endpoint"), tr("Snap to points with a given distance to an endpoint"), QIcon(":/res/qg_snapdist.xpm"), QKeySequence("s, d"), parent);
344         actionSnapDist->setCheckable(true);
345         actionSnapIntersection = CreateAction(tr("&Intersection"), tr("Intersection"), tr("Snap to intersection points"), QIcon(":/res/qg_snapintersection.xpm"), QKeySequence("s, i"), parent);
346         actionSnapIntersection->setCheckable(true);
347         actionSnapIntersectionManual = CreateAction(tr("I&ntersection Manually"), tr("Intersection Manually"), tr("Snap to intersection points manually"), QIcon(":/res/qg_snapintersectionm.xpm"), QKeySequence("s, y"), parent);
348         actionSnapIntersectionManual->setCheckable(true);
349         actionRestrictNothing = CreateAction(tr("Restrict &Nothing"), tr("Restrict Nothing"), tr("No snap restriction"), QIcon(":/res/qg_restrictnothing.xpm"), QKeySequence("e, n"), parent);
350         actionRestrictNothing->setCheckable(true);
351         actionRestrictOrthogonal = CreateAction(tr("Restrict &Orthogonally"), tr("Restrict Orthogonally"), tr("Restrict snapping orthogonally"), QIcon(":/res/qg_restrictorthogonal.xpm"), QKeySequence("e, o"), parent);
352         actionRestrictOrthogonal->setCheckable(true);
353         actionRestrictHorizontal = CreateAction(tr("Restrict &Horizontally"), tr("Restrict Horizontally"), tr("Restrict snapping horizontally"), QIcon(":/res/qg_restricthorizontal.xpm"), QKeySequence("e, h"), parent);
354         actionRestrictHorizontal->setCheckable(true);
355         actionRestrictVertical = CreateAction(tr("Restrict &Vertically"), tr("Restrict Vertically"), tr("Restrict snapping vertically"), QIcon(":/res/qg_restrictvertical.xpm"), QKeySequence("e, v"), parent);
356         actionRestrictVertical->setCheckable(true);
357         actionSetRelativeZero = CreateAction(tr("&Set Relative Zero"), tr("Set Relative Zero"), tr("Set position of the Relative Zero point"), QIcon(":/res/qg_relzeromove.xpm"), QKeySequence("r, z"), NULL);
358         actionLockRelativeZero = CreateAction(tr("(Un-)&Lock Relative Zero"), tr("(Un-)Lock Relative Zero"), tr("(Un-)Lock relative Zero"), QIcon(":/res/qg_relzerolock.xpm"), QKeySequence("r, l"), NULL);
359         actionLockRelativeZero->setCheckable(true);
360
361         actionInfoDist = CreateAction(tr("&Distance Point to Point"), tr("Distance Point to Point"), tr("Measures the distance between two points"), QIcon(":/res/qg_infodist.xpm"), QKeySequence("i, p"), NULL);
362         actionInfoDist2 = CreateAction(tr("&Distance Entity to Point"), tr("Distance Entity to Point"), tr("Measures the distance between an entity and a point"), QIcon(":/res/qg_infodist2.xpm"), QKeySequence("i, e"), NULL);
363         actionInfoAngle = CreateAction(tr("&Angle between two lines"), tr("Angle between two lines"), tr("Measures the angle between two lines"), QIcon(":/res/qg_infoangle.xpm"), QKeySequence("i, a"), NULL);
364         actionInfoTotalLength = CreateAction(tr("&Total length of selected entities"), tr("Total length of selected entities"), tr("Measures the total length of all selected entities"), QIcon(":/res/qg_infototallength.xpm"), QKeySequence("i, s"), NULL);
365         actionInfoArea = CreateAction(tr("&Polygonal Area"), tr("Polygonal Area"), tr("Measures the area of a polygon"), QIcon(":/res/qg_infoarea.xpm"), QKeySequence("i, r"), NULL);
366
367         actionLayersDefreezeAll = CreateAction(tr("&Show all"), tr("Show all"), tr("Show all layers"), QIcon(":/res/visiblelayer.xpm"), QKeySequence("y, s"), NULL);
368         actionLayersFreezeAll = CreateAction(tr("&Hide all"), tr("Hide all"), tr("Hide all layers"), QIcon(":/res/hiddenlayer.xpm"), QKeySequence("y, h"), NULL);
369         actionLayersAdd = CreateAction(tr("&Add Layer"), tr("Add Layer"), tr("Add Layer"), QIcon(":/res/layeradd.xpm"), QKeySequence("y, a"), NULL);
370         actionLayersRemove = CreateAction(tr("&Remove Layer"), tr("Remove Layer"), tr("Remove Layer"), QIcon(":/res/layerremove.xpm"), QKeySequence("y, r"), NULL);
371         actionLayersEdit = CreateAction(tr("&Edit Layer"), tr("Edit Layer"), tr("Edit Layer"), QIcon(":/res/layeredit.xpm"), QKeySequence("y, e"), NULL);
372         actionLayersToggleView = CreateAction(tr("&Toggle Layer"), tr("Toggle Layer Visibility"), tr("Toggle Layer"), QIcon(), QKeySequence("y, v"), NULL);
373
374         actionBlocksDefreezeAll = CreateAction(tr("&Show all"), tr("Show all"), tr("Show all blocks"), QIcon(":/res/visibleblock.xpm"), QKeySequence("b, s"), NULL);
375         actionBlocksFreezeAll = CreateAction(tr("&Hide all"), tr("Hide all"), tr("Hide all blocks"), QIcon(":/res/hiddenblock.xpm"), QKeySequence("b, h"), NULL);
376         actionBlocksAdd = CreateAction(tr("&Add Block"), tr("Add Block"), tr("Add Block"), QIcon(":/res/blockadd.xpm"), QKeySequence("b, a"), NULL);
377         actionBlocksRemove = CreateAction(tr("&Remove Block"), tr("Remove Block"), tr("Remove Block"), QIcon(":/res/blockremove.xpm"), QKeySequence("b, r"), NULL);
378         actionBlocksAttributes = CreateAction(tr("&Rename Block"), tr("Rename Block"), tr("Rename Block and all Inserts"), QIcon(":/res/blockattributes.xpm"), QKeySequence("b, n"), NULL);
379         actionBlocksInsert = CreateAction(tr("&Insert Block"), tr("Insert Block"), tr("Insert Block"), QIcon(":/res/blockinsert.xpm"), QKeySequence("b, i"), NULL);
380         actionBlocksEdit = CreateAction(tr("&Edit Block"), tr("Edit Block"), tr("Edit Block"), QIcon(":/res/blockedit.xpm"), QKeySequence("b, e"), NULL);
381         actionBlocksCreate = CreateAction(tr("&Create Block"), tr("Create Block"), tr("Create Block"), QIcon(":/res/qg_menublock.xpm"), QKeySequence("b, c"), NULL);
382         actionBlocksExplode = CreateAction(tr("&Explode"), tr("Explode"), tr("Explode Blocks and other Entity Groups"), QIcon(":/res/qg_modifyexplode.xpm"), QKeySequence("x, p"), NULL);
383
384         actionScriptOpenIDE = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
385         actionScriptRun = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
386
387         actionCamExportAuto = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
388         actionCamReorder = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
389
390         actionHelpAboutApp = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
391         actionHelpManual = CreateAction(tr(""), tr(""), tr(""), QIcon(), QKeySequence(), NULL);
392 }
393
394 //
395 // Consolidates action creation from a multi-step process to a single-step one.
396 //
397 QAction * CreateAction(QString name, QString tooltip, QString statustip, QIcon icon, QKeySequence key, QWidget * w)
398 {
399         QAction * action = new QAction(icon, name, w);
400         action->setToolTip(tooltip);
401         action->setStatusTip(statustip);
402         action->setShortcut(key);
403
404         return action;
405 }
406
407 //
408 // This is essentially the same as the previous function, but this allows more
409 // than one key sequence to be added as key shortcuts.
410 //
411 QAction * CreateAction2(QString name, QString tooltip, QString statustip, QIcon icon, QKeySequence key1, QKeySequence key2, QWidget * w)
412 {
413         QAction * action = new QAction(icon, name, w);
414         action->setToolTip(tooltip);
415         action->setStatusTip(statustip);
416         QList<QKeySequence> keyList;
417         keyList.append(key1);
418         keyList.append(key2);
419         action->setShortcuts(keyList);
420
421         return action;
422 }
423
424 // Stuff that needs to be added...
425 #if 0
426 src/actions/rs_actionblockstoggleview.cpp-    QAction * action = new QAction(tr("&Toggle Block"), 0);
427 src/actions/rs_actionblockstoggleview.cpp-//        QAction* action = new QAction(tr("Toggle Block Visibility"),
428 src/actions/rs_actionblockstoggleview.cpp-//                             tr("&Toggle Block"),
429 src/actions/rs_actionblockstoggleview.cpp-//                             QKeySequence(), NULL);
430 src/actions/rs_actionblockstoggleview.cpp-    action->setStatusTip(tr("Toggle Block"));
431 src/actions/rs_actionblockstoggleview.cpp-
432 src/actions/rs_actionblockstoggleview.cpp-      return action;
433 src/actions/rs_actionblockstoggleview.cpp-}
434 --
435 src/actions/rs_actiondrawlinehorvert.cpp:QAction * RS_ActionDrawLineHorVert::createGUIAction(RS2::ActionType /*type*/, QObject * /*parent*/)
436 src/actions/rs_actiondrawlinehorvert.cpp-{
437 src/actions/rs_actiondrawlinehorvert.cpp-       QAction * action = new QAction(tr("H&orizontal / Vertical"), 0);
438 src/actions/rs_actiondrawlinehorvert.cpp-//     QAction* action = new QAction(tr("hor./vert. line"),
439 src/actions/rs_actiondrawlinehorvert.cpp-//                                                                     tr("H&orizontal / Vertical"),
440 src/actions/rs_actiondrawlinehorvert.cpp-//                                                                     QKeySequence(), NULL);
441 src/actions/rs_actiondrawlinehorvert.cpp-       action->setStatusTip(tr("Draw horizontal/vertical lines"));
442 src/actions/rs_actiondrawlinehorvert.cpp-       return action;
443 src/actions/rs_actiondrawlinehorvert.cpp-}
444 --
445 src/actions/rs_actioninfoinside.cpp:QAction* RS_ActionInfoInside::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/)
446 src/actions/rs_actioninfoinside.cpp-{
447 src/actions/rs_actioninfoinside.cpp-    QAction * action = new QAction(tr("&Point inside contour"), 0);
448 src/actions/rs_actioninfoinside.cpp-//  QAction* action = new QAction(tr("Point inside contour"),
449 src/actions/rs_actioninfoinside.cpp-//                                                                  tr("&Point inside contour"),
450 src/actions/rs_actioninfoinside.cpp-//                                                                  QKeySequence(), NULL);
451 src/actions/rs_actioninfoinside.cpp-    action->setStatusTip(tr("Checks if a given point is inside the selected contour"));
452 src/actions/rs_actioninfoinside.cpp-
453 src/actions/rs_actioninfoinside.cpp-    return action;
454 src/actions/rs_actioninfoinside.cpp-}
455 --
456 src/actions/rs_actionlayerstogglelock.cpp-      QAction * action = new QAction(tr("&Toggle Lock"), 0);
457 src/actions/rs_actionlayerstogglelock.cpp-//    QAction* action = new QAction(tr("Toggle Layer Lock"),
458 src/actions/rs_actionlayerstogglelock.cpp-//                                                                    tr("&Toggle Lock"),
459 src/actions/rs_actionlayerstogglelock.cpp-//                                                                    QKeySequence(), NULL);
460 src/actions/rs_actionlayerstogglelock.cpp-      action->setStatusTip(tr("Toggle Lock"));
461 src/actions/rs_actionlayerstogglelock.cpp-      return action;
462 src/actions/rs_actionlayerstogglelock.cpp-}
463 --
464 src/actions/rs_actionlibraryinsert.cpp:QAction * RS_ActionLibraryInsert::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/)
465 src/actions/rs_actionlibraryinsert.cpp-{
466 src/actions/rs_actionlibraryinsert.cpp- QAction * action = new QAction(tr("&Insert Library Object"), 0);
467 src/actions/rs_actionlibraryinsert.cpp-//       QAction* action = new QAction(tr("Insert Library Object"),
468 src/actions/rs_actionlibraryinsert.cpp-//                                                                       tr("&Insert Library Object"),
469 src/actions/rs_actionlibraryinsert.cpp-//                                                                       QKeySequence(), NULL);
470 src/actions/rs_actionlibraryinsert.cpp- action->setStatusTip(tr("Inserts an Object from the part library."));
471 src/actions/rs_actionlibraryinsert.cpp- return action;
472 src/actions/rs_actionlibraryinsert.cpp-}
473 --
474 src/actions/rs_actiontoolregeneratedimensions.cpp:QAction * RS_ActionToolRegenerateDimensions::createGUIAction(RS2::ActionType /*type*/, QObject * /*parent*/)
475 src/actions/rs_actiontoolregeneratedimensions.cpp-{
476 src/actions/rs_actiontoolregeneratedimensions.cpp-      QAction * action = new QAction(tr("&Regenerate Dimension Entities"), 0);
477 src/actions/rs_actiontoolregeneratedimensions.cpp-//    QAction* action = new QAction(tr("Regenerate Dimension Entities"),
478 src/actions/rs_actiontoolregeneratedimensions.cpp-//                                                                    tr("&Regenerate Dimension Entities"),
479 src/actions/rs_actiontoolregeneratedimensions.cpp-//                                                                    QKeySequence(), NULL);
480 src/actions/rs_actiontoolregeneratedimensions.cpp-      action->setStatusTip(tr("Regenerates all Dimension Entities"));
481 src/actions/rs_actiontoolregeneratedimensions.cpp-
482 src/actions/rs_actiontoolregeneratedimensions.cpp-      return action;
483 src/actions/rs_actiontoolregeneratedimensions.cpp-}
484 --
485 #endif
486