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