From 36280d9f543772dce3ba1099b7844c2e4cb15d8c Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 17 Jan 2020 23:06:28 +0200 Subject: [PATCH] - some updates in NCC Tool --- README.md | 1 + flatcamTools/ToolNonCopperClear.py | 44 +++++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e7b553e6..86a2a19b 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing. - more changes to Excellon UI - changes to Geometry UI - more work in NCC Tool upgrade; each tool now work with it's own set of parameters +- some updates in NCC Tool 16.01.2020 diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index fb88a710..840e383f 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -669,7 +669,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # ############################ SIGNALS ######################################## # ############################################################################# self.addtool_btn.clicked.connect(self.on_tool_add) - self.addtool_entry.returnPressed.connect(self.on_tool_add) + self.addtool_entry.returnPressed.connect(self.on_tooldia_updated) self.deltool_btn.clicked.connect(self.on_tool_delete) self.generate_ncc_button.clicked.connect(self.on_ncc_click) @@ -686,8 +686,6 @@ class NonCopperClear(FlatCAMTool, Gerber): self.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed) self.reset_button.clicked.connect(self.set_tool_ui) - self.tools_table.currentItemChanged.connect(self.on_row_selection_change) - def on_type_obj_index_changed(self, index): obj_type = self.type_obj_combo.currentIndex() self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) @@ -760,6 +758,7 @@ class NonCopperClear(FlatCAMTool, Gerber): option_changed = self.name2option[wdg_objname] row = self.tools_table.currentRow() + if row < 0: row = 0 tooluid_item = int(self.tools_table.item(row, 3).text()) @@ -882,6 +881,7 @@ class NonCopperClear(FlatCAMTool, Gerber): def set_tool_ui(self): self.units = self.app.defaults['units'].upper() + self.old_tool_dia = self.app.defaults["tools_nccnewdia"] self.tools_frame.show() @@ -1079,6 +1079,10 @@ class NonCopperClear(FlatCAMTool, Gerber): def ui_connect(self): self.tools_table.itemChanged.connect(self.on_tool_edit) + # rows selected + self.tools_table.clicked.connect(self.on_row_selection_change) + self.tools_table.horizontalHeader().sectionClicked.connect(self.on_row_selection_change) + for row in range(self.tools_table.rowCount()): try: self.tools_table.cellWidget(row, 2).currentIndexChanged.connect(self.on_tooltable_cellwidget_change) @@ -1111,6 +1115,15 @@ class NonCopperClear(FlatCAMTool, Gerber): except (TypeError, ValueError): pass + try: + self.ncc_rest_cb.stateChanged.disconnect() + except (TypeError, ValueError): + pass + try: + self.ncc_order_radio.activated_custom[str].disconnect() + except (TypeError, ValueError): + pass + # then reconnect for opt in self.form_fields: current_widget = self.form_fields[opt] @@ -1121,11 +1134,11 @@ class NonCopperClear(FlatCAMTool, Gerber): elif isinstance(current_widget, FCDoubleSpinner): current_widget.returnPressed.connect(self.form_to_storage) - self.ncc_choice_offset_cb.stateChanged.connect(self.on_offset_choice) self.ncc_rest_cb.stateChanged.connect(self.on_rest_machining_check) self.ncc_order_radio.activated_custom[str].connect(self.on_order_changed) def ui_disconnect(self): + try: # if connected, disconnect the signal from the slot on item_changed as it creates issues self.tools_table.itemChanged.disconnect() @@ -1163,6 +1176,29 @@ class NonCopperClear(FlatCAMTool, Gerber): except (TypeError, ValueError): pass + try: + self.ncc_rest_cb.stateChanged.disconnect() + except (TypeError, ValueError): + pass + try: + self.ncc_order_radio.activated_custom[str].disconnect() + except (TypeError, ValueError): + pass + + # rows selected + try: + self.tools_table.clicked.disconnect() + except (TypeError, AttributeError): + pass + try: + self.tools_table.horizontalHeader().sectionClicked.disconnect() + except (TypeError, AttributeError): + pass + + def on_tooldia_updated(self): + if self.tool_type_radio.get_value() == 'C1': + self.old_tool_dia = self.addtool_entry.get_value() + def on_combo_box_type(self): obj_type = self.box_combo_type.currentIndex() self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))