From f9b568900887130dcbdedb7186c3c062bbea307d Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 24 Aug 2019 00:16:23 +0300 Subject: [PATCH] - fixed aperture move in Gerber Editor - fixed drills/slots move in Excellon Editor - RELEASE 8.96 --- README.md | 3 +++ flatcamEditors/FlatCAMExcEditor.py | 8 ++++--- flatcamEditors/FlatCAMGeoEditor.py | 38 +++++++++++++----------------- flatcamEditors/FlatCAMGrbEditor.py | 11 +++++---- 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index da75cdb7..70c87779 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,9 @@ CAD program, and create G-Code for Isolation routing. - some changes in GUI tooltips - modified the way key modifiers are detected in Gerber Editor Selection class and in Excellon Editor Selection class - updated the translations +- fixed aperture move in Gerber Editor +- fixed drills/slots move in Excellon Editor +- RELEASE 8.96 22.08.2019 diff --git a/flatcamEditors/FlatCAMExcEditor.py b/flatcamEditors/FlatCAMExcEditor.py index f2969bb0..3aec77e3 100644 --- a/flatcamEditors/FlatCAMExcEditor.py +++ b/flatcamEditors/FlatCAMExcEditor.py @@ -1251,6 +1251,9 @@ class FCDrillSelect(DrawTool): self.storage = self.exc_editor_app.storage_dict # self.selected = self.exc_editor_app.selected + # here we store the selected tools + self.sel_tools = set() + # here we store all shapes that were selected so we can search for the nearest to our click location self.sel_storage = FlatCAMExcEditor.make_storage() @@ -1333,14 +1336,13 @@ class FCDrillSelect(DrawTool): except (TypeError, AttributeError): pass - sel_tools = set() self.exc_editor_app.tools_table_exc.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection) for shape_s in self.exc_editor_app.selected: for storage in self.exc_editor_app.storage_dict: if shape_s in self.exc_editor_app.storage_dict[storage].get_objects(): - sel_tools.add(storage) + self.sel_tools.add(storage) - for storage in sel_tools: + for storage in self.sel_tools: for k, v in self.draw_app.tool2tooldia.items(): if v == storage: self.exc_editor_app.tools_table_exc.selectRow(int(k) - 1) diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index 185d7ea0..2ffab031 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -2360,10 +2360,6 @@ class FCSelect(DrawTool): def click_release(self, point): - self.select_shapes(point) - return "" - - def select_shapes(self, pos): # list where we store the overlapped shapes under our mouse left click position over_shape_list = [] @@ -2383,7 +2379,7 @@ class FCSelect(DrawTool): # 3rd method of click selection -> inconvenient try: - _, closest_shape = self.storage.nearest(pos) + _, closest_shape = self.storage.nearest(point) except StopIteration: return "" @@ -2402,30 +2398,28 @@ class FCSelect(DrawTool): obj_to_add = over_shape_list[int(FlatCAMGeoEditor.draw_shape_idx)] key_modifier = QtWidgets.QApplication.keyboardModifiers() - if self.draw_app.app.defaults["global_mselect_key"] == 'Control': - # if CONTROL key is pressed then we add to the selected list the current shape but if it's already + + if key_modifier == QtCore.Qt.ShiftModifier: + mod_key = 'Shift' + elif key_modifier == QtCore.Qt.ControlModifier: + mod_key = 'Control' + else: + mod_key = None + + if mod_key == self.draw_app.app.defaults["global_mselect_key"]: + # if modifier key is pressed then we add to the selected list the current shape but if it's already # in the selected list, we removed it. Therefore first click selects, second deselects. - if key_modifier == Qt.ControlModifier: - if obj_to_add in self.draw_app.selected: - self.draw_app.selected.remove(obj_to_add) - else: - self.draw_app.selected.append(obj_to_add) + if obj_to_add in self.draw_app.selected: + self.draw_app.selected.remove(obj_to_add) else: - self.draw_app.selected = [] self.draw_app.selected.append(obj_to_add) else: - if key_modifier == Qt.ShiftModifier: - if obj_to_add in self.draw_app.selected: - self.draw_app.selected.remove(obj_to_add) - else: - self.draw_app.selected.append(obj_to_add) - else: - self.draw_app.selected = [] - self.draw_app.selected.append(obj_to_add) - + self.draw_app.selected = [] + self.draw_app.selected.append(obj_to_add) except Exception as e: log.error("[ERROR] Something went bad. %s" % str(e)) raise + return "" class FCMove(FCShapeTool): diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index d022f215..4eb4149d 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -2195,6 +2195,9 @@ class FCApertureSelect(DrawTool): # bending modes using in FCRegion and FCTrack self.draw_app.bend_mode = 1 + # here store the selected apertures + self.sel_aperture = set() + try: self.grb_editor_app.apertures_table.clearSelection() except Exception as e: @@ -2229,7 +2232,6 @@ class FCApertureSelect(DrawTool): def click_release(self, point): self.grb_editor_app.apertures_table.clearSelection() - sel_aperture = set() key_modifier = QtWidgets.QApplication.keyboardModifiers() if key_modifier == QtCore.Qt.ShiftModifier: @@ -2248,13 +2250,14 @@ class FCApertureSelect(DrawTool): if mod_key == self.grb_editor_app.app.defaults["global_mselect_key"]: if geo_el in self.draw_app.selected: self.draw_app.selected.remove(geo_el) + self.sel_aperture.remove(storage) else: # add the object to the selected shapes self.draw_app.selected.append(geo_el) - sel_aperture.add(storage) + self.sel_aperture.add(storage) else: self.draw_app.selected.append(geo_el) - sel_aperture.add(storage) + self.sel_aperture.add(storage) except KeyError: pass @@ -2265,7 +2268,7 @@ class FCApertureSelect(DrawTool): log.debug("FlatCAMGrbEditor.FCApertureSelect.click_release() --> %s" % str(e)) self.grb_editor_app.apertures_table.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection) - for aper in sel_aperture: + for aper in self.sel_aperture: for row in range(self.grb_editor_app.apertures_table.rowCount()): if str(aper) == self.grb_editor_app.apertures_table.item(row, 1).text(): self.grb_editor_app.apertures_table.selectRow(row)