- added a new menu entry and functionality in the View category: enable all non-selected (shortcut key ALT+3)

- fixed shortcut keys for a number of functionality and in some cases added some new
- fixed the enable/disable all plots functionality
- fixed issue with the app window restored in a shifted position after doing Fullscreen
- fixed issue with coords, delta_coords and status toolbars being disabled when entering fullscreen mode and remaining disabled after restore to normal mode
This commit is contained in:
Marius Stanciu 2020-10-26 11:49:20 +02:00 committed by Marius
parent ee3c9b515a
commit d6dd64ae68
5 changed files with 90 additions and 47 deletions

View File

@ -7,6 +7,15 @@ CHANGELOG for FlatCAM beta
=================================================
26.10.2020
- added a new menu entry and functionality in the View category: enable all non-selected (shortcut key ALT+3)
- fixed shortcut keys for a number of functionality and in some cases added some new
- fixed the enable/disable all plots functionality
- fixed issue with the app window restored in a shifted position after doing Fullscreen
- fixed issue with coords, delta_coords and status toolbars being disabled when entering fullscreen mode and remaining disabled after restore to normal mode
25.10.2020
- updated the Italian translation (by Massimiliano Golfetto)

View File

@ -455,8 +455,11 @@ class MainGUI(QtWidgets.QMainWindow):
QtGui.QIcon(self.app.resource_location + '/replot16.png'), _('Enable all plots\tAlt+1'))
self.menuviewdisableall = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable all plots\tAlt+2'))
self.menuviewenableother = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/replot16.png'), _('Enable non-selected\tAlt+3'))
self.menuviewdisableother = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable non-selected\tAlt+3'))
QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable non-selected\tAlt+4'))
# Separator
self.menuview.addSeparator()
self.menuview_zoom_fit = self.menuview.addAction(
@ -486,13 +489,13 @@ class MainGUI(QtWidgets.QMainWindow):
self.menuview_toggle_grid = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("Toggle Grid Snap\tG"))
self.menuview_toggle_grid_lines = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("Toggle Grid Lines\tAlt+G"))
QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("Toggle Grid Lines\tShift+G"))
self.menuview_toggle_axis = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("Toggle Axis\tShift+G"))
QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("Toggle Axis\tShift+A"))
self.menuview_toggle_workspace = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/workspace24.png'), _("Toggle Workspace\tShift+W"))
self.menuview_toggle_hud = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tAlt+H"))
QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tShift+H"))
# ########################################################################
# ########################## Objects # ###################################
@ -1595,18 +1598,18 @@ class MainGUI(QtWidgets.QMainWindow):
self.infobar.addWidget(self.fcinfo, stretch=1)
self.infobar.addWidget(self.delta_coords_toolbar)
self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coords_show"])
self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coordsbar_show"])
self.infobar.addWidget(self.coords_toolbar)
self.coords_toolbar.setVisible(self.app.defaults["global_coords_show"])
self.coords_toolbar.setVisible(self.app.defaults["global_coordsbar_show"])
self.grid_toolbar.setMaximumHeight(24)
self.infobar.addWidget(self.grid_toolbar)
self.grid_toolbar.setVisible(self.app.defaults["global_grid_show"])
self.grid_toolbar.setVisible(self.app.defaults["global_gridbar_show"])
self.status_toolbar.setMaximumHeight(24)
self.infobar.addWidget(self.status_toolbar)
self.status_toolbar.setVisible(self.app.defaults["global_status_show"])
self.status_toolbar.setVisible(self.app.defaults["global_statusbar_show"])
self.units_label = QtWidgets.QLabel("[mm]")
self.units_label.setToolTip(_("Application units"))
@ -1754,6 +1757,7 @@ class MainGUI(QtWidgets.QMainWindow):
self.y_pos = None
self.width = None
self.height = None
self.titlebar_height = None
self.geom_update[int, int, int, int, int].connect(self.save_geometry)
self.final_save.connect(self.app.final_save)
@ -1887,7 +1891,7 @@ class MainGUI(QtWidgets.QMainWindow):
delta_coords_action = QtWidgets.QAction(self)
delta_coords_action.setCheckable(True)
delta_coords_action.setText(delta_coords_action_name)
delta_coords_action.setChecked(self.app.defaults["global_delta_coords_show"])
delta_coords_action.setChecked(self.app.defaults["global_delta_coordsbar_show"])
self.infobar.addAction(delta_coords_action)
delta_coords_action.triggered.connect(self.toggle_delta_coords)
@ -1895,7 +1899,7 @@ class MainGUI(QtWidgets.QMainWindow):
coords_action = QtWidgets.QAction(self)
coords_action.setCheckable(True)
coords_action.setText(coords_action_name)
coords_action.setChecked(self.app.defaults["global_coords_show"])
coords_action.setChecked(self.app.defaults["global_coordsbar_show"])
self.infobar.addAction(coords_action)
coords_action.triggered.connect(self.toggle_coords)
@ -1903,7 +1907,7 @@ class MainGUI(QtWidgets.QMainWindow):
grid_action = QtWidgets.QAction(self)
grid_action.setCheckable(True)
grid_action.setText(grid_action_name)
grid_action.setChecked(self.app.defaults["global_grid_show"])
grid_action.setChecked(self.app.defaults["global_gridbar_show"])
self.infobar.addAction(grid_action)
grid_action.triggered.connect(self.toggle_gridbar)
@ -1911,24 +1915,24 @@ class MainGUI(QtWidgets.QMainWindow):
status_action = QtWidgets.QAction(self)
status_action.setCheckable(True)
status_action.setText(status_action_name)
status_action.setChecked(self.app.defaults["global_status_show"])
status_action.setChecked(self.app.defaults["global_statusbar_show"])
self.infobar.addAction(status_action)
status_action.triggered.connect(self.toggle_statusbar)
def toggle_coords(self, checked):
self.app.defaults["global_coords_show"] = checked
self.app.defaults["global_coordsbar_show"] = checked
self.coords_toolbar.setVisible(checked)
def toggle_delta_coords(self, checked):
self.app.defaults["global_delta_coords_show"] = checked
self.app.defaults["global_delta_coordsbar_show"] = checked
self.delta_coords_toolbar.setVisible(checked)
def toggle_gridbar(self, checked):
self.app.defaults["global_grid_show"] = checked
self.app.defaults["global_gridbar_show"] = checked
self.grid_toolbar.setVisible(checked)
def toggle_statusbar(self, checked):
self.app.defaults["global_status_show"] = checked
self.app.defaults["global_statusbar_show"] = checked
self.status_toolbar.setVisible(checked)
def eventFilter(self, obj, event):
@ -2399,6 +2403,10 @@ class MainGUI(QtWidgets.QMainWindow):
# SHIFT
elif modifiers == QtCore.Qt.ShiftModifier:
# Toggle axis
if key == QtCore.Qt.Key_A:
self.app.plotcanvas.on_toggle_axis()
# Copy Object Name
if key == QtCore.Qt.Key_C:
self.app.on_copy_name()
@ -2407,9 +2415,10 @@ class MainGUI(QtWidgets.QMainWindow):
if key == QtCore.Qt.Key_E:
self.app.on_toggle_code_editor()
# Toggle axis
# Toggle Grid lines
if key == QtCore.Qt.Key_G:
self.app.plotcanvas.on_toggle_axis()
self.app.plotcanvas.on_toggle_grid_lines()
return
# Toggle HUD (Heads-Up Display)
if key == QtCore.Qt.Key_H:
@ -2464,6 +2473,10 @@ class MainGUI(QtWidgets.QMainWindow):
# Disable all other plots
if key == Qt.Key_3:
self.app.enable_other_plots()
# Disable all other plots
if key == Qt.Key_4:
self.app.disable_other_plots()
# Align in Object Tool
@ -2490,10 +2503,9 @@ class MainGUI(QtWidgets.QMainWindow):
self.app.fiducial_tool.run(toggle=True)
return
# Toggle Grid lines
# Punch Gerber Tool
if key == QtCore.Qt.Key_G:
self.app.plotcanvas.on_toggle_grid_lines()
return
self.app.invert_tool.run(toggle=True)
# Punch Gerber Tool
if key == QtCore.Qt.Key_H:
@ -3748,13 +3760,14 @@ class MainGUI(QtWidgets.QMainWindow):
self.y_pos = a.y()
self.width = a.width()
self.height = a.height()
self.titlebar_height = self.app.qapp.style().pixelMetric(QtWidgets.QStyle.PM_TitleBarHeight)
# set new geometry to full desktop rect
# Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a
# window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and
# everything else will not work without this hack. This happen in Windows.
# https://bugreports.qt.io/browse/QTBUG-41309
desktop = QtWidgets.QApplication.desktop()
desktop = self.app.qapp.desktop()
screen = desktop.screenNumber(QtGui.QCursor.pos())
rec = desktop.screenGeometry(screen)
@ -3762,6 +3775,7 @@ class MainGUI(QtWidgets.QMainWindow):
y = rec.y() - 1
h = rec.height() + 2
w = rec.width() + 2
self.setGeometry(x, y, w, h)
self.show()
@ -3769,13 +3783,17 @@ class MainGUI(QtWidgets.QMainWindow):
for tb in self.findChildren(QtWidgets.QToolBar):
tb.setVisible(False)
self.grid_toolbar.setVisible(self.app.defaults["global_grid_show"])
self.coords_toolbar.setVisible(self.app.defaults["global_coordsbar_show"])
self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coordsbar_show"])
self.grid_toolbar.setVisible(self.app.defaults["global_gridbar_show"])
self.status_toolbar.setVisible(self.app.defaults["global_statusbar_show"])
self.splitter.setSizes([0, 1])
self.toggle_fscreen = True
elif self.toggle_fscreen is True or disable is True:
self.setWindowFlags(flags & ~Qt.FramelessWindowHint)
self.setGeometry(self.x_pos, self.y_pos, self.width, self.height)
# the additions are made to account for the pixels we subtracted/added above in the (x, y, h, w)
self.setGeometry(self.x_pos+1, self.y_pos+self.titlebar_height+4, self.width, self.height)
self.showNormal()
self.restore_toolbar_view()
self.toggle_fscreen = False
@ -4040,6 +4058,10 @@ class ShortcutsTab(QtWidgets.QWidget):
<td height="20">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr height="20">
<td height="20"><strong>Shift+A</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>Shift+C</strong></td>
<td>&nbsp;%s</td>
@ -4052,6 +4074,10 @@ class ShortcutsTab(QtWidgets.QWidget):
<td height="20"><strong>Shift+G</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>Shift+H</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>Shift+J</strong></td>
<td>&nbsp;%s</td>
@ -4190,6 +4216,10 @@ class ShortcutsTab(QtWidgets.QWidget):
<td height="20"><strong>Alt+3</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>Alt+4</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>Alt+F10</strong></td>
<td>&nbsp;%s</td>
@ -4270,22 +4300,24 @@ class ShortcutsTab(QtWidgets.QWidget):
_("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"),
_("Toggle the axis"), _("Copy Obj_Name"),
_("Toggle Code Editor"), _("Toggle Grid Lines"), _("Toggle HUD"), _("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"),
_("Fiducials Tool"), _("Invert Gerber Tool"),
_("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"),
_("Enable all Plots"), _("Disable all Plots"),
_("Enable Non-selected Plots"), _("Disable Non-selected Plots"),
_("Toggle Full Screen"),
# CTRL + ALT section

View File

@ -44,7 +44,7 @@ class ToolInvertGerber(AppTool):
self.ui.reset_button.clicked.connect(self.set_tool_ui)
def install(self, icon=None, separator=None, **kwargs):
AppTool.install(self, icon, separator, shortcut='', **kwargs)
AppTool.install(self, icon, separator, shortcut='ALT+G', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolInvertGerber()")

View File

@ -1440,9 +1440,10 @@ class App(QtCore.QObject):
self.ui.menuoptions_view_source.triggered.connect(self.on_view_source)
self.ui.menuoptions_tools_db.triggered.connect(lambda: self.on_tools_database(source='app'))
self.ui.menuviewdisableall.triggered.connect(self.disable_all_plots)
self.ui.menuviewdisableother.triggered.connect(self.disable_other_plots)
self.ui.menuviewenable.triggered.connect(self.enable_all_plots)
self.ui.menuviewdisableall.triggered.connect(self.disable_all_plots)
self.ui.menuviewenableother.triggered.connect(self.enable_other_plots)
self.ui.menuviewdisableother.triggered.connect(self.disable_other_plots)
self.ui.menuview_zoom_fit.triggered.connect(self.on_zoom_fit)
self.ui.menuview_zoom_in.triggered.connect(self.on_zoom_in)
@ -5763,8 +5764,8 @@ class App(QtCore.QObject):
pass
# restore the coords toolbars
self.ui.toggle_coords(checked=self.defaults["global_coords_show"])
self.ui.toggle_delta_coords(checked=self.defaults["global_delta_coords_show"])
self.ui.toggle_coords(checked=self.defaults["global_coordsbar_show"])
self.ui.toggle_delta_coords(checked=self.defaults["global_delta_coordsbar_show"])
def on_flipy(self):
"""
@ -7536,22 +7537,25 @@ class App(QtCore.QObject):
self.defaults.report_usage("disable_all_plots()")
self.disable_plots(self.collection.get_list())
self.inform.emit('[success] %s' %
_("All plots disabled."))
self.inform.emit('[success] %s' % _("All plots disabled."))
def disable_other_plots(self):
self.defaults.report_usage("disable_other_plots()")
self.disable_plots(self.collection.get_non_selected())
self.inform.emit('[success] %s' %
_("All non selected plots disabled."))
self.inform.emit('[success] %s' % _("All non selected plots disabled."))
def enable_all_plots(self):
self.defaults.report_usage("enable_all_plots()")
self.enable_plots(self.collection.get_list())
self.inform.emit('[success] %s' %
_("All plots enabled."))
self.inform.emit('[success] %s' % _("All plots enabled."))
def enable_other_plots(self):
self.defaults.report_usage("enable_other_plots()")
self.enable_plots(self.collection.get_non_selected())
self.inform.emit('[success] %s' % _("All non selected plots enabled."))
def on_enable_sel_plots(self):
log.debug("App.on_enable_sel_plot()")
@ -7616,10 +7620,6 @@ class App(QtCore.QObject):
:return:
"""
# if no objects selected then do nothing
if not self.collection.get_selected():
return
log.debug("Disabling plots ...")
# self.inform.emit(_("Working ..."))
@ -7654,6 +7654,8 @@ class App(QtCore.QObject):
plot_obj.plot(visible=False, kind=self.defaults["cncjob_plot_kind"])
else:
plot_obj.plot(visible=False)
for plot_obj in objs:
plot_obj.shapes.redraw()
self.worker_task.emit({'fcn': worker_task, 'params': [objects]})

View File

@ -31,9 +31,9 @@ class FlatCAMDefaults:
"global_stats": dict(),
"global_tabs_detachable": True,
"global_coords_show": True,
"global_delta_coords_show": False,
"global_status_show": True,
"global_coordsbar_show": True,
"global_delta_coordsbar_show": False,
"global_statusbar_show": True,
"global_jump_ref": 'abs',
"global_locate_pt": 'bl',
@ -124,7 +124,7 @@ class FlatCAMDefaults:
"global_project_autohide": True,
# General App Settings
"global_grid_show": True,
"global_gridbar_show": True,
"global_gridx": 1.0,
"global_gridy": 1.0,
"global_snap_max": 0.05,