From f2c9a7a49e39867a5e4fd1422115342524b8bc9a Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 7 Nov 2020 21:07:50 +0200 Subject: [PATCH] - fixed issue with first click on the header of the Tool Table in the Geometry Object Properties and also made sure that clicking the Plot Items in the last column will not select rows --- CHANGELOG.md | 1 + appObjects/FlatCAMGeometry.py | 22 +++++++++++++++------- appObjects/FlatCAMGerber.py | 5 +++++ appTools/ToolNCC.py | 4 ++++ 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5cbcf41..2d1f519e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ CHANGELOG for FlatCAM beta - in GCode Editor added handlers for the Insert Code buttons - in Project tab, when selecting multiple CNCJob objects, in the context menu the name of the Save entry change to Batch Save and those objects are all saved each in its own file - added support for shortcut key F2 when in the Project Tab and that will allow the object renaming much faster +- fixed issue with first click on the header of the Tool Table in the Geometry Object Properties and also made sure that clicking the Plot Items in the last column will not select rows 7.11.2020 diff --git a/appObjects/FlatCAMGeometry.py b/appObjects/FlatCAMGeometry.py index c7c3ee52..0b9f2de9 100644 --- a/appObjects/FlatCAMGeometry.py +++ b/appObjects/FlatCAMGeometry.py @@ -244,6 +244,9 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.geo_tools_table.setItem(row_idx, 5, tool_uid_item) # Tool unique ID # -------------------- PLOT ------------------------------------- # + empty_plot_item = QtWidgets.QTableWidgetItem('') + empty_plot_item.setFlags(~QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) + self.ui.geo_tools_table.setItem(row_idx, 6, empty_plot_item) plot_item = FCCheckBox() plot_item.setLayoutDirection(QtCore.Qt.RightToLeft) if self.ui.plot_cb.isChecked(): @@ -602,12 +605,16 @@ class GeometryObject(FlatCAMObj, Geometry): else: self.ui.level.setText('%s' % _('Advanced')) + # ############################################################################################################# + # ################################ Signals Connection ######################################################### + # ############################################################################################################# self.builduiSig.connect(self.build_ui) self.ui.e_cut_entry.setDisabled(False) if self.app.defaults['geometry_extracut'] else \ self.ui.e_cut_entry.setDisabled(True) self.ui.extracut_cb.toggled.connect(lambda state: self.ui.e_cut_entry.setDisabled(not state)) + # Plot state signals self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click) @@ -618,11 +625,15 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.properties_button.toggled.connect(self.on_properties) self.calculations_finished.connect(self.update_area_chull) + # Buttons Signals self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click) self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False)) self.ui.generate_ncc_button.clicked.connect(lambda: self.app.ncclear_tool.run(toggle=False)) + + # Postprocessor change self.ui.pp_geometry_name_cb.activated.connect(self.on_pp_changed) + # V tool shape params changed self.ui.tipdia_entry.valueChanged.connect(self.update_cutz) self.ui.tipangle_entry.valueChanged.connect(self.update_cutz) @@ -639,7 +650,9 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.delete_sel_area_button.clicked.connect(self.on_delete_sel_areas) self.ui.strategy_radio.activated_custom.connect(self.on_strategy) + # Tools Table signals self.ui.geo_tools_table.drag_drop_sig.connect(self.rebuild_ui) + self.ui.geo_tools_table.horizontalHeader().sectionClicked.connect(self.on_toggle_all_rows) self.launch_job.connect(self.mtool_gen_cncjob) @@ -748,13 +761,12 @@ class GeometryObject(FlatCAMObj, Geometry): self.on_tooltable_cellwidget_change) self.ui.search_and_add_btn.clicked.connect(self.on_tool_add) - self.ui.deltool_btn.clicked.connect(self.on_tool_delete) + # Tools Table self.ui.geo_tools_table.clicked.connect(self.on_row_selection_change) - self.ui.geo_tools_table.horizontalHeader().sectionClicked.connect(self.on_toggle_all_rows) - self.ui.geo_tools_table.itemChanged.connect(self.on_tool_edit) + self.ui.tool_offset_entry.returnPressed.connect(self.on_offset_value_edited) for row in range(self.ui.geo_tools_table.rowCount()): @@ -822,10 +834,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.geo_tools_table.clicked.disconnect() except (TypeError, AttributeError): pass - try: - self.ui.geo_tools_table.horizontalHeader().sectionClicked.disconnect() - except (TypeError, AttributeError): - pass try: self.ui.geo_tools_table.itemChanged.disconnect() diff --git a/appObjects/FlatCAMGerber.py b/appObjects/FlatCAMGerber.py index e8685259..6d23f705 100644 --- a/appObjects/FlatCAMGerber.py +++ b/appObjects/FlatCAMGerber.py @@ -220,13 +220,16 @@ class GerberObject(FlatCAMObj, Gerber): for ap_code in sorted_apertures: ap_code = str(ap_code) + # ------------------------ Aperture ID ---------------------------------------------------------------- ap_id_item = QtWidgets.QTableWidgetItem('%d' % int(self.apertures_row + 1)) ap_id_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.ui.apertures_table.setItem(self.apertures_row, 0, ap_id_item) # Tool name/id + # ------------------------ Aperture CODE -------------------------------------------------------------- ap_code_item = QtWidgets.QTableWidgetItem(ap_code) ap_code_item.setFlags(QtCore.Qt.ItemIsEnabled) + # ------------------------ Aperture TYPE -------------------------------------------------------------- ap_type_item = QtWidgets.QTableWidgetItem(str(self.apertures[ap_code]['type'])) ap_type_item.setFlags(QtCore.Qt.ItemIsEnabled) @@ -247,6 +250,7 @@ class GerberObject(FlatCAMObj, Gerber): ap_dim_item = QtWidgets.QTableWidgetItem('') ap_dim_item.setFlags(QtCore.Qt.ItemIsEnabled) + # ------------------------ Aperture SIZE -------------------------------------------------------------- try: if self.apertures[ap_code]['size'] is not None: ap_size_item = QtWidgets.QTableWidgetItem( @@ -257,6 +261,7 @@ class GerberObject(FlatCAMObj, Gerber): ap_size_item = QtWidgets.QTableWidgetItem('') ap_size_item.setFlags(QtCore.Qt.ItemIsEnabled) + # ------------------------ Aperture MARK -------------------------------------------------------------- mark_item = FCCheckBox() mark_item.setLayoutDirection(QtCore.Qt.RightToLeft) # if self.ui.aperture_table_visibility_cb.isChecked(): diff --git a/appTools/ToolNCC.py b/appTools/ToolNCC.py index 7da7938e..6bcb74e4 100644 --- a/appTools/ToolNCC.py +++ b/appTools/ToolNCC.py @@ -675,23 +675,27 @@ class NonCopperClear(AppTool, Gerber): if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted: tool_id += 1 + # ------------------------ Tool ID ---------------------------------------------------------------- id_ = QtWidgets.QTableWidgetItem('%d' % int(tool_id)) flags = QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled id_.setFlags(flags) row_no = tool_id - 1 self.ui.tools_table.setItem(row_no, 0, id_) # Tool name/id + # ------------------------ Tool Diameter ---------------------------------------------------------- # Make sure that the drill diameter when in MM is with no more than self.decimals decimals dia = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, tooluid_value['tooldia'])) dia.setFlags(QtCore.Qt.ItemIsEnabled) self.ui.tools_table.setItem(row_no, 1, dia) # Diameter + # ------------------------ Tool Shape ------------------------------------------------------------- tool_type_item = FCComboBox() tool_type_item.addItems(self.tool_type_item_options) idx = tool_type_item.findText(tooluid_value['tool_type']) tool_type_item.setCurrentIndex(idx) self.ui.tools_table.setCellWidget(row_no, 2, tool_type_item) + # ------------------------ Tool UID - NOT Visible ------------------------------------------------- tool_uid_item = QtWidgets.QTableWidgetItem(str(int(tooluid_key))) # ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ## self.ui.tools_table.setItem(row_no, 3, tool_uid_item) # Tool unique ID