|
@@ -58,17 +58,6 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
# ############ BUILDING THE GUI IS EXECUTED HERE ########################
|
|
# ############ BUILDING THE GUI IS EXECUTED HERE ########################
|
|
|
# #######################################################################
|
|
# #######################################################################
|
|
|
|
|
|
|
|
- # #######################################################################
|
|
|
|
|
- # ####################### TCL Shell DOCK ################################
|
|
|
|
|
- # #######################################################################
|
|
|
|
|
- self.shell_dock = QtWidgets.QDockWidget("FlatCAM TCL Shell")
|
|
|
|
|
- self.shell_dock.setObjectName('Shell_DockWidget')
|
|
|
|
|
- self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
|
|
|
|
|
- self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable |
|
|
|
|
|
- QtWidgets.QDockWidget.DockWidgetFloatable |
|
|
|
|
|
- QtWidgets.QDockWidget.DockWidgetClosable)
|
|
|
|
|
- self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock)
|
|
|
|
|
-
|
|
|
|
|
# #######################################################################
|
|
# #######################################################################
|
|
|
# ###################### Menu BUILDING ##################################
|
|
# ###################### Menu BUILDING ##################################
|
|
|
# #######################################################################
|
|
# #######################################################################
|
|
@@ -200,9 +189,9 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.menufilerunscript = QtWidgets.QAction(
|
|
self.menufilerunscript = QtWidgets.QAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/script16.png'), '%s\tShift+S' % _('Run Script ...'), self)
|
|
QtGui.QIcon(self.app.resource_location + '/script16.png'), '%s\tShift+S' % _('Run Script ...'), self)
|
|
|
self.menufilerunscript.setToolTip(
|
|
self.menufilerunscript.setToolTip(
|
|
|
- _("Will run the opened Tcl Script thus\n"
|
|
|
|
|
- "enabling the automation of certain\n"
|
|
|
|
|
- "functions of FlatCAM.")
|
|
|
|
|
|
|
+ _("Will run the opened Tcl Script thus\n"
|
|
|
|
|
+ "enabling the automation of certain\n"
|
|
|
|
|
+ "functions of FlatCAM.")
|
|
|
)
|
|
)
|
|
|
self.menufile_scripting.addAction(self.menufilenewscript)
|
|
self.menufile_scripting.addAction(self.menufilenewscript)
|
|
|
self.menufile_scripting.addAction(self.menufileopenscript)
|
|
self.menufile_scripting.addAction(self.menufileopenscript)
|
|
@@ -265,9 +254,9 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.menufileexportexcellon = QtWidgets.QAction(
|
|
self.menufileexportexcellon = QtWidgets.QAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export &Excellon ...'), self)
|
|
QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export &Excellon ...'), self)
|
|
|
self.menufileexportexcellon.setToolTip(
|
|
self.menufileexportexcellon.setToolTip(
|
|
|
- _("Will export an Excellon Object as Excellon file,\n"
|
|
|
|
|
- "the coordinates format, the file units and zeros\n"
|
|
|
|
|
- "are set in Preferences -> Excellon Export.")
|
|
|
|
|
|
|
+ _("Will export an Excellon Object as Excellon file,\n"
|
|
|
|
|
+ "the coordinates format, the file units and zeros\n"
|
|
|
|
|
+ "are set in Preferences -> Excellon Export.")
|
|
|
)
|
|
)
|
|
|
self.menufileexport.addAction(self.menufileexportexcellon)
|
|
self.menufileexport.addAction(self.menufileexportexcellon)
|
|
|
|
|
|
|
@@ -344,16 +333,16 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.menuedit_convertjoin = self.menuedit_convert.addAction(
|
|
self.menuedit_convertjoin = self.menuedit_convert.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('&Join Geo/Gerber/Exc -> Geo'))
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('&Join Geo/Gerber/Exc -> Geo'))
|
|
|
self.menuedit_convertjoin.setToolTip(
|
|
self.menuedit_convertjoin.setToolTip(
|
|
|
- _("Merge a selection of objects, which can be of type:\n"
|
|
|
|
|
- "- Gerber\n"
|
|
|
|
|
- "- Excellon\n"
|
|
|
|
|
- "- Geometry\n"
|
|
|
|
|
- "into a new combo Geometry object.")
|
|
|
|
|
|
|
+ _("Merge a selection of objects, which can be of type:\n"
|
|
|
|
|
+ "- Gerber\n"
|
|
|
|
|
+ "- Excellon\n"
|
|
|
|
|
+ "- Geometry\n"
|
|
|
|
|
+ "into a new combo Geometry object.")
|
|
|
)
|
|
)
|
|
|
self.menuedit_convertjoinexc = self.menuedit_convert.addAction(
|
|
self.menuedit_convertjoinexc = self.menuedit_convert.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Excellon(s) -> Excellon'))
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Excellon(s) -> Excellon'))
|
|
|
self.menuedit_convertjoinexc.setToolTip(
|
|
self.menuedit_convertjoinexc.setToolTip(
|
|
|
- _("Merge a selection of Excellon objects into a new combo Excellon object.")
|
|
|
|
|
|
|
+ _("Merge a selection of Excellon objects into a new combo Excellon object.")
|
|
|
)
|
|
)
|
|
|
self.menuedit_convertjoingrb = self.menuedit_convert.addAction(
|
|
self.menuedit_convertjoingrb = self.menuedit_convert.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Gerber(s) -> Gerber'))
|
|
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Gerber(s) -> Gerber'))
|
|
@@ -365,14 +354,14 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.menuedit_convert_sg2mg = self.menuedit_convert.addAction(
|
|
self.menuedit_convert_sg2mg = self.menuedit_convert.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Single to MultiGeo'))
|
|
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Single to MultiGeo'))
|
|
|
self.menuedit_convert_sg2mg.setToolTip(
|
|
self.menuedit_convert_sg2mg.setToolTip(
|
|
|
- _("Will convert a Geometry object from single_geometry type\n"
|
|
|
|
|
- "to a multi_geometry type.")
|
|
|
|
|
|
|
+ _("Will convert a Geometry object from single_geometry type\n"
|
|
|
|
|
+ "to a multi_geometry type.")
|
|
|
)
|
|
)
|
|
|
self.menuedit_convert_mg2sg = self.menuedit_convert.addAction(
|
|
self.menuedit_convert_mg2sg = self.menuedit_convert.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Multi to SingleGeo'))
|
|
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Multi to SingleGeo'))
|
|
|
self.menuedit_convert_mg2sg.setToolTip(
|
|
self.menuedit_convert_mg2sg.setToolTip(
|
|
|
- _("Will convert a Geometry object from multi_geometry type\n"
|
|
|
|
|
- "to a single_geometry type.")
|
|
|
|
|
|
|
+ _("Will convert a Geometry object from multi_geometry type\n"
|
|
|
|
|
+ "to a single_geometry type.")
|
|
|
)
|
|
)
|
|
|
# Separator
|
|
# Separator
|
|
|
self.menuedit_convert.addSeparator()
|
|
self.menuedit_convert.addSeparator()
|
|
@@ -825,10 +814,10 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.grb_edit_toolbar.setObjectName('GrbEditor_TB')
|
|
self.grb_edit_toolbar.setObjectName('GrbEditor_TB')
|
|
|
self.addToolBar(self.grb_edit_toolbar)
|
|
self.addToolBar(self.grb_edit_toolbar)
|
|
|
|
|
|
|
|
- self.snap_toolbar = QtWidgets.QToolBar(_('Grid Toolbar'))
|
|
|
|
|
- self.snap_toolbar.setObjectName('Snap_TB')
|
|
|
|
|
- # self.addToolBar(self.snap_toolbar)
|
|
|
|
|
- self.snap_toolbar.setStyleSheet(
|
|
|
|
|
|
|
+ self.status_toolbar = QtWidgets.QToolBar(_('Grid Toolbar'))
|
|
|
|
|
+ self.status_toolbar.setObjectName('Snap_TB')
|
|
|
|
|
+ # self.addToolBar(self.status_toolbar)
|
|
|
|
|
+ self.status_toolbar.setStyleSheet(
|
|
|
"""
|
|
"""
|
|
|
QToolBar { padding: 0; }
|
|
QToolBar { padding: 0; }
|
|
|
QToolBar QToolButton { padding: -2; margin: -2; }
|
|
QToolBar QToolButton { padding: -2; margin: -2; }
|
|
@@ -1088,42 +1077,61 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
# ########################################################################
|
|
# ########################################################################
|
|
|
|
|
|
|
|
# Snap GRID toolbar is always active to facilitate usage of measurements done on GRID
|
|
# Snap GRID toolbar is always active to facilitate usage of measurements done on GRID
|
|
|
- self.grid_snap_btn = self.snap_toolbar.addAction(
|
|
|
|
|
|
|
+ self.grid_snap_btn = self.status_toolbar.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid'))
|
|
QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid'))
|
|
|
self.grid_gap_x_entry = FCEntry2()
|
|
self.grid_gap_x_entry = FCEntry2()
|
|
|
self.grid_gap_x_entry.setMaximumWidth(70)
|
|
self.grid_gap_x_entry.setMaximumWidth(70)
|
|
|
self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance"))
|
|
self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance"))
|
|
|
- self.snap_toolbar.addWidget(self.grid_gap_x_entry)
|
|
|
|
|
|
|
+ self.status_toolbar.addWidget(self.grid_gap_x_entry)
|
|
|
|
|
|
|
|
- self.snap_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
|
|
|
|
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
self.grid_gap_link_cb = FCCheckBox()
|
|
self.grid_gap_link_cb = FCCheckBox()
|
|
|
self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n"
|
|
self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n"
|
|
|
"is copied to the Grid_Y value."))
|
|
"is copied to the Grid_Y value."))
|
|
|
- self.snap_toolbar.addWidget(self.grid_gap_link_cb)
|
|
|
|
|
- self.snap_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
|
|
|
|
+ self.status_toolbar.addWidget(self.grid_gap_link_cb)
|
|
|
|
|
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
|
|
|
|
|
self.grid_gap_y_entry = FCEntry2()
|
|
self.grid_gap_y_entry = FCEntry2()
|
|
|
self.grid_gap_y_entry.setMaximumWidth(70)
|
|
self.grid_gap_y_entry.setMaximumWidth(70)
|
|
|
self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance"))
|
|
self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance"))
|
|
|
- self.snap_toolbar.addWidget(self.grid_gap_y_entry)
|
|
|
|
|
|
|
+ self.status_toolbar.addWidget(self.grid_gap_y_entry)
|
|
|
|
|
+
|
|
|
|
|
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
|
|
+ self.axis_status_label = FCLabel()
|
|
|
|
|
+ self.axis_status_label.setToolTip(_("Toggle the display of axis on canvas"))
|
|
|
|
|
+ self.axis_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/axis16.png'))
|
|
|
|
|
+ self.status_toolbar.addWidget(self.axis_status_label)
|
|
|
|
|
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
|
|
|
|
|
|
|
|
self.shell_status_label = FCLabel()
|
|
self.shell_status_label = FCLabel()
|
|
|
|
|
+ self.shell_status_label.setToolTip(_("Command Line"))
|
|
|
self.shell_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/shell20.png'))
|
|
self.shell_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/shell20.png'))
|
|
|
- self.snap_toolbar.addWidget(self.shell_status_label)
|
|
|
|
|
|
|
+ self.status_toolbar.addWidget(self.shell_status_label)
|
|
|
|
|
|
|
|
self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False)
|
|
self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False)
|
|
|
|
|
|
|
|
- self.corner_snap_btn = self.snap_toolbar.addAction(
|
|
|
|
|
|
|
+ self.corner_snap_btn = self.status_toolbar.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner'))
|
|
QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner'))
|
|
|
|
|
|
|
|
self.snap_max_dist_entry = FCEntry()
|
|
self.snap_max_dist_entry = FCEntry()
|
|
|
self.snap_max_dist_entry.setMaximumWidth(70)
|
|
self.snap_max_dist_entry.setMaximumWidth(70)
|
|
|
self.snap_max_dist_entry.setToolTip(_("Max. magnet distance"))
|
|
self.snap_max_dist_entry.setToolTip(_("Max. magnet distance"))
|
|
|
- self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry)
|
|
|
|
|
|
|
+ self.snap_magnet = self.status_toolbar.addWidget(self.snap_max_dist_entry)
|
|
|
|
|
|
|
|
self.corner_snap_btn.setVisible(False)
|
|
self.corner_snap_btn.setVisible(False)
|
|
|
self.snap_magnet.setVisible(False)
|
|
self.snap_magnet.setVisible(False)
|
|
|
|
|
|
|
|
|
|
+ # #######################################################################
|
|
|
|
|
+ # ####################### TCL Shell DOCK ################################
|
|
|
|
|
+ # #######################################################################
|
|
|
|
|
+ self.shell_dock = FCDock("FlatCAM TCL Shell", close_callback=self.toggle_shell_ui)
|
|
|
|
|
+ self.shell_dock.setObjectName('Shell_DockWidget')
|
|
|
|
|
+ self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
|
|
|
|
|
+ self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable |
|
|
|
|
|
+ QtWidgets.QDockWidget.DockWidgetFloatable |
|
|
|
|
|
+ QtWidgets.QDockWidget.DockWidgetClosable)
|
|
|
|
|
+ self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock)
|
|
|
|
|
+
|
|
|
# ########################################################################
|
|
# ########################################################################
|
|
|
# ########################## Notebook # ##################################
|
|
# ########################## Notebook # ##################################
|
|
|
# ########################################################################
|
|
# ########################################################################
|
|
@@ -1493,8 +1501,7 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill"))
|
|
QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill"))
|
|
|
|
|
|
|
|
self.popMenu.addSeparator()
|
|
self.popMenu.addSeparator()
|
|
|
- self.popmenu_copy = self.popMenu.addAction(
|
|
|
|
|
- QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
|
|
|
|
|
|
|
+ self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
|
|
|
self.popmenu_delete = self.popMenu.addAction(
|
|
self.popmenu_delete = self.popMenu.addAction(
|
|
|
QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete"))
|
|
QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete"))
|
|
|
self.popmenu_edit = self.popMenu.addAction(
|
|
self.popmenu_edit = self.popMenu.addAction(
|
|
@@ -1517,19 +1524,19 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.infobar.addWidget(self.fcinfo, stretch=1)
|
|
self.infobar.addWidget(self.fcinfo, stretch=1)
|
|
|
|
|
|
|
|
# self.rel_position_label = QtWidgets.QLabel(
|
|
# self.rel_position_label = QtWidgets.QLabel(
|
|
|
- # "<b>Dx</b>: 0.0000 <b>Dy</b>: 0.0000 ")
|
|
|
|
|
|
|
+ # "<b>Dx</b>: 0.0000 <b>Dy</b>: 0.0000 ")
|
|
|
# self.rel_position_label.setMinimumWidth(110)
|
|
# self.rel_position_label.setMinimumWidth(110)
|
|
|
# self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position"))
|
|
# self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position"))
|
|
|
# self.infobar.addWidget(self.rel_position_label)
|
|
# self.infobar.addWidget(self.rel_position_label)
|
|
|
#
|
|
#
|
|
|
- self.position_label = QtWidgets.QLabel(
|
|
|
|
|
- " <b>X</b>: 0.0000 <b>Y</b>: 0.0000 ")
|
|
|
|
|
|
|
+ self.position_label = QtWidgets.QLabel(" <b>X</b>: 0.0000 <b>Y</b>: 0.0000 ")
|
|
|
self.position_label.setMinimumWidth(110)
|
|
self.position_label.setMinimumWidth(110)
|
|
|
- self.position_label.setToolTip(_("Absolute measurement.\nReference is (X=0, Y= 0) position"))
|
|
|
|
|
|
|
+ self.position_label.setToolTip(_("Absolute measurement.\n"
|
|
|
|
|
+ "Reference is (X=0, Y= 0) position"))
|
|
|
self.infobar.addWidget(self.position_label)
|
|
self.infobar.addWidget(self.position_label)
|
|
|
|
|
|
|
|
- self.snap_toolbar.setMaximumHeight(24)
|
|
|
|
|
- self.infobar.addWidget(self.snap_toolbar)
|
|
|
|
|
|
|
+ self.status_toolbar.setMaximumHeight(24)
|
|
|
|
|
+ self.infobar.addWidget(self.status_toolbar)
|
|
|
|
|
|
|
|
self.hud_label = FCLabel("H")
|
|
self.hud_label = FCLabel("H")
|
|
|
self.hud_label.setToolTip(_("HUD (Heads up display)"))
|
|
self.hud_label.setToolTip(_("HUD (Heads up display)"))
|
|
@@ -1537,10 +1544,14 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.infobar.addWidget(self.hud_label)
|
|
self.infobar.addWidget(self.hud_label)
|
|
|
|
|
|
|
|
self.wplace_label = FCLabel("A4")
|
|
self.wplace_label = FCLabel("A4")
|
|
|
|
|
+ self.wplace_label.setToolTip(_("Draw a delimiting rectangle on canvas.\n"
|
|
|
|
|
+ "The purpose is to illustrate the limits for our work.")
|
|
|
|
|
+ )
|
|
|
self.wplace_label.setMargin(2)
|
|
self.wplace_label.setMargin(2)
|
|
|
self.infobar.addWidget(self.wplace_label)
|
|
self.infobar.addWidget(self.wplace_label)
|
|
|
|
|
|
|
|
self.units_label = QtWidgets.QLabel("[mm]")
|
|
self.units_label = QtWidgets.QLabel("[mm]")
|
|
|
|
|
+ self.units_label.setToolTip(_("Application units"))
|
|
|
self.units_label.setMargin(2)
|
|
self.units_label.setMargin(2)
|
|
|
self.infobar.addWidget(self.units_label)
|
|
self.infobar.addWidget(self.units_label)
|
|
|
|
|
|
|
@@ -1659,8 +1670,8 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.clear_btn.clicked.connect(self.on_gui_clear)
|
|
self.clear_btn.clicked.connect(self.on_gui_clear)
|
|
|
|
|
|
|
|
self.wplace_label.clicked.connect(self.app.on_workspace_toggle)
|
|
self.wplace_label.clicked.connect(self.app.on_workspace_toggle)
|
|
|
- self.hud_label.clicked.connect(self.app.on_toggle_hud)
|
|
|
|
|
self.shell_status_label.clicked.connect(self.toggle_shell_ui)
|
|
self.shell_status_label.clicked.connect(self.toggle_shell_ui)
|
|
|
|
|
+
|
|
|
# to be used in the future
|
|
# to be used in the future
|
|
|
# self.plot_tab_area.tab_attached.connect(lambda x: print(x))
|
|
# self.plot_tab_area.tab_attached.connect(lambda x: print(x))
|
|
|
# self.plot_tab_area.tab_detached.connect(lambda x: print(x))
|
|
# self.plot_tab_area.tab_detached.connect(lambda x: print(x))
|
|
@@ -1760,12 +1771,12 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
self.grb_edit_toolbar.setVisible(False)
|
|
self.grb_edit_toolbar.setVisible(False)
|
|
|
|
|
|
|
|
# if tb & 128:
|
|
# if tb & 128:
|
|
|
- # self.ui.snap_toolbar.setVisible(True)
|
|
|
|
|
|
|
+ # self.ui.status_toolbar.setVisible(True)
|
|
|
# else:
|
|
# else:
|
|
|
- # self.ui.snap_toolbar.setVisible(False)
|
|
|
|
|
|
|
+ # self.ui.status_toolbar.setVisible(False)
|
|
|
|
|
|
|
|
# Grid Toolbar is always active now
|
|
# Grid Toolbar is always active now
|
|
|
- self.snap_toolbar.setVisible(True)
|
|
|
|
|
|
|
+ self.status_toolbar.setVisible(True)
|
|
|
|
|
|
|
|
if tb & 256:
|
|
if tb & 256:
|
|
|
self.toolbarshell.setVisible(True)
|
|
self.toolbarshell.setVisible(True)
|
|
@@ -2241,11 +2252,11 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
|
|
|
|
|
# Toggle axis
|
|
# Toggle axis
|
|
|
if key == QtCore.Qt.Key_G:
|
|
if key == QtCore.Qt.Key_G:
|
|
|
- self.app.on_toggle_axis()
|
|
|
|
|
|
|
+ self.app.plotcanvas.on_toggle_axis()
|
|
|
|
|
|
|
|
# Toggle HUD (Heads-Up Display)
|
|
# Toggle HUD (Heads-Up Display)
|
|
|
if key == QtCore.Qt.Key_H:
|
|
if key == QtCore.Qt.Key_H:
|
|
|
- self.app.on_toggle_hud()
|
|
|
|
|
|
|
+ self.app.plotcanvas.on_toggle_hud()
|
|
|
# Locate in Object
|
|
# Locate in Object
|
|
|
if key == QtCore.Qt.Key_J:
|
|
if key == QtCore.Qt.Key_J:
|
|
|
self.app.on_locate(obj=self.app.collection.get_active())
|
|
self.app.on_locate(obj=self.app.collection.get_active())
|
|
@@ -2324,7 +2335,7 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
|
|
|
|
|
# Toggle Grid lines
|
|
# Toggle Grid lines
|
|
|
if key == QtCore.Qt.Key_G:
|
|
if key == QtCore.Qt.Key_G:
|
|
|
- self.app.on_toggle_grid_lines()
|
|
|
|
|
|
|
+ self.app.plotcanvas.on_toggle_grid_lines()
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
# Punch Gerber Tool
|
|
# Punch Gerber Tool
|
|
@@ -2494,7 +2505,7 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
if active_index == 0:
|
|
if active_index == 0:
|
|
|
self.app.collection.set_active(names_list[-1])
|
|
self.app.collection.set_active(names_list[-1])
|
|
|
else:
|
|
else:
|
|
|
- self.app.collection.set_active(names_list[active_index-1])
|
|
|
|
|
|
|
+ self.app.collection.set_active(names_list[active_index - 1])
|
|
|
|
|
|
|
|
# Select the object in the Tree below the current one
|
|
# Select the object in the Tree below the current one
|
|
|
if key == QtCore.Qt.Key_Down:
|
|
if key == QtCore.Qt.Key_Down:
|
|
@@ -2509,7 +2520,7 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
if active_index == len(names_list) - 1:
|
|
if active_index == len(names_list) - 1:
|
|
|
self.app.collection.set_active(names_list[0])
|
|
self.app.collection.set_active(names_list[0])
|
|
|
else:
|
|
else:
|
|
|
- self.app.collection.set_active(names_list[active_index+1])
|
|
|
|
|
|
|
+ self.app.collection.set_active(names_list[active_index + 1])
|
|
|
|
|
|
|
|
# New Geometry
|
|
# New Geometry
|
|
|
if key == QtCore.Qt.Key_B:
|
|
if key == QtCore.Qt.Key_B:
|
|
@@ -3583,7 +3594,7 @@ class MainGUI(QtWidgets.QMainWindow):
|
|
|
# hide all Toolbars
|
|
# hide all Toolbars
|
|
|
for tb in self.findChildren(QtWidgets.QToolBar):
|
|
for tb in self.findChildren(QtWidgets.QToolBar):
|
|
|
tb.setVisible(False)
|
|
tb.setVisible(False)
|
|
|
- self.snap_toolbar.setVisible(True) # This Toolbar is always visible so restore it
|
|
|
|
|
|
|
+ self.status_toolbar.setVisible(True) # This Toolbar is always visible so restore it
|
|
|
|
|
|
|
|
self.splitter.setSizes([0, 1])
|
|
self.splitter.setSizes([0, 1])
|
|
|
self.toggle_fscreen = True
|
|
self.toggle_fscreen = True
|
|
@@ -3695,7 +3706,7 @@ class ShortcutsTab(QtWidgets.QWidget):
|
|
|
self.sh_tab_layout.addLayout(self.sh_hlay)
|
|
self.sh_tab_layout.addLayout(self.sh_hlay)
|
|
|
|
|
|
|
|
self.app_sh_msg = (
|
|
self.app_sh_msg = (
|
|
|
- '''<b>%s</b><br>
|
|
|
|
|
|
|
+ '''<b>%s</b><br>
|
|
|
<table border="0" cellpadding="0" cellspacing="0" style="width:283px">
|
|
<table border="0" cellpadding="0" cellspacing="0" style="width:283px">
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr height="20">
|
|
<tr height="20">
|
|
@@ -4064,53 +4075,53 @@ class ShortcutsTab(QtWidgets.QWidget):
|
|
|
</tbody>
|
|
</tbody>
|
|
|
</table>
|
|
</table>
|
|
|
''' %
|
|
''' %
|
|
|
- (
|
|
|
|
|
- _("General Shortcut list"),
|
|
|
|
|
- _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"),
|
|
|
|
|
- _("Switch to Tool Tab"),
|
|
|
|
|
- _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"),
|
|
|
|
|
- _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"),
|
|
|
|
|
- _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"),
|
|
|
|
|
- _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"),
|
|
|
|
|
- _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"),
|
|
|
|
|
-
|
|
|
|
|
- # CTRL section
|
|
|
|
|
- _("Select All"), _("Copy Obj"), _("Open Tools Database"),
|
|
|
|
|
- _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"),
|
|
|
|
|
- _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"),
|
|
|
|
|
-
|
|
|
|
|
- # SHIFT section
|
|
|
|
|
- _("Copy Obj_Name"),
|
|
|
|
|
- _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"),
|
|
|
|
|
- _("Open Preferences Window"),
|
|
|
|
|
- _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"),
|
|
|
|
|
- _("Skew on Y axis"),
|
|
|
|
|
-
|
|
|
|
|
- # ALT section
|
|
|
|
|
- _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Extract Drills Tool"),
|
|
|
|
|
- _("Fiducials Tool"), _("Toggle Grid Lines"),
|
|
|
|
|
- _("Punch Gerber Tool"), _("Isolation Tool"), _("Copper Thieving Tool"),
|
|
|
|
|
- _("Solder Paste Dispensing Tool"),
|
|
|
|
|
- _("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
|
|
|
|
|
- _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
|
|
|
|
|
- _("View File Source"), _("Transformations Tool"),
|
|
|
|
|
- _("Subtract Tool"), _("Cutout PCB Tool"), _("Panelize PCB"),
|
|
|
|
|
- _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
|
|
|
|
|
- _("Toggle Full Screen"),
|
|
|
|
|
-
|
|
|
|
|
- # CTRL + ALT section
|
|
|
|
|
- _("Abort current task (gracefully)"),
|
|
|
|
|
-
|
|
|
|
|
- # CTRL + SHIFT section
|
|
|
|
|
- _("Save Project As"),
|
|
|
|
|
- _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"),
|
|
|
|
|
-
|
|
|
|
|
- # F keys section
|
|
|
|
|
- _("Open Online Manual"),
|
|
|
|
|
- _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"),
|
|
|
|
|
- _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"),
|
|
|
|
|
- _("Deselects all objects")
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ (
|
|
|
|
|
+ _("General Shortcut list"),
|
|
|
|
|
+ _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"),
|
|
|
|
|
+ _("Switch to Tool Tab"),
|
|
|
|
|
+ _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"),
|
|
|
|
|
+ _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"),
|
|
|
|
|
+ _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"),
|
|
|
|
|
+ _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"),
|
|
|
|
|
+ _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"),
|
|
|
|
|
+
|
|
|
|
|
+ # CTRL section
|
|
|
|
|
+ _("Select All"), _("Copy Obj"), _("Open Tools Database"),
|
|
|
|
|
+ _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"),
|
|
|
|
|
+ _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"),
|
|
|
|
|
+
|
|
|
|
|
+ # SHIFT section
|
|
|
|
|
+ _("Copy Obj_Name"),
|
|
|
|
|
+ _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"),
|
|
|
|
|
+ _("Open Preferences Window"),
|
|
|
|
|
+ _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"),
|
|
|
|
|
+ _("Skew on Y axis"),
|
|
|
|
|
+
|
|
|
|
|
+ # ALT section
|
|
|
|
|
+ _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Extract Drills Tool"),
|
|
|
|
|
+ _("Fiducials Tool"), _("Toggle Grid Lines"),
|
|
|
|
|
+ _("Punch Gerber Tool"), _("Isolation Tool"), _("Copper Thieving Tool"),
|
|
|
|
|
+ _("Solder Paste Dispensing Tool"),
|
|
|
|
|
+ _("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
|
|
|
|
|
+ _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
|
|
|
|
|
+ _("View File Source"), _("Transformations Tool"),
|
|
|
|
|
+ _("Subtract Tool"), _("Cutout PCB Tool"), _("Panelize PCB"),
|
|
|
|
|
+ _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
|
|
|
|
|
+ _("Toggle Full Screen"),
|
|
|
|
|
+
|
|
|
|
|
+ # CTRL + ALT section
|
|
|
|
|
+ _("Abort current task (gracefully)"),
|
|
|
|
|
+
|
|
|
|
|
+ # CTRL + SHIFT section
|
|
|
|
|
+ _("Save Project As"),
|
|
|
|
|
+ _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"),
|
|
|
|
|
+
|
|
|
|
|
+ # F keys section
|
|
|
|
|
+ _("Open Online Manual"),
|
|
|
|
|
+ _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"),
|
|
|
|
|
+ _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"),
|
|
|
|
|
+ _("Deselects all objects")
|
|
|
|
|
+ )
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
self.sh_app = QtWidgets.QTextEdit()
|
|
self.sh_app = QtWidgets.QTextEdit()
|