- all kwy shortcuts work across the entire application; started to move all the shortcuts definitions in FlatCAMGUI.keyPressEvent()

This commit is contained in:
Marius Stanciu
2019-02-06 16:23:09 +02:00
committed by Marius
parent 67d089832e
commit 8bbb9ba534
6 changed files with 261 additions and 240 deletions

View File

@@ -964,8 +964,7 @@ class App(QtCore.QObject):
self.plotcanvas.vis_connect('mouse_double_click', self.on_double_click_over_plot)
# Keys over plot enabled
self.plotcanvas.vis_connect('key_press', self.on_key_over_plot)
self.plotcanvas.vis_connect('key_release', self.on_key_release_over_plot)
self.plotcanvas.vis_connect('key_press', self.ui.keyPressEvent)
self.ui.splitter.setStretchFactor(1, 2)
@@ -3934,223 +3933,224 @@ class App(QtCore.QObject):
else:
return 0
def on_key_over_plot(self, event):
"""
Callback for the key pressed event when the canvas is focused. Keyboard
shortcuts are handled here. So far, these are the shortcuts:
========== ============================================
Key Action
========== ============================================
'1' Zoom-fit. Fits the axes limits to the data.
'2' Zoom-out.
'3' Zoom-in.
'ctrl+m' Toggle on-off the measuring tool.
========== ============================================
:param event: Ignored.
:return: None
"""
self.key_modifiers = QtWidgets.QApplication.keyboardModifiers()
if self.key_modifiers == QtCore.Qt.ControlModifier:
if event.key == 'A':
self.on_selectall()
if event.key == 'C':
self.on_copy_object()
if event.key == 'E':
self.on_fileopenexcellon()
if event.key == 'G':
self.on_fileopengerber()
if event.key == 'N':
self.on_file_new_click()
if event.key == 'M':
self.measurement_tool.run()
if event.key == 'O':
self.on_file_openproject()
if event.key == 'S':
self.on_file_saveproject()
# Toggle Plot Area
if event.key == 'F10':
self.on_toggle_plotarea()
return
elif self.key_modifiers == QtCore.Qt.AltModifier:
# place holder for further shortcut key
if event.key == '1':
self.enable_all_plots()
if event.key == '2':
self.disable_all_plots()
if event.key == '3':
self.disable_other_plots()
if event.key == 'C':
self.calculator_tool.run()
if event.key == 'D':
self.dblsidedtool.run()
if event.key == 'L':
self.film_tool.run()
if event.key == 'N':
self.ncclear_tool.run()
if event.key == 'P':
self.paint_tool.run()
if event.key == 'R':
self.transform_tool.run()
if event.key == 'U':
self.cutout_tool.run()
if event.key == 'Z':
self.panelize_tool.run()
if event.key == 'F10':
self.on_fullscreen()
return
elif self.key_modifiers == QtCore.Qt.ShiftModifier:
# place holder for further shortcut key
if event.key == 'C':
self.on_copy_name()
# Toggle axis
if event.key == 'G':
self.on_toggle_axis()
# Open Preferences Window
if event.key == 'P':
self.on_preferences()
# Rotate Object by 90 degree CCW
if event.key == 'R':
self.on_rotate(silent=True, preset=-90)
# Run a Script
if event.key == 'S':
self.on_filerunscript()
# Toggle Workspace
if event.key == 'W':
self.on_workspace_menu()
# Skew on X axis
if event.key == 'X':
self.on_skewx()
# Skew on Y axis
if event.key == 'Y':
self.on_skewy()
else:
if event.key == 'F1':
webbrowser.open(self.manual_url)
return
if event.key == 'F2':
webbrowser.open(self.video_url)
return
if event.key == self.defaults['zoom_out_key']: # '-'
self.plotcanvas.zoom(1 / self.defaults['zoom_ratio'], self.mouse)
return
if event.key == self.defaults['zoom_in_key']: # '='
self.plotcanvas.zoom(self.defaults['zoom_ratio'], self.mouse)
return
if event.key == 'Delete':
self.on_delete()
return
if event.key == 'Space':
if self.collection.get_active() is not None:
self.collection.get_active().ui.plot_cb.toggle()
self.delete_selection_shape()
if event.key == '1':
self.on_select_tab('project')
if event.key == '2':
self.on_select_tab('selected')
if event.key == '3':
self.on_select_tab('tool')
if event.key == 'E':
self.object2editor()
if event.key == self.defaults['grid_toggle_key']: # G
self.ui.grid_snap_btn.trigger()
if event.key == 'J':
self.on_jump_to()
if event.key == 'L':
self.new_excellon_object()
if event.key == 'M':
self.move_tool.toggle()
return
if event.key == 'N':
self.on_new_geometry()
if event.key == 'O':
self.on_set_origin()
if event.key == 'P':
self.properties_tool.run()
if event.key == 'Q':
self.on_toggle_units_click()
if event.key == 'R':
self.on_rotate(silent=True, preset=90)
if event.key == 'S':
self.on_toggle_shell()
if event.key == 'V':
self.on_zoom_fit(None)
if event.key == 'X':
self.on_flipx()
if event.key == 'Y':
self.on_flipy()
if event.key == '`':
self.on_shortcut_list()
def on_key_release_over_plot(self, event):
modifiers = QtWidgets.QApplication.keyboardModifiers()
if modifiers == QtCore.Qt.ControlModifier:
return
elif modifiers == QtCore.Qt.AltModifier:
# place holder for further shortcut key
return
elif modifiers == QtCore.Qt.ShiftModifier:
# place holder for further shortcut key
return
else:
return
# def on_key_over_plot(self, event):
# """
# Callback for the key pressed event when the canvas is focused. Keyboard
# shortcuts are handled here. So far, these are the shortcuts:
#
# ========== ============================================
# Key Action
# ========== ============================================
# '1' Zoom-fit. Fits the axes limits to the data.
# '2' Zoom-out.
# '3' Zoom-in.
# 'ctrl+m' Toggle on-off the measuring tool.
# ========== ============================================
#
# :param event: Ignored.
# :return: None
# """
# print(type(event.key), event.key)
# self.key_modifiers = QtWidgets.QApplication.keyboardModifiers()
#
# if self.key_modifiers == QtCore.Qt.ControlModifier:
# if event.key == 'A':
# self.on_selectall()
#
# if event.key == 'C':
# self.on_copy_object()
#
# if event.key == 'E':
# self.on_fileopenexcellon()
#
# if event.key == 'G':
# self.on_fileopengerber()
#
# if event.key == 'N':
# self.on_file_new_click()
#
# if event.key == 'M':
# self.measurement_tool.run()
#
# if event.key == 'O':
# self.on_file_openproject()
#
# if event.key == 'S':
# self.on_file_saveproject()
#
# # Toggle Plot Area
# if event.key == 'F10':
# self.on_toggle_plotarea()
#
# return
# elif self.key_modifiers == QtCore.Qt.AltModifier:
# # place holder for further shortcut key
#
# if event.key == '1':
# self.enable_all_plots()
#
# if event.key == '2':
# self.disable_all_plots()
#
# if event.key == '3':
# self.disable_other_plots()
#
# if event.key == 'C':
# self.calculator_tool.run()
#
# if event.key == 'D':
# self.dblsidedtool.run()
#
# if event.key == 'L':
# self.film_tool.run()
#
# if event.key == 'N':
# self.ncclear_tool.run()
#
# if event.key == 'P':
# self.paint_tool.run()
#
# if event.key == 'R':
# self.transform_tool.run()
#
# if event.key == 'U':
# self.cutout_tool.run()
#
# if event.key == 'Z':
# self.panelize_tool.run()
#
# if event.key == 'F10':
# self.on_fullscreen()
#
# return
# elif self.key_modifiers == QtCore.Qt.ShiftModifier:
# # place holder for further shortcut key
#
# if event.key == 'C':
# self.on_copy_name()
#
# # Toggle axis
# if event.key == 'G':
# self.on_toggle_axis()
#
# # Open Preferences Window
# if event.key == 'P':
# self.on_preferences()
#
# # Rotate Object by 90 degree CCW
# if event.key == 'R':
# self.on_rotate(silent=True, preset=-90)
#
# # Run a Script
# if event.key == 'S':
# self.on_filerunscript()
#
# # Toggle Workspace
# if event.key == 'W':
# self.on_workspace_menu()
#
# # Skew on X axis
# if event.key == 'X':
# self.on_skewx()
#
# # Skew on Y axis
# if event.key == 'Y':
# self.on_skewy()
#
# else:
# if event.key == 'F1':
# webbrowser.open(self.manual_url)
# return
#
# if event.key == 'F2':
# webbrowser.open(self.video_url)
# return
#
# if event.key == self.defaults['zoom_out_key']: # '-'
# self.plotcanvas.zoom(1 / self.defaults['zoom_ratio'], self.mouse)
# return
#
# if event.key == self.defaults['zoom_in_key']: # '='
# self.plotcanvas.zoom(self.defaults['zoom_ratio'], self.mouse)
# return
#
# if event.key == 'Delete':
# self.on_delete()
# return
#
# if event.key == 'Space':
# if self.collection.get_active() is not None:
# self.collection.get_active().ui.plot_cb.toggle()
# self.delete_selection_shape()
#
# if event.key == '1':
# self.on_select_tab('project')
#
# if event.key == '2':
# self.on_select_tab('selected')
#
# if event.key == '3':
# self.on_select_tab('tool')
#
# if event.key == 'E':
# self.object2editor()
#
# if event.key == self.defaults['grid_toggle_key']: # G
# self.ui.grid_snap_btn.trigger()
#
# if event.key == 'J':
# self.on_jump_to()
#
# if event.key == 'L':
# self.new_excellon_object()
#
# if event.key == 'M':
# self.move_tool.toggle()
# return
#
# if event.key == 'N':
# self.on_new_geometry()
#
# if event.key == 'O':
# self.on_set_origin()
#
# if event.key == 'P':
# self.properties_tool.run()
#
# if event.key == 'Q':
# self.on_toggle_units_click()
#
# if event.key == 'R':
# self.on_rotate(silent=True, preset=90)
#
# if event.key == 'S':
# self.on_toggle_shell()
#
# if event.key == 'V':
# self.on_zoom_fit(None)
#
# if event.key == 'X':
# self.on_flipx()
#
# if event.key == 'Y':
# self.on_flipy()
#
# if event.key == '`':
# self.on_shortcut_list()
#
# def on_key_release_over_plot(self, event):
# modifiers = QtWidgets.QApplication.keyboardModifiers()
#
# if modifiers == QtCore.Qt.ControlModifier:
# return
# elif modifiers == QtCore.Qt.AltModifier:
# # place holder for further shortcut key
# return
# elif modifiers == QtCore.Qt.ShiftModifier:
# # place holder for further shortcut key
# return
# else:
# return
def on_shortcut_list(self):
self.report_usage("on_shortcut_list()")