- fixed an issue in Tools Database (ToolsDB2 class) that did not made the Tab name in Red color when adding/deleting a tool by using the context menu
- optimized the Tools Database
This commit is contained in:
@@ -271,7 +271,7 @@ class ToolsDB2UI:
|
||||
|
||||
self.tool_op_combo = FCComboBox()
|
||||
self.tool_op_combo.addItems(
|
||||
[_("General"), _("Milling"), _("Drilling"), _('Isolation'), _('Paint'), _('NCC'), _("Cutout")])
|
||||
[_("General"), _("Milling"), _("Drilling"), _('Isolation'), _('Paint'), _('NCC'), _('Cutout')])
|
||||
self.tool_op_combo.setObjectName('gdb_tool_target')
|
||||
|
||||
self.grid_tool.addWidget(self.tool_op_label, 8, 0)
|
||||
@@ -1393,13 +1393,12 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
|
||||
mark_tools_rows = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, app, callback_on_edited, callback_on_tool_request, parent=None):
|
||||
def __init__(self, app, callback_on_tool_request, parent=None):
|
||||
super(ToolsDB2, self).__init__(parent)
|
||||
|
||||
self.app = app
|
||||
self.app_ui = self.app.ui
|
||||
self.decimals = self.app.decimals
|
||||
self.callback_app = callback_on_edited
|
||||
|
||||
self.on_tool_request = callback_on_tool_request
|
||||
|
||||
@@ -2028,7 +2027,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
self.ui.tree_widget.setCurrentItem(last_item)
|
||||
last_item.setSelected(True)
|
||||
|
||||
self.callback_app()
|
||||
self.on_tools_db_edited()
|
||||
self.app.inform.emit('[success] %s' % _("Tool copied from Tools DB."))
|
||||
|
||||
def on_tool_delete(self):
|
||||
@@ -2169,7 +2168,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
if self.db_tool_dict[tool_id]['data']['tool_target'] == _('Drilling'):
|
||||
for k in list(self.db_tool_dict[tool_id]['data'].keys()):
|
||||
if str(k).startswith('tools_'):
|
||||
if str(k).startswith('tools_drill'):
|
||||
if str(k).startswith('tools_drill') or str(k).startswith('tools_mill'):
|
||||
pass
|
||||
else:
|
||||
self.db_tool_dict[tool_id]['data'].pop(k, None)
|
||||
@@ -2177,7 +2176,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
if self.db_tool_dict[tool_id]['data']['tool_target'] == _('Isolation'):
|
||||
for k in list(self.db_tool_dict[tool_id]['data'].keys()):
|
||||
if str(k).startswith('tools_'):
|
||||
if str(k).startswith('tools_iso'):
|
||||
if str(k).startswith('tools_iso') or str(k).startswith('tools_mill'):
|
||||
pass
|
||||
else:
|
||||
self.db_tool_dict[tool_id]['data'].pop(k, None)
|
||||
@@ -2185,7 +2184,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
if self.db_tool_dict[tool_id]['data']['tool_target'] == _('Paint'):
|
||||
for k in list(self.db_tool_dict[tool_id]['data'].keys()):
|
||||
if str(k).startswith('tools_'):
|
||||
if str(k).startswith('tools_paint'):
|
||||
if str(k).startswith('tools_paint') or str(k).startswith('tools_mill'):
|
||||
pass
|
||||
else:
|
||||
self.db_tool_dict[tool_id]['data'].pop(k, None)
|
||||
@@ -2193,7 +2192,15 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
if self.db_tool_dict[tool_id]['data']['tool_target'] == _('NCC'):
|
||||
for k in list(self.db_tool_dict[tool_id]['data'].keys()):
|
||||
if str(k).startswith('tools_'):
|
||||
if str(k).startswith('tools_ncc'):
|
||||
if str(k).startswith('tools_ncc') or str(k).startswith('tools_mill'):
|
||||
pass
|
||||
else:
|
||||
self.db_tool_dict[tool_id]['data'].pop(k, None)
|
||||
|
||||
if self.db_tool_dict[tool_id]['data']['tool_target'] == _('Cutout'):
|
||||
for k in list(self.db_tool_dict[tool_id]['data'].keys()):
|
||||
if str(k).startswith('tools_'):
|
||||
if str(k).startswith('tools_cutout') or str(k).startswith('tools_mill'):
|
||||
pass
|
||||
else:
|
||||
self.db_tool_dict[tool_id]['data'].pop(k, None)
|
||||
@@ -2354,11 +2361,24 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
if wdg is None:
|
||||
return
|
||||
|
||||
if isinstance(wdg, FCButton) or isinstance(wdg, QtWidgets.QAction):
|
||||
# this is called when adding a new tool; no need to run the update below since that section is for
|
||||
# when editing a tool
|
||||
self.on_tools_db_edited()
|
||||
return
|
||||
|
||||
wdg_name = wdg.objectName()
|
||||
val = wdg.get_value()
|
||||
except AttributeError:
|
||||
except AttributeError as err:
|
||||
self.app.log.debug("ToolsDB2.update_storage() -> %s" % str(err))
|
||||
return
|
||||
|
||||
# #############################################################################################################
|
||||
# #############################################################################################################
|
||||
# ################ EDITING PARAMETERS IN A TOOL SECTION
|
||||
# #############################################################################################################
|
||||
# #############################################################################################################
|
||||
|
||||
# #############################################################################################################
|
||||
# this might change in the future; it makes sense to change values at once for all tools
|
||||
# for now change values only for one tool at once
|
||||
@@ -2522,7 +2542,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
elif wdg_name == "gdb_ct_mb_spacing":
|
||||
self.db_tool_dict[tool_id]['data']['tools_cutout_mb_spacing'] = val
|
||||
|
||||
self.callback_app()
|
||||
self.on_tools_db_edited()
|
||||
|
||||
def on_tool_requested_from_app(self):
|
||||
if not self.ui.tree_widget.selectedItems():
|
||||
@@ -2541,6 +2561,25 @@ class ToolsDB2(QtWidgets.QWidget):
|
||||
selected_tool = self.db_tool_dict[key]
|
||||
self.on_tool_request(tool=selected_tool)
|
||||
|
||||
def on_tools_db_edited(self, silent=None):
|
||||
"""
|
||||
Executed whenever a tool is edited in Tools Database.
|
||||
Will color the text of the Tools Database tab to Red color.
|
||||
|
||||
:return:
|
||||
"""
|
||||
|
||||
for idx in range(self.app.ui.plot_tab_area.count()):
|
||||
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
|
||||
self.app.ui.plot_tab_area.tabBar.setTabTextColor(idx, QtGui.QColor('red'))
|
||||
|
||||
self.ui.save_db_btn.setStyleSheet("QPushButton {color: red;}")
|
||||
|
||||
self.tools_db_changed_flag = True
|
||||
if silent is None:
|
||||
msg = '[WARNING_NOTCL] %s' % _("Tools in Tools Database edited but not saved.")
|
||||
self.app.inform[str, bool].emit(msg, False)
|
||||
|
||||
def on_cancel_tool(self):
|
||||
for idx in range(self.app_ui.plot_tab_area.count()):
|
||||
if self.app_ui.plot_tab_area.tabText(idx) == _("Tools Database"):
|
||||
|
||||
Reference in New Issue
Block a user