1435 lines
57 KiB
C++
1435 lines
57 KiB
C++
/*
|
|
**********************************************************************************
|
|
**
|
|
** This file was created for the LibreCAD project (librecad.org), a 2D CAD program.
|
|
**
|
|
** Copyright (C) 2015 ravas (github.com/r-a-v-a-s)
|
|
**
|
|
** This program is free software; you can redistribute it and/or
|
|
** modify it under the terms of the GNU General Public License
|
|
** as published by the Free Software Foundation; either version 2
|
|
** of the License, or (at your option) any later version.
|
|
**
|
|
** This program is distributed in the hope that it will be useful,
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
** GNU General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU General Public License
|
|
** along with this program; if not, write to the Free Software
|
|
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
**
|
|
**********************************************************************************
|
|
*/
|
|
|
|
// This file was first published at: github.com/r-a-v-a-s/LibreCAD.git
|
|
|
|
// lc_actionfactory is a rewrite of qg_actionfactory; some copied content remains.
|
|
// qg_actionfactory contributors:
|
|
// Andrew Mustun, Claude Sylvain, R. van Twisk, Dongxu Li, Rallaz, Armin Stebich, ravas, korhadris
|
|
|
|
#include "lc_actionfactory.h"
|
|
#include "lc_actiongroupmanager.h"
|
|
#include "qc_applicationwindow.h"
|
|
#include "qg_actionhandler.h"
|
|
|
|
#include <QAction>
|
|
#include <QActionGroup>
|
|
|
|
LC_ActionFactory::LC_ActionFactory(QC_ApplicationWindow* parent, QG_ActionHandler* a_handler)
|
|
: QObject(parent)
|
|
, using_theme(false)
|
|
, main_window(parent)
|
|
, action_handler(a_handler)
|
|
{
|
|
}
|
|
|
|
void LC_ActionFactory::fillActionContainer(QMap<QString, QAction*>& a_map, LC_ActionGroupManager* agm)
|
|
{
|
|
QAction* action;
|
|
|
|
// <[~ Zoom ~]>
|
|
|
|
action = new QAction(tr("Zoom &Panning"), agm->other);
|
|
action->setIcon(QIcon(":/icons/zoom_pan.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotZoomPan()));
|
|
action->setObjectName("ZoomPan");
|
|
a_map["ZoomPan"] = action;
|
|
|
|
// <[~ Select ~]>
|
|
|
|
action = new QAction(tr("Select Entity"), agm->select);
|
|
action->setIcon(QIcon(":/icons/select_entity.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectSingle()));
|
|
action->setObjectName("SelectSingle");
|
|
a_map["SelectSingle"] = action;
|
|
|
|
action = new QAction(tr("Select Window"), agm->select);
|
|
action->setIcon(QIcon(":/icons/select_window.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectWindow()));
|
|
action->setObjectName("SelectWindow");
|
|
a_map["SelectWindow"] = action;
|
|
|
|
action = new QAction(tr("Deselect Window"), agm->select);
|
|
action->setIcon(QIcon(":/icons/deselect_window.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDeselectWindow()));
|
|
action->setObjectName("DeselectWindow");
|
|
a_map["DeselectWindow"] = action;
|
|
|
|
action = new QAction(tr("(De-)Select &Contour"), agm->select);
|
|
action->setIcon(QIcon(":/icons/deselect_contour.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectContour()));
|
|
action->setObjectName("SelectContour");
|
|
a_map["SelectContour"] = action;
|
|
|
|
action = new QAction(tr("Select Intersected Entities"), agm->select);
|
|
action->setIcon(QIcon(":/icons/select_intersected_entities.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectIntersected()));
|
|
action->setObjectName("SelectIntersected");
|
|
a_map["SelectIntersected"] = action;
|
|
|
|
action = new QAction(tr("Deselect Intersected Entities"), agm->select);
|
|
action->setIcon(QIcon(":/icons/deselect_intersected_entities.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDeselectIntersected()));
|
|
action->setObjectName("DeselectIntersected");
|
|
a_map["DeselectIntersected"] = action;
|
|
|
|
action = new QAction(tr("(De-)Select Layer"), agm->select);
|
|
action->setIcon(QIcon(":/icons/deselect_layer.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectLayer()));
|
|
action->setObjectName("SelectLayer");
|
|
a_map["SelectLayer"] = action;
|
|
|
|
// <[~ Draw ~]>
|
|
|
|
action = new QAction(tr("&Points"), agm->other);
|
|
action->setIcon(QIcon(":/icons/points.svg"));
|
|
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawPoint()));
|
|
action->setObjectName("DrawPoint");
|
|
a_map["DrawPoint"] = action;
|
|
|
|
// <[~ Line ~]>
|
|
|
|
action = new QAction(tr("&2 Points"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_2p.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLine()));
|
|
action->setObjectName("DrawLine");
|
|
a_map["DrawLine"] = action;
|
|
|
|
action = new QAction(tr("&Angle"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_angle.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineAngle()));
|
|
action->setObjectName("DrawLineAngle");
|
|
a_map["DrawLineAngle"] = action;
|
|
|
|
action = new QAction(tr("&Horizontal"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_horizontal.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineHorizontal()));
|
|
action->setObjectName("DrawLineHorizontal");
|
|
a_map["DrawLineHorizontal"] = action;
|
|
|
|
action = new QAction(tr("Vertical"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_vertical.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineVertical()));
|
|
action->setObjectName("DrawLineVertical");
|
|
a_map["DrawLineVertical"] = action;
|
|
|
|
// action = new QAction(tr("Vertical"), agm->line);
|
|
// connect(action, SIGNAL(triggered()),
|
|
// action_handler, SLOT(slotDrawLineHorVert()));
|
|
// action->setObjectName("DrawLineHorVert");
|
|
// a_map["DrawLineHorVert"] = action;
|
|
|
|
action = new QAction(tr("&Freehand Line"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_freehand.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineFree()));
|
|
action->setObjectName("DrawLineFree");
|
|
a_map["DrawLineFree"] = action;
|
|
|
|
action = new QAction(tr("&Parallel"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_parallel.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineParallel()));
|
|
action->setObjectName("DrawLineParallel");
|
|
a_map["DrawLineParallel"] = action;
|
|
|
|
action = new QAction(tr("Parallel through point"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_parallel_p.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineParallelThrough()));
|
|
action->setObjectName("DrawLineParallelThrough");
|
|
a_map["DrawLineParallelThrough"] = action;
|
|
|
|
action = new QAction(tr("Rectangle"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_rectangle.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineRectangle()));
|
|
action->setObjectName("DrawLineRectangle");
|
|
a_map["DrawLineRectangle"] = action;
|
|
|
|
action = new QAction(tr("Bisector"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_bisector.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineBisector()));
|
|
action->setObjectName("DrawLineBisector");
|
|
a_map["DrawLineBisector"] = action;
|
|
|
|
action = new QAction(tr("Tangent (P,C)"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_tangent_pc.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineTangent1()));
|
|
action->setObjectName("DrawLineTangent1");
|
|
a_map["DrawLineTangent1"] = action;
|
|
|
|
action = new QAction(tr("Tangent (C,C)"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_tangent_cc.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineTangent2()));
|
|
action->setObjectName("DrawLineTangent2");
|
|
a_map["DrawLineTangent2"] = action;
|
|
|
|
action = new QAction(tr("Tangent &Orthogonal"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_tangent_perpendicular.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineOrthTan()));
|
|
action->setObjectName("DrawLineOrthTan");
|
|
a_map["DrawLineOrthTan"] = action;
|
|
|
|
action = new QAction(tr("Orthogonal"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_perpendicular.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineOrthogonal()));
|
|
action->setObjectName("DrawLineOrthogonal");
|
|
a_map["DrawLineOrthogonal"] = action;
|
|
|
|
action = new QAction(tr("Relative angle"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_relative_angle.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLineRelAngle()));
|
|
action->setObjectName("DrawLineRelAngle");
|
|
a_map["DrawLineRelAngle"] = action;
|
|
|
|
action = new QAction(tr("Pol&ygon (Cen,Cor)"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_polygon_cen_cor.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLinePolygon()));
|
|
action->setObjectName("DrawLinePolygonCenCor");
|
|
a_map["DrawLinePolygonCenCor"] = action;
|
|
|
|
action = new QAction(tr("Pol&ygon (Cen,Tan)"), agm->line); //20161223 added by txmy
|
|
action->setIcon(QIcon(":/icons/line_polygon_cen_tan.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLinePolygon3()));
|
|
action->setObjectName("DrawLinePolygonCenTan");
|
|
a_map["DrawLinePolygonCenTan"] = action;
|
|
|
|
action = new QAction(tr("Polygo&n (Cor,Cor)"), agm->line);
|
|
action->setIcon(QIcon(":/icons/line_polygon_cor_cor.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawLinePolygon2()));
|
|
action->setObjectName("DrawLinePolygonCorCor");
|
|
a_map["DrawLinePolygonCorCor"] = action;
|
|
|
|
// <[~ Circle ~]>
|
|
|
|
action = new QAction(tr("Center, &Point"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_center_point.svg"));
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotDrawCircle()));
|
|
action->setObjectName("DrawCircle");
|
|
a_map["DrawCircle"] = action;
|
|
|
|
action = new QAction(tr("Center, &Radius"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_center_radius.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleCR()));
|
|
action->setObjectName("DrawCircleCR");
|
|
a_map["DrawCircleCR"] = action;
|
|
|
|
action = new QAction(tr("2 Points"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_2_points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircle2P()));
|
|
action->setObjectName("DrawCircle2P");
|
|
a_map["DrawCircle2P"] = action;
|
|
|
|
action = new QAction(tr("2 Points, Radius"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_2_points_radius.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircle2PR()));
|
|
action->setObjectName("DrawCircle2PR");
|
|
a_map["DrawCircle2PR"] = action;
|
|
|
|
action = new QAction(tr("3 Points"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_3_points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircle3P()));
|
|
action->setObjectName("DrawCircle3P");
|
|
a_map["DrawCircle3P"] = action;
|
|
|
|
action = new QAction(tr("&Concentric"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_concentric.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleParallel()));
|
|
action->setObjectName("DrawCircleParallel");
|
|
a_map["DrawCircleParallel"] = action;
|
|
|
|
action = new QAction(tr("Circle &Inscribed"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_inscribed.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleInscribe()));
|
|
action->setObjectName("DrawCircleInscribe");
|
|
a_map["DrawCircleInscribe"] = action;
|
|
|
|
action = new QAction(tr("Tangential 2 Circles, Radius", "circle tangential with two circles, and given radius"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_tangential_2circles_radius.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleTan2()));
|
|
action->setObjectName("DrawCircleTan2");
|
|
a_map["DrawCircleTan2"] = action;
|
|
|
|
action = new QAction(tr("Tangential 2 Circles, 1 Point"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_tangential_2circles_point.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleTan2_1P()));
|
|
action->setObjectName("DrawCircleTan2_1P");
|
|
a_map["DrawCircleTan2_1P"] = action;
|
|
|
|
action = new QAction(tr("Tangential &3 Circles"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_tangential_3entities.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleTan3()));
|
|
action->setObjectName("DrawCircleTan3");
|
|
a_map["DrawCircleTan3"] = action;
|
|
|
|
action = new QAction(tr("Tangential, 2 P&oints"), agm->circle);
|
|
action->setIcon(QIcon(":/icons/circle_tangential_2points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawCircleTan1_2P()));
|
|
action->setObjectName("DrawCircleTan1_2P");
|
|
a_map["DrawCircleTan1_2P"] = action;
|
|
|
|
// <[~ Arc ~]>
|
|
|
|
action = new QAction(tr("&Center, Point, Angles"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/arc_center_point_angle.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawArc()));
|
|
action->setObjectName("DrawArc");
|
|
a_map["DrawArc"] = action;
|
|
|
|
action = new QAction(tr("&3 Points"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/arc_3_points.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawArc3P()));
|
|
action->setObjectName("DrawArc3P");
|
|
a_map["DrawArc3P"] = action;
|
|
|
|
action = new QAction(tr("&Concentric"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/arc_concentric.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawArcParallel()));
|
|
action->setObjectName("DrawArcParallel");
|
|
a_map["DrawArcParallel"] = action;
|
|
|
|
action = new QAction(tr("Arc &Tangential"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/arc_continuation.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawArcTangential()));
|
|
action->setObjectName("DrawArcTangential");
|
|
a_map["DrawArcTangential"] = action;
|
|
|
|
// <[~ Ellipse ~]>
|
|
|
|
action = new QAction(tr("&Ellipse (Axis)"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_axis.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipseAxis()));
|
|
action->setObjectName("DrawEllipseAxis");
|
|
a_map["DrawEllipseAxis"] = action;
|
|
|
|
action = new QAction(tr("Ellipse &Arc (Axis)"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_arc_axis.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipseArcAxis()));
|
|
action->setObjectName("DrawEllipseArcAxis");
|
|
a_map["DrawEllipseArcAxis"] = action;
|
|
|
|
action = new QAction(tr("Ellipse &Foci Point"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_foci_point.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipseFociPoint()));
|
|
action->setObjectName("DrawEllipseFociPoint");
|
|
a_map["DrawEllipseFociPoint"] = action;
|
|
|
|
action = new QAction(tr("Ellipse &4 Point"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_4_points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipse4Points()));
|
|
action->setObjectName("DrawEllipse4Points");
|
|
a_map["DrawEllipse4Points"] = action;
|
|
|
|
action = new QAction(tr("Ellipse Center and &3 Points"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_center_3_points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipseCenter3Points()));
|
|
action->setObjectName("DrawEllipseCenter3Points");
|
|
a_map["DrawEllipseCenter3Points"] = action;
|
|
|
|
action = new QAction(tr("Ellipse &Inscribed"), agm->ellipse);
|
|
action->setIcon(QIcon(":/icons/ellipse_inscribed.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawEllipseInscribe()));
|
|
action->setObjectName("DrawEllipseInscribe");
|
|
a_map["DrawEllipseInscribe"] = action;
|
|
|
|
// <[~ Spline ~]>
|
|
|
|
action = new QAction(tr("&Spline"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/spline.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawSpline()));
|
|
action->setObjectName("DrawSpline");
|
|
a_map["DrawSpline"] = action;
|
|
|
|
action = new QAction(tr("&Spline through points"), agm->curve);
|
|
action->setIcon(QIcon(":/icons/spline_points.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawSplinePoints()));
|
|
action->setObjectName("DrawSplinePoints");
|
|
a_map["DrawSplinePoints"] = action;
|
|
|
|
// <[~ Polyline ~]>
|
|
|
|
action = new QAction(tr("&Polyline"), agm->polyline);
|
|
action->setIcon(QIcon(":/icons/polylines_polyline.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawPolyline()));
|
|
action->setObjectName("DrawPolyline");
|
|
a_map["DrawPolyline"] = action;
|
|
|
|
action = new QAction(tr("&Add node"), agm->polyline);
|
|
action->setShortcut(QKeySequence());
|
|
action->setIcon(QIcon(":/icons/insert_node.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineAdd()));
|
|
action->setObjectName("PolylineAdd");
|
|
a_map["PolylineAdd"] = action;
|
|
|
|
action = new QAction(tr("A&ppend node"), agm->polyline);
|
|
action->setShortcut(QKeySequence());
|
|
action->setIcon(QIcon(":/icons/append_node.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineAppend()));
|
|
action->setObjectName("PolylineAppend");
|
|
a_map["PolylineAppend"] = action;
|
|
|
|
action = new QAction(tr("&Delete node"), agm->polyline);
|
|
action->setShortcut(QKeySequence());
|
|
action->setIcon(QIcon(":/icons/delete_node.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineDel()));
|
|
action->setObjectName("PolylineDel");
|
|
a_map["PolylineDel"] = action;
|
|
|
|
action = new QAction(tr("Delete &between two nodes"), agm->polyline);
|
|
action->setShortcut(QKeySequence());
|
|
action->setIcon(QIcon(":/icons/delete_between_nodes.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineDelBetween()));
|
|
action->setObjectName("PolylineDelBetween");
|
|
a_map["PolylineDelBetween"] = action;
|
|
|
|
action = new QAction(tr("&Trim segments"), agm->polyline);
|
|
action->setShortcut(QKeySequence());
|
|
action->setIcon(QIcon(":/icons/trim.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineTrim()));
|
|
action->setObjectName("PolylineTrim");
|
|
a_map["PolylineTrim"] = action;
|
|
|
|
action = new QAction(tr("Create &Equidistant Polylines"), agm->polyline);
|
|
action->setIcon(QIcon(":/icons/create_equidistant_polyline.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineEquidistant()));
|
|
action->setObjectName("PolylineEquidistant");
|
|
a_map["PolylineEquidistant"] = action;
|
|
|
|
action = new QAction(tr("Create Polyline from Existing &Segments"), agm->polyline);
|
|
action->setIcon(QIcon(":/icons/create_polyline_from_existing_segments.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotPolylineSegment()));
|
|
action->setObjectName("PolylineSegment");
|
|
a_map["PolylineSegment"] = action;
|
|
|
|
// <[~ Misc ~]>
|
|
|
|
action = new QAction(QIcon(":/icons/text.svg"), tr("&MText"), agm->other);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawMText()));
|
|
action->setObjectName("DrawMText");
|
|
a_map["DrawMText"] = action;
|
|
|
|
action = new QAction(tr("&Text"), agm->other);
|
|
action->setIcon(QIcon(":/icons/text.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawText()));
|
|
action->setObjectName("DrawText");
|
|
a_map["DrawText"] = action;
|
|
|
|
action = new QAction(tr("&Hatch"), agm->other);
|
|
action->setIcon(QIcon(":/icons/hatch.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawHatch()));
|
|
action->setObjectName("DrawHatch");
|
|
a_map["DrawHatch"] = action;
|
|
|
|
action = new QAction(tr("Insert &Image"), agm->other);
|
|
action->setIcon(QIcon(":/icons/camera.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDrawImage()));
|
|
action->setObjectName("DrawImage");
|
|
a_map["DrawImage"] = action;
|
|
|
|
// <[~ Dimension ~]>
|
|
|
|
action = new QAction(tr("&Aligned"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_aligned.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimAligned()));
|
|
action->setObjectName("DimAligned");
|
|
a_map["DimAligned"] = action;
|
|
|
|
action = new QAction(tr("&Linear"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_linear.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimLinear()));
|
|
action->setObjectName("DimLinear");
|
|
a_map["DimLinear"] = action;
|
|
|
|
action = new QAction(tr("&Horizontal"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_horizontal.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimLinearHor()));
|
|
action->setObjectName("DimLinearHor");
|
|
a_map["DimLinearHor"] = action;
|
|
|
|
action = new QAction(tr("&Vertical"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_vertical.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimLinearVer()));
|
|
action->setObjectName("DimLinearVer");
|
|
a_map["DimLinearVer"] = action;
|
|
|
|
action = new QAction(tr("&Radial"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_radial.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimRadial()));
|
|
action->setObjectName("DimRadial");
|
|
a_map["DimRadial"] = action;
|
|
|
|
action = new QAction(tr("&Diametric"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_diametric.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimDiametric()));
|
|
action->setObjectName("DimDiametric");
|
|
a_map["DimDiametric"] = action;
|
|
|
|
action = new QAction(tr("&Angular"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_angular.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimAngular()));
|
|
action->setObjectName("DimAngular");
|
|
a_map["DimAngular"] = action;
|
|
|
|
action = new QAction(tr("&Leader"), agm->dimension);
|
|
action->setIcon(QIcon(":/icons/dim_leader.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDimLeader()));
|
|
action->setObjectName("DimLeader");
|
|
a_map["DimLeader"] = action;
|
|
|
|
// <[~ Modify ~]>
|
|
|
|
action = new QAction(tr("&Attributes"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/attributes.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyAttributes()));
|
|
action->setObjectName("ModifyAttributes");
|
|
action->setData("modifyattr, attr, ma");
|
|
a_map["ModifyAttributes"] = action;
|
|
|
|
action = new QAction(tr("&Delete"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/delete.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyDelete()));
|
|
action->setObjectName("ModifyDelete");
|
|
a_map["ModifyDelete"] = action;
|
|
|
|
action = new QAction(tr("Delete Freehand"), agm->modify);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyDeleteFree()));
|
|
action->setObjectName("ModifyDeleteFree");
|
|
a_map["ModifyDeleteFree"] = action;
|
|
|
|
action = new QAction(tr("&Move / Copy"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/move_copy.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyMove()));
|
|
action->setObjectName("ModifyMove");
|
|
action->setData("move, mv");
|
|
a_map["ModifyMove"] = action;
|
|
|
|
action = new QAction(tr("Re&vert direction"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/revert_direction.svg"));
|
|
action->setShortcut(QKeySequence(tr("Ctrl+R")));
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotModifyRevertDirection()));
|
|
action->setObjectName("ModifyRevertDirection");
|
|
action->setData("revert, rev");
|
|
a_map["ModifyRevertDirection"] = action;
|
|
|
|
action = new QAction(tr("&Rotate"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/rotate.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyRotate()));
|
|
action->setObjectName("ModifyRotate");
|
|
action->setData("rotate, ro");
|
|
a_map["ModifyRotate"] = action;
|
|
|
|
action = new QAction(tr("&Scale"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/scale.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyScale()));
|
|
action->setObjectName("ModifyScale");
|
|
action->setData("scale, sz");
|
|
a_map["ModifyScale"] = action;
|
|
|
|
action = new QAction(tr("&Mirror"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/mirror.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyMirror()));
|
|
action->setObjectName("ModifyMirror");
|
|
action->setData("mirror, mi");
|
|
a_map["ModifyMirror"] = action;
|
|
|
|
action = new QAction(tr("Mo&ve and Rotate"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/move_rotate.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyMoveRotate()));
|
|
action->setObjectName("ModifyMoveRotate");
|
|
a_map["ModifyMoveRotate"] = action;
|
|
|
|
action = new QAction(tr("Rotate T&wo"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/rotate2.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyRotate2()));
|
|
action->setObjectName("ModifyRotate2");
|
|
a_map["ModifyRotate2"] = action;
|
|
|
|
action = new QAction(tr("&Properties"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/properties.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyEntity()));
|
|
action->setObjectName("ModifyEntity");
|
|
action->setData("properties, prop");
|
|
a_map["ModifyEntity"] = action;
|
|
|
|
action = new QAction(tr("&Trim"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/trim.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyTrim()));
|
|
action->setObjectName("ModifyTrim");
|
|
action->setData("trim, tm");
|
|
a_map["ModifyTrim"] = action;
|
|
|
|
action = new QAction(tr("Tr&im Two"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/trim2.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyTrim2()));
|
|
action->setObjectName("ModifyTrim2");
|
|
action->setData("trim2, tm2");
|
|
a_map["ModifyTrim2"] = action;
|
|
|
|
action = new QAction(tr("&Lengthen"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/trim_value.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyTrimAmount()));
|
|
action->setObjectName("ModifyTrimAmount");
|
|
action->setData("lengthen, le");
|
|
a_map["ModifyTrimAmount"] = action;
|
|
|
|
action = new QAction(tr("O&ffset"),agm->modify);
|
|
action->setIcon(QIcon(":/icons/offset.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyOffset()));
|
|
action->setObjectName("ModifyOffset");
|
|
action->setData("offset, o");
|
|
a_map["ModifyOffset"] = action;
|
|
|
|
action = new QAction(tr("&Divide"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/divide.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyCut()));
|
|
action->setObjectName("ModifyCut");
|
|
action->setData("divide, cut, div");
|
|
a_map["ModifyCut"] = action;
|
|
|
|
action = new QAction(tr("&Stretch"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/stretch.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyStretch()));
|
|
action->setObjectName("ModifyStretch");
|
|
action->setData("stretch, ss");
|
|
a_map["ModifyStretch"] = action;
|
|
|
|
action = new QAction(tr("&Bevel"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/bevel.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyBevel()));
|
|
action->setObjectName("ModifyBevel");
|
|
action->setData("bevel, bev, ch");
|
|
a_map["ModifyBevel"] = action;
|
|
|
|
action = new QAction(tr("&Fillet"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/fillet.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyRound()));
|
|
action->setObjectName("ModifyRound");
|
|
action->setData("fillet, fi");
|
|
a_map["ModifyRound"] = action;
|
|
|
|
action = new QAction(tr("&Explode Text into Letters"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/explode_text_to_letters.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyExplodeText()));
|
|
action->setObjectName("ModifyExplodeText");
|
|
a_map["ModifyExplodeText"] = action;
|
|
|
|
action = new QAction(tr("Ex&plode"), agm->modify);
|
|
action->setIcon(QIcon(":/icons/explode.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksExplode()));
|
|
action->setObjectName("BlocksExplode");
|
|
a_map["BlocksExplode"] = action;
|
|
|
|
// <[~ Info ~]>
|
|
|
|
action = new QAction(tr("Point inside contour"), agm->info);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoInside()));
|
|
action->setObjectName("InfoInside");
|
|
a_map["InfoInside"] = action;
|
|
|
|
action = new QAction(tr("&Distance Point to Point"), agm->info);
|
|
action->setIcon(QIcon(":/icons/distance_point_to_point.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoDist()));
|
|
action->setObjectName("InfoDist");
|
|
a_map["InfoDist"] = action;
|
|
|
|
action = new QAction(tr("&Distance Entity to Point"), agm->info);
|
|
action->setIcon(QIcon(":/icons/distance_point_to_entity.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoDist2()));
|
|
action->setObjectName("InfoDist2");
|
|
a_map["InfoDist2"] = action;
|
|
|
|
action = new QAction(tr("An&gle between two lines"), agm->info);
|
|
action->setIcon(QIcon(":/icons/angle_line_to_line.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoAngle()));
|
|
action->setObjectName("InfoAngle");
|
|
a_map["InfoAngle"] = action;
|
|
|
|
action = new QAction(tr("&Total length of selected entities"), agm->info);
|
|
action->setIcon(QIcon(":/icons/total_length_selected_entities.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoTotalLength()));
|
|
action->setObjectName("InfoTotalLength");
|
|
a_map["InfoTotalLength"] = action;
|
|
|
|
action = new QAction(tr("Polygonal &Area"), agm->info);
|
|
action->setIcon(QIcon(":/icons/polygonal_area.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotInfoArea()));
|
|
action->setObjectName("InfoArea");
|
|
a_map["InfoArea"] = action;
|
|
|
|
foreach (QAction* value, a_map)
|
|
{
|
|
value->setCheckable(true);
|
|
}
|
|
|
|
// =============================
|
|
// <[~ not checkable actions ~]>
|
|
// =============================
|
|
|
|
|
|
// <[~ Order ~]>
|
|
|
|
action = new QAction(tr("move to bottom"), agm->modify);
|
|
action->setShortcut(QKeySequence(Qt::Key_End));
|
|
action->setIcon(QIcon(":/icons/downmost.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotOrderBottom()));
|
|
action->setObjectName("OrderBottom");
|
|
a_map["OrderBottom"] = action;
|
|
|
|
action = new QAction(tr("lower after entity"), agm->modify);
|
|
action->setShortcut(QKeySequence(Qt::Key_PageDown));
|
|
action->setIcon(QIcon(":/icons/down.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotOrderLower()));
|
|
action->setObjectName("OrderLower");
|
|
a_map["OrderLower"] = action;
|
|
|
|
action = new QAction(tr("raise over entity"), agm->modify);
|
|
action->setShortcut(QKeySequence(Qt::Key_PageUp));
|
|
action->setIcon(QIcon(":/icons/up.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotOrderRaise()));
|
|
action->setObjectName("OrderRaise");
|
|
a_map["OrderRaise"] = action;
|
|
|
|
action = new QAction(tr("move to top"), agm->modify);
|
|
action->setShortcut(QKeySequence(Qt::Key_Home));
|
|
action->setIcon(QIcon(":/icons/upmost.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotOrderTop()));
|
|
action->setObjectName("OrderTop");
|
|
a_map["OrderTop"] = action;
|
|
|
|
// <[~ Layer ~]>
|
|
|
|
action = new QAction(tr("&Show all"), agm->layer);
|
|
action->setIcon(QIcon(":/ui/visibleblock.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersDefreezeAll()));
|
|
action->setObjectName("LayersDefreezeAll");
|
|
a_map["LayersDefreezeAll"] = action;
|
|
|
|
action = new QAction(tr("&Hide all"), agm->layer);
|
|
action->setIcon(QIcon(":/ui/hiddenblock.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersFreezeAll()));
|
|
action->setObjectName("LayersFreezeAll");
|
|
a_map["LayersFreezeAll"] = action;
|
|
|
|
action = new QAction(tr("&Unlock all"), agm->layer);
|
|
action->setIcon(QIcon(":/ui/unlockedlayer.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersUnlockAll()));
|
|
action->setObjectName("LayersUnlockAll");
|
|
a_map["LayersUnlockAll"] = action;
|
|
|
|
action = new QAction(tr("&Lock all"), agm->layer);
|
|
action->setIcon(QIcon(":/ui/lockedlayer.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersLockAll()));
|
|
action->setObjectName("LayersLockAll");
|
|
a_map["LayersLockAll"] = action;
|
|
|
|
action = new QAction(tr("&Add Layer"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/add.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersAdd()));
|
|
action->setObjectName("LayersAdd");
|
|
a_map["LayersAdd"] = action;
|
|
|
|
action = new QAction(tr("&Remove Layer"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/remove.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersRemove()));
|
|
action->setObjectName("LayersRemove");
|
|
a_map["LayersRemove"] = action;
|
|
|
|
action = new QAction(tr("&Edit Layer"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/attributes.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersEdit()));
|
|
action->setObjectName("LayersEdit");
|
|
a_map["LayersEdit"] = action;
|
|
|
|
action = new QAction(tr("Toggle Layer Loc&k"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/locked.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersToggleLock()));
|
|
action->setObjectName("LayersToggleLock");
|
|
a_map["LayersToggleLock"] = action;
|
|
|
|
action = new QAction(tr("&Toggle Layer Visibility"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/visible.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersToggleView()));
|
|
action->setObjectName("LayersToggleView");
|
|
a_map["LayersToggleView"] = action;
|
|
|
|
action = new QAction(tr("Toggle Layer &Print"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/print.svg"));
|
|
connect(action, SIGNAL(triggered()), action_handler,
|
|
SLOT(slotLayersTogglePrint()));
|
|
action->setObjectName("LayersTogglePrint");
|
|
a_map["LayersTogglePrint"] = action;
|
|
|
|
action = new QAction(tr("Toggle &Construction Layer"), agm->layer);
|
|
action->setIcon(QIcon(":/icons/construction_layer.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotLayersToggleConstruction()));
|
|
action->setObjectName("LayersToggleConstruction");
|
|
a_map["LayersToggleConstruction"] = action;
|
|
|
|
// <[~ Block ~]>
|
|
|
|
action = new QAction(tr("&Show all"), agm->block);
|
|
action->setIcon(QIcon(":/ui/blockdefreeze.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksDefreezeAll()));
|
|
action->setObjectName("BlocksDefreezeAll");
|
|
a_map["BlocksDefreezeAll"] = action;
|
|
|
|
action= new QAction(tr("&Hide all"), agm->block);
|
|
action->setIcon(QIcon(":/ui/blockfreeze.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksFreezeAll()));
|
|
action->setObjectName("BlocksFreezeAll");
|
|
a_map["BlocksFreezeAll"] = action;
|
|
|
|
action = new QAction(tr("&Add Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/add.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksAdd()));
|
|
action->setObjectName("BlocksAdd");
|
|
a_map["BlocksAdd"] = action;
|
|
|
|
action = new QAction(tr("&Remove Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/remove.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksRemove()));
|
|
action->setObjectName("BlocksRemove");
|
|
a_map["BlocksRemove"] = action;
|
|
|
|
action = new QAction(tr("&Rename Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/rename_active_block.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksAttributes()));
|
|
action->setObjectName("BlocksAttributes");
|
|
a_map["BlocksAttributes"] = action;
|
|
|
|
action = new QAction(tr("&Edit Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/properties.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksEdit()));
|
|
action->setObjectName("BlocksEdit");
|
|
a_map["BlocksEdit"] = action;
|
|
|
|
action = new QAction( tr("&Save Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/save.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksSave()));
|
|
action->setObjectName("BlocksSave");
|
|
a_map["BlocksSave"] = action;
|
|
|
|
action = new QAction(tr("&Insert Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/insert_active_block.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksInsert()));
|
|
action->setObjectName("BlocksInsert");
|
|
a_map["BlocksInsert"] = action;
|
|
|
|
action = new QAction(tr("Toggle Block &Visibility"), agm->block);
|
|
action->setIcon(QIcon(":/ui/layertoggle.png"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksToggleView()));
|
|
action->setObjectName("BlocksToggleView");
|
|
a_map["BlocksToggleView"] = action;
|
|
|
|
action = new QAction(tr("&Create Block"), agm->block);
|
|
action->setIcon(QIcon(":/icons/create_block.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotBlocksCreate()));
|
|
action->setObjectName("BlocksCreate");
|
|
a_map["BlocksCreate"] = action;
|
|
|
|
// <[~ Options ~]>
|
|
|
|
action = new QAction(tr("&Application Preferences"), agm->options);
|
|
action->setIcon(QIcon(":/icons/settings.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(slotOptionsGeneral()));
|
|
action->setMenuRole(QAction::NoRole);
|
|
action->setObjectName("OptionsGeneral");
|
|
a_map["OptionsGeneral"] = action;
|
|
|
|
action = new QAction(tr("Current &Drawing Preferences"), agm->options);
|
|
action->setIcon(QIcon(":/icons/drawing_settings.svg"));
|
|
action->setShortcut(QKeySequence::Preferences);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotOptionsDrawing()));
|
|
action->setObjectName("OptionsDrawing");
|
|
a_map["OptionsDrawing"] = action;
|
|
connect( main_window, &QC_ApplicationWindow::windowsChanged, action, &QAction::setEnabled);
|
|
|
|
action = new QAction(tr("Widget Options"), agm->options);
|
|
action->setObjectName("WidgetOptions");
|
|
a_map["WidgetOptions"] = action;
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(widgetOptionsDialog()));
|
|
|
|
action = new QAction(tr("Device Options"), agm->options);
|
|
action->setObjectName("DeviceOptions");
|
|
a_map["DeviceOptions"] = action;
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(showDeviceOptions()));
|
|
|
|
// <[~ Modify ~]>
|
|
|
|
action = new QAction(tr("&Delete selected"), agm->edit);
|
|
action->setIcon(QIcon(":/icons/delete.svg"));
|
|
action->setShortcuts(QList<QKeySequence>() << QKeySequence::Delete << QKeySequence(Qt::Key_Backspace));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotModifyDeleteQuick()));
|
|
action->setObjectName("ModifyDeleteQuick");
|
|
a_map["ModifyDeleteQuick"] = action;
|
|
|
|
action = new QAction(tr("Select &All"), agm->select);
|
|
action->setShortcut(QKeySequence::SelectAll);
|
|
action->setIcon(QIcon(":/icons/select_all.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectAll()));
|
|
action->setObjectName("SelectAll");
|
|
a_map["SelectAll"] = action;
|
|
|
|
// <[~ Select ~]>
|
|
|
|
action = new QAction(tr("Deselect &all"), agm->select);
|
|
// RVT April 29, 2011 - Added esc key to de-select all entities
|
|
action->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Ctrl+K")));
|
|
action->setIcon(QIcon(":/icons/deselect_all.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotDeselectAll()));
|
|
action->setObjectName("DeselectAll");
|
|
a_map["DeselectAll"] = action;
|
|
|
|
action = new QAction(tr("Invert Selection"), agm->select);
|
|
action->setIcon(QIcon(":/icons/select_inverted.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotSelectInvert()));
|
|
action->setObjectName("SelectInvert");
|
|
a_map["SelectInvert"] = action;
|
|
|
|
// <[~ Misc ~]>
|
|
|
|
action = new QAction(tr("Export as CA&M/plain SVG..."), agm->file);
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotFileExportMakerCam()));
|
|
action->setObjectName("FileExportMakerCam");
|
|
a_map["FileExportMakerCam"] = action;
|
|
|
|
// action = new QAction(tr("Regenerate Dimension Entities"), disable_group);
|
|
// connect(action, SIGNAL(triggered()), action_handler, SLOT(slotToolRegenerateDimensions()));
|
|
// action->setObjectName("ToolRegenerateDimensions");
|
|
// a_map["ToolRegenerateDimensions"] = action;
|
|
|
|
|
|
// ===========================
|
|
// <[~ Main Window Actions ~]>
|
|
// ===========================
|
|
|
|
|
|
action = new QAction(tr("&Export as image"), agm->file);
|
|
action->setIcon(QIcon(":/icons/export.svg"));
|
|
connect(action, SIGNAL( triggered()), main_window, SLOT(slotFileExport()));
|
|
action->setObjectName("FileExport");
|
|
a_map["FileExport"] = action;
|
|
|
|
action = new QAction(tr("&Close"), agm->file);
|
|
action->setIcon(QIcon(":/icons/close.svg"));
|
|
action->setShortcut(QKeySequence::Close);
|
|
action->setShortcutContext(Qt::WidgetShortcut);
|
|
action->setObjectName("FileClose");
|
|
a_map["FileClose"] = action;
|
|
|
|
action = new QAction(tr("Close All"), agm->file);
|
|
action->setIcon(QIcon(":/icons/close_all.svg"));
|
|
QKeySequence shortcut = QKeySequence::Close;
|
|
action->setShortcut(QKeySequence("Shift+" + shortcut.toString()));
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileCloseAll()));
|
|
action->setObjectName("FileCloseAll");
|
|
a_map["FileCloseAll"] = action;
|
|
|
|
action = new QAction(tr("Export as PDF"), agm->file);
|
|
action->setIcon(QIcon(":/icons/export_pdf.svg"));
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFilePrintPDF()));
|
|
action->setObjectName("FilePrintPDF");
|
|
a_map["FilePrintPDF"] = action;
|
|
|
|
action = new QAction(tr("&Block"), agm->file);
|
|
action->setIcon(QIcon(":/icons/insert_active_block.svg"));
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotImportBlock()));
|
|
action->setObjectName("BlocksImport");
|
|
a_map["BlocksImport"] = action;
|
|
|
|
// <[~ View ~]>
|
|
|
|
action = new QAction(tr("&Fullscreen"), agm->view);
|
|
#if defined(Q_OS_LINUX)
|
|
action->setShortcut(QKeySequence("F11"));
|
|
#else
|
|
action->setShortcut(QKeySequence::FullScreen);
|
|
#endif
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(toggled(bool)), main_window, SLOT(toggleFullscreen(bool)));
|
|
action->setObjectName("Fullscreen");
|
|
a_map["Fullscreen"] = action;
|
|
|
|
action = new QAction(tr("&Grid"), agm->view);
|
|
action->setIcon(QIcon(":/icons/grid.svg"));
|
|
action->setShortcut(QKeySequence(tr("Ctrl+G", "Toggle Grid")));
|
|
action->setCheckable(true);
|
|
action->setChecked(true);
|
|
connect(main_window, SIGNAL(gridChanged(bool)), action, SLOT(setChecked(bool)));
|
|
connect(action, SIGNAL(toggled(bool)), main_window, SLOT(slotViewGrid(bool)));
|
|
action->setObjectName("ViewGrid");
|
|
a_map["ViewGrid"] = action;
|
|
|
|
action = new QAction(tr("&Draft"), agm->view);
|
|
action->setIcon(QIcon(":/icons/draft.svg"));
|
|
action->setCheckable(true);
|
|
action->setShortcut(QKeySequence(tr("Ctrl+D", "Toggle Draft Mode")));
|
|
connect(action, SIGNAL(toggled(bool)), main_window, SLOT(slotViewDraft(bool)));
|
|
connect(main_window, SIGNAL(draftChanged(bool)), action, SLOT(setChecked(bool)));
|
|
action->setObjectName("ViewDraft");
|
|
a_map["ViewDraft"] = action;
|
|
|
|
action = new QAction(tr("&Statusbar"), agm->view);
|
|
action->setCheckable(true);
|
|
action->setChecked(false);
|
|
action->setShortcut(QKeySequence(tr("Ctrl+I", "Hide Statusbar")));
|
|
connect(action, SIGNAL(toggled(bool)), main_window, SLOT(slotViewStatusBar(bool)));
|
|
action->setObjectName("ViewStatusBar");
|
|
a_map["ViewStatusBar"] = action;
|
|
|
|
action = new QAction(tr("Focus on &Command Line"), agm->view);
|
|
action->setIcon(QIcon(":/main/editclear.png"));
|
|
QList<QKeySequence> commandLineShortcuts;
|
|
commandLineShortcuts<<QKeySequence(Qt::CTRL + Qt::Key_M)<<QKeySequence(Qt::Key_Colon)<<QKeySequence(Qt::Key_Space);
|
|
action->setShortcuts(commandLineShortcuts);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFocusCommandLine()));
|
|
action->setObjectName("FocusCommand");
|
|
a_map["FocusCommand"] = action;
|
|
|
|
action = new QAction(tr("Left"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/dockwidgets_left"));
|
|
connect(action, SIGNAL(toggled(bool)),
|
|
main_window, SLOT(toggleLeftDockArea(bool)));
|
|
action->setCheckable(true);
|
|
action->setChecked(false);
|
|
action->setObjectName("LeftDockAreaToggle");
|
|
a_map["LeftDockAreaToggle"] = action;
|
|
|
|
action = new QAction(tr("Right"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/dockwidgets_right"));
|
|
connect(action, SIGNAL(toggled(bool)),
|
|
main_window, SLOT(toggleRightDockArea(bool)));
|
|
action->setCheckable(true);
|
|
action->setChecked(true);
|
|
action->setObjectName("RightDockAreaToggle");
|
|
a_map["RightDockAreaToggle"] = action;
|
|
|
|
action = new QAction(tr("Top"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/dockwidgets_top"));
|
|
connect(action, SIGNAL(toggled(bool)),
|
|
main_window, SLOT(toggleTopDockArea(bool)));
|
|
action->setCheckable(true);
|
|
action->setChecked(false);
|
|
action->setObjectName("TopDockAreaToggle");
|
|
a_map["TopDockAreaToggle"] = action;
|
|
|
|
action = new QAction(tr("Bottom"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/dockwidgets_bottom"));
|
|
connect(action, SIGNAL(toggled(bool)),
|
|
main_window, SLOT(toggleBottomDockArea(bool)));
|
|
action->setCheckable(true);
|
|
action->setChecked(false);
|
|
action->setObjectName("BottomDockAreaToggle");
|
|
a_map["BottomDockAreaToggle"] = action;
|
|
|
|
action = new QAction(tr("Floating"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/dockwidgets_floating"));
|
|
connect(action, SIGNAL(toggled(bool)),
|
|
main_window, SLOT(toggleFloatingDockwidgets(bool)));
|
|
action->setCheckable(true);
|
|
action->setChecked(false);
|
|
action->setObjectName("FloatingDockwidgetsToggle");
|
|
a_map["FloatingDockwidgetsToggle"] = action;
|
|
|
|
action = new QAction(tr("Reload Style Sheet"), agm->options);
|
|
action->setShortcut(QKeySequence("Ctrl+T"));
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(reloadStyleSheet()));
|
|
action->setObjectName("ReloadStyleSheet");
|
|
a_map["ReloadStyleSheet"] = action;
|
|
|
|
action = new QAction(tr("Menu Creator"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/create_menu.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(invokeMenuCreator()));
|
|
action->setObjectName("InvokeMenuCreator");
|
|
a_map["InvokeMenuCreator"] = action;
|
|
|
|
action = new QAction(tr("Toolbar Creator"), agm->widgets);
|
|
action->setIcon(QIcon(":/icons/create_toolbar.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
main_window, SLOT(invokeToolbarCreator()));
|
|
action->setObjectName("InvokeToolbarCreator");
|
|
a_map["InvokeToolbarCreator"] = action;
|
|
|
|
commonActions(a_map, agm);
|
|
}
|
|
|
|
void LC_ActionFactory::commonActions(QMap<QString, QAction*>& a_map, LC_ActionGroupManager* agm)
|
|
{
|
|
QAction* action;
|
|
|
|
// <[~ Edit ~]>
|
|
|
|
action = new QAction(tr("&Selection pointer"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("go-previous-view", QIcon(":/icons/cursor.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/cursor.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditKillAllActions()));
|
|
action->setObjectName("EditKillAllActions");
|
|
a_map["EditKillAllActions"] = action;
|
|
|
|
action = new QAction(tr("&Undo"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("edit-undo", QIcon(":/icons/undo.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/undo.svg"));
|
|
action->setShortcut(QKeySequence::Undo);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditUndo()));
|
|
action->setObjectName("EditUndo");
|
|
a_map["EditUndo"] = action;
|
|
|
|
action = new QAction(tr("&Redo"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("edit-redo", QIcon(":/icons/redo.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/redo.svg"));
|
|
action->setShortcut(QKeySequence::Redo);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditRedo()));
|
|
action->setObjectName("EditRedo");
|
|
a_map["EditRedo"] = action;
|
|
|
|
action = new QAction(tr("Cu&t"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("edit-cut", QIcon(":/icons/cut.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/cut.svg"));
|
|
action->setShortcut(QKeySequence::Cut);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditCut()));
|
|
action->setObjectName("EditCut");
|
|
a_map["EditCut"] = action;
|
|
|
|
action = new QAction(tr("&Copy"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("edit-copy", QIcon(":/icons/copy.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/copy.svg"));
|
|
action->setShortcut(QKeySequence::Copy);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditCopy()));
|
|
action->setObjectName("EditCopy");
|
|
a_map["EditCopy"] = action;
|
|
|
|
action = new QAction(tr("&Paste"), agm->edit);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("edit-paste", QIcon(":/icons/paste.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/paste.svg"));
|
|
action->setShortcut(QKeySequence::Paste);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotEditPaste()));
|
|
action->setObjectName("EditPaste");
|
|
a_map["EditPaste"] = action;
|
|
|
|
// <[~ Zoom ~]>
|
|
|
|
action = new QAction(tr("Zoom &In"), agm->view);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("zoom-in", QIcon(":/icons/zoom_in.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/zoom_in.svg"));
|
|
action->setShortcut(QKeySequence::ZoomIn);
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotZoomIn()));
|
|
action->setObjectName("ZoomIn");
|
|
a_map["ZoomIn"] = action;
|
|
|
|
action = new QAction(tr("Zoom &Out"), agm->view);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("zoom-out", QIcon(":/icons/zoom_out.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/zoom_out.svg"));
|
|
action->setShortcut(QKeySequence::ZoomOut);
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotZoomOut()));
|
|
action->setObjectName("ZoomOut");
|
|
a_map["ZoomOut"] = action;
|
|
|
|
action = new QAction(tr("&Auto Zoom"), agm->view);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("zoom-fit-best", QIcon(":/icons/zoom_auto.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/zoom_auto.svg"));
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotZoomAuto()));
|
|
action->setObjectName("ZoomAuto");
|
|
a_map["ZoomAuto"] = action;
|
|
|
|
action = new QAction(tr("Previous &View"), agm->view);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("zoom-previous", QIcon(":/icons/zoom_previous.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/zoom_previous.svg"));
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotZoomPrevious()));
|
|
action->setEnabled(false);
|
|
action->setObjectName("ZoomPrevious");
|
|
a_map["ZoomPrevious"] = action;
|
|
|
|
action = new QAction(tr("&Redraw"), agm->view);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("view-refresh", QIcon(":/icons/redraw.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/redraw.svg"));
|
|
action->setShortcut(QKeySequence::Refresh);
|
|
connect(action, SIGNAL(triggered()),
|
|
action_handler, SLOT(slotZoomRedraw()));
|
|
action->setObjectName("ZoomRedraw");
|
|
a_map["ZoomRedraw"] = action;
|
|
|
|
action = new QAction(tr("&Window Zoom"), agm->other);
|
|
action->setCheckable(true);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("zoom-select", QIcon(":/icons/zoom_window.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/zoom_window.svg"));
|
|
connect(action, SIGNAL(triggered()), action_handler, SLOT(slotZoomWindow()));
|
|
action->setObjectName("ZoomWindow");
|
|
a_map["ZoomWindow"] = action;
|
|
|
|
// <[~ File ~]>
|
|
|
|
action = new QAction(tr("&New"), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-new", QIcon(":/icons/new.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/new.svg"));
|
|
action->setShortcut(QKeySequence::New);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileNewNew()));
|
|
action->setObjectName("FileNew");
|
|
a_map["FileNew"] = action;
|
|
|
|
action = new QAction(tr("New From &Template"), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-new", QIcon(":/icons/new_from_template.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/new_from_template.svg"));
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileNewTemplate()));
|
|
action->setObjectName("FileNewTemplate");
|
|
a_map["FileNewTemplate"] = action;
|
|
|
|
action = new QAction(tr("&Open..."), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/open.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/open.svg"));
|
|
action->setShortcut(QKeySequence::Open);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileOpen()));
|
|
action->setObjectName("FileOpen");
|
|
a_map["FileOpen"] = action;
|
|
|
|
action = new QAction(tr("&Save"), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/save.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/save.svg"));
|
|
action->setShortcut(QKeySequence::Save);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileSave()));
|
|
action->setObjectName("FileSave");
|
|
a_map["FileSave"] = action;
|
|
|
|
action = new QAction(tr("Save &as..."), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/icons/save_as.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/save_as.svg"));
|
|
action->setShortcut(QKeySequence::SaveAs);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileSaveAs()));
|
|
action->setObjectName("FileSaveAs");
|
|
a_map["FileSaveAs"] = action;
|
|
|
|
action = new QAction(tr("Save A&ll..."), agm->file);
|
|
action->setIcon(QIcon(":/icons/save_all.svg"));
|
|
QKeySequence shortcut = QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S);
|
|
// only define this shortcut for platforms not already using it for save as
|
|
if (shortcut != QKeySequence::SaveAs)
|
|
action->setShortcut(shortcut);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileSaveAll()));
|
|
action->setObjectName("FileSaveAll");
|
|
a_map["FileSaveAll"] = action;
|
|
|
|
action = new QAction(tr("&Print..."), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-print", QIcon(":/icons/print.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/print.svg"));
|
|
action->setShortcut(QKeySequence::Print);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFilePrint()));
|
|
connect(main_window, SIGNAL(printPreviewChanged(bool)), action, SLOT(setChecked(bool)));
|
|
action->setObjectName("FilePrint");
|
|
a_map["FilePrint"] = action;
|
|
|
|
action = new QAction(tr("Print Pre&view"), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("document-print-preview", QIcon(":/icons/print_preview.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/print_preview.svg"));
|
|
action->setCheckable(true);
|
|
connect(action, SIGNAL(triggered(bool)), main_window, SLOT(slotFilePrintPreview(bool)));
|
|
connect(main_window, SIGNAL(printPreviewChanged(bool)), action, SLOT(setChecked(bool)));
|
|
action->setObjectName("FilePrintPreview");
|
|
a_map["FilePrintPreview"] = action;
|
|
|
|
action = new QAction(tr("&Quit"), agm->file);
|
|
if (using_theme)
|
|
action->setIcon(QIcon::fromTheme("application-exit", QIcon(":/icons/quit.svg")));
|
|
else
|
|
action->setIcon(QIcon(":/icons/quit.svg"));
|
|
action->setShortcut(QKeySequence::Quit);
|
|
connect(action, SIGNAL(triggered()), main_window, SLOT(slotFileQuit()));
|
|
action->setObjectName("FileQuit");
|
|
a_map["FileQuit"] = action;
|
|
}
|