- more bugs that were introduced by recent changes done to solve other bugs and so on: fixed issues with the Editors and Delete shortcut

This commit is contained in:
Marius Stanciu 2020-10-30 20:04:55 +02:00 committed by Marius
parent fd04ac9f73
commit fdfa6a22be
7 changed files with 48 additions and 79 deletions

View File

@ -17,6 +17,7 @@ CHANGELOG for FlatCAM beta
- working on solving the lost triggered signals for the Editor Toolbars buttons after changing the layout
- fixed issue #454; trigger signals for Editor Toolbars lost after changing the layout
- updated the translation strings
- more bugs that were introduced by recent changes done to solve other bugs and so on: fixed issues with the Editors and Delete shortcut
29.10.2020

View File

@ -1529,43 +1529,6 @@ class AppExcEditor(QtCore.QObject):
self.decimals = self.app.decimals
self.e_ui = AppExcEditorUI(app=self.app)
# #############################################################################################################
# ######################### Excellon Editor Signals ###########################################################
# #############################################################################################################
# connect the toolbar signals
self.connect_exc_toolbar_signals()
self.e_ui.convert_slots_btn.clicked.connect(self.on_slots_conversion)
self.app.ui.delete_drill_btn.triggered.connect(self.on_delete_btn)
self.e_ui.name_entry.returnPressed.connect(self.on_name_activate)
self.e_ui.addtool_btn.clicked.connect(self.on_tool_add)
self.e_ui.addtool_entry.editingFinished.connect(self.on_tool_add)
self.e_ui.deltool_btn.clicked.connect(self.on_tool_delete)
# self.e_ui.tools_table_exc.selectionModel().currentChanged.connect(self.on_row_selected)
self.e_ui.tools_table_exc.cellPressed.connect(self.on_row_selected)
self.e_ui.array_type_combo.currentIndexChanged.connect(self.on_array_type_combo)
self.e_ui.slot_array_type_combo.currentIndexChanged.connect(self.on_slot_array_type_combo)
self.e_ui.drill_axis_radio.activated_custom.connect(self.on_linear_angle_radio)
self.e_ui.slot_axis_radio.activated_custom.connect(self.on_slot_angle_radio)
self.e_ui.slot_array_axis_radio.activated_custom.connect(self.on_slot_array_linear_angle_radio)
self.app.ui.exc_add_array_drill_menuitem.triggered.connect(self.exc_add_drill_array)
self.app.ui.exc_add_drill_menuitem.triggered.connect(self.exc_add_drill)
self.app.ui.exc_add_array_slot_menuitem.triggered.connect(self.exc_add_slot_array)
self.app.ui.exc_add_slot_menuitem.triggered.connect(self.exc_add_slot)
self.app.ui.exc_resize_drill_menuitem.triggered.connect(self.exc_resize_drills)
self.app.ui.exc_copy_drill_menuitem.triggered.connect(self.exc_copy_drills)
self.app.ui.exc_delete_drill_menuitem.triggered.connect(self.on_delete_btn)
self.app.ui.exc_move_drill_menuitem.triggered.connect(self.exc_move_drills)
self.e_ui.exit_editor_button.clicked.connect(lambda: self.app.editor2object())
self.exc_obj = None
@ -1679,9 +1642,6 @@ class AppExcEditor(QtCore.QObject):
self.tool_row = 0
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
# def entry2option(option, entry):
# self.options[option] = float(entry.text())
@ -1690,8 +1650,43 @@ class AppExcEditor(QtCore.QObject):
self.mm = None
self.mr = None
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
# #############################################################################################################
# ######################### Excellon Editor Signals ###########################################################
# #############################################################################################################
# connect the toolbar signals
self.connect_exc_toolbar_signals()
self.e_ui.convert_slots_btn.clicked.connect(self.on_slots_conversion)
self.app.ui.delete_drill_btn.triggered.connect(self.on_delete_btn)
self.e_ui.name_entry.returnPressed.connect(self.on_name_activate)
self.e_ui.addtool_btn.clicked.connect(self.on_tool_add)
self.e_ui.addtool_entry.editingFinished.connect(self.on_tool_add)
self.e_ui.deltool_btn.clicked.connect(self.on_tool_delete)
# self.e_ui.tools_table_exc.selectionModel().currentChanged.connect(self.on_row_selected)
self.e_ui.tools_table_exc.cellPressed.connect(self.on_row_selected)
self.e_ui.array_type_combo.currentIndexChanged.connect(self.on_array_type_combo)
self.e_ui.slot_array_type_combo.currentIndexChanged.connect(self.on_slot_array_type_combo)
self.e_ui.drill_axis_radio.activated_custom.connect(self.on_linear_angle_radio)
self.e_ui.slot_axis_radio.activated_custom.connect(self.on_slot_angle_radio)
self.e_ui.slot_array_axis_radio.activated_custom.connect(self.on_slot_array_linear_angle_radio)
self.app.ui.exc_add_array_drill_menuitem.triggered.connect(self.exc_add_drill_array)
self.app.ui.exc_add_drill_menuitem.triggered.connect(self.exc_add_drill)
self.app.ui.exc_add_array_slot_menuitem.triggered.connect(self.exc_add_slot_array)
self.app.ui.exc_add_slot_menuitem.triggered.connect(self.exc_add_slot)
self.app.ui.exc_resize_drill_menuitem.triggered.connect(self.exc_resize_drills)
self.app.ui.exc_copy_drill_menuitem.triggered.connect(self.exc_copy_drills)
self.app.ui.exc_delete_drill_menuitem.triggered.connect(self.on_delete_btn)
self.app.ui.exc_move_drill_menuitem.triggered.connect(self.exc_move_drills)
self.e_ui.exit_editor_button.clicked.connect(lambda: self.app.editor2object())
log.debug("Initialization of the Excellon Editor is finished ...")
def make_callback(self, thetool):
@ -2295,9 +2290,6 @@ class AppExcEditor(QtCore.QObject):
self.app.ui.g_editor_cmenu.menuAction().setVisible(False)
self.app.ui.grb_editor_cmenu.menuAction().setVisible(False)
# Tell the App that the editor is active
self.editor_active = True
# show the UI
self.e_ui.drills_frame.show()
@ -2330,9 +2322,6 @@ class AppExcEditor(QtCore.QObject):
self.tool_shape.enabled = False
# self.app.app_cursor.enabled = False
# Tell the app that the editor is no longer active
self.editor_active = False
self.app.ui.exc_editor_menu.setDisabled(True)
self.app.ui.exc_editor_menu.menuAction().setVisible(False)

View File

@ -3455,8 +3455,6 @@ class AppGeoEditor(QtCore.QObject):
self.mm = None
self.mr = None
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
log.debug("Initialization of the Geometry Editor is finished ...")
def make_callback(self, thetool):
@ -3661,9 +3659,6 @@ class AppGeoEditor(QtCore.QObject):
# for w in sel_tab_widget_list:
# w.setEnabled(False)
# Tell the App that the editor is active
self.editor_active = True
self.item_selected.connect(self.on_geo_elem_selected)
# ## appGUI Events
@ -3713,9 +3708,6 @@ class AppGeoEditor(QtCore.QObject):
self.app.ui.g_editor_cmenu.setEnabled(False)
self.app.ui.e_editor_cmenu.setEnabled(False)
# Tell the app that the editor is no longer active
self.editor_active = False
self.app.ui.popmenu_disable.setVisible(True)
self.app.ui.cmenu_newmenu.menuAction().setVisible(True)
self.app.ui.popmenu_properties.setVisible(True)

View File

@ -3034,9 +3034,6 @@ class AppGerberEditor(QtCore.QObject):
# a QThread for the edit process
self.thread = QtCore.QThread()
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
# def entry2option(option, entry):
# self.options[option] = float(entry.text())
@ -3090,9 +3087,6 @@ class AppGerberEditor(QtCore.QObject):
self.mp_finished.connect(self.on_multiprocessing_finished)
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
self.conversion_factor = 1
self.apertures_row = 0
@ -3730,9 +3724,6 @@ class AppGerberEditor(QtCore.QObject):
self.app.ui.popmenu_properties.setVisible(False)
self.app.ui.grb_editor_cmenu.menuAction().setVisible(True)
# Tell the App that the editor is active
self.editor_active = True
def deactivate_grb_editor(self):
try:
QtGui.QGuiApplication.restoreOverrideCursor()
@ -3763,9 +3754,6 @@ class AppGerberEditor(QtCore.QObject):
self.tool_shape.enabled = False
# self.app.app_cursor.enabled = False
# Tell the app that the editor is no longer active
self.editor_active = False
self.app.ui.grb_editor_menu.setDisabled(True)
self.app.ui.grb_editor_menu.menuAction().setVisible(False)

View File

@ -43,9 +43,6 @@ class AppGCodeEditor(QtCore.QObject):
self.gcode_obj = None
self.code_edited = ''
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
# #################################################################################
# ################### SIGNALS #####################################################
# #################################################################################
@ -611,11 +608,9 @@ class AppGCodeEditor(QtCore.QObject):
file.close()
def activate(self):
self.editor_active = True
self.app.call_source = 'gcode_editor'
def deactivate(self):
self.editor_active = False
self.app.call_source = 'app'
def on_name_activate(self):

View File

@ -433,7 +433,7 @@ class ToolPunchGerber(AppTool):
else:
grb_solid_geometry.append(el_geo['solid'])
target_geometry = MultiPolygon(target_geometry)
target_geometry = MultiPolygon(target_geometry).buffer(0)
# create the punched Gerber solid_geometry
punched_target_geometry = target_geometry.difference(exc_solid_geometry)

View File

@ -281,6 +281,11 @@ class App(QtCore.QObject):
self.qapp = qapp
# App Editors will be instantiated further below
self.exc_editor = None
self.grb_editor = None
self.geo_editor = None
# ############################################################################################################
# ################# Setup the listening thread for another instance launching with args ######################
# ############################################################################################################
@ -3554,7 +3559,7 @@ class App(QtCore.QObject):
"""
# close editors before quiting the app, if they are open
if self.geo_editor.editor_active is True:
if self.call_source == 'geo_editor':
self.geo_editor.deactivate()
try:
self.geo_editor.disconnect()
@ -3562,7 +3567,7 @@ class App(QtCore.QObject):
pass
self.log.debug("App.quit_application() --> Geo Editor deactivated.")
if self.exc_editor.editor_active is True:
if self.call_source == 'exc_editor':
self.exc_editor.deactivate()
try:
self.grb_editor.disconnect()
@ -3570,7 +3575,7 @@ class App(QtCore.QObject):
pass
self.log.debug("App.quit_application() --> Excellon Editor deactivated.")
if self.grb_editor.editor_active is True:
if self.call_source == 'grb_editor':
self.grb_editor.deactivate_grb_editor()
try:
self.exc_editor.disconnect()
@ -4705,8 +4710,7 @@ class App(QtCore.QObject):
# Make sure that the deletion will happen only after the Editor is no longer active otherwise we might delete
# a geometry object before we update it.
if self.geo_editor.editor_active is False and self.exc_editor.editor_active is False \
and self.grb_editor.editor_active is False and self.gcode_editor.editor_active is False:
if self.call_source == 'app':
if self.defaults["global_delete_confirmation"] is True and force_deletion is False:
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle(_("Delete objects"))