- Drilling Tool - minor UI change

- Isolation Tool - remade the 'Beginner/Advanced' Mode
This commit is contained in:
Marius Stanciu
2020-12-10 00:30:31 +02:00
committed by Marius
parent 900af55be0
commit e079d97d02
4 changed files with 154 additions and 69 deletions

View File

@@ -211,6 +211,8 @@ class ToolIsolation(AppTool, Gerber):
# #############################################################################
# ############################ SIGNALS ########################################
# #############################################################################
self.ui.level.toggled.connect(self.on_level_changed)
self.ui.deltool_btn.clicked.connect(self.on_tool_delete)
self.ui.find_optimal_button.clicked.connect(self.on_find_optimal_tooldia)
@@ -260,52 +262,9 @@ class ToolIsolation(AppTool, Gerber):
except Exception:
pass
app_mode = self.app.defaults["global_app_level"]
# Show/Hide Advanced Options
if app_mode == 'b':
self.ui.level.setText('<span style="color:green;"><b>%s</b></span>' % _('Basic'))
self.ui.milling_type_label.hide()
self.ui.milling_type_radio.hide()
self.ui.iso_type_label.hide()
self.ui.iso_type_radio.set_value('full')
self.ui.iso_type_radio.hide()
self.ui.rest_cb.set_value(False)
self.ui.rest_cb.hide()
self.ui.forced_rest_iso_cb.hide()
self.ui.except_cb.set_value(False)
self.ui.except_cb.hide()
self.ui.type_excobj_radio.hide()
self.ui.exc_obj_combo.hide()
self.ui.select_combo.setCurrentIndex(0)
self.ui.select_combo.hide()
self.ui.select_label.hide()
else:
self.ui.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
self.ui.milling_type_label.show()
self.ui.milling_type_radio.show()
self.ui.iso_type_label.show()
self.ui.iso_type_radio.set_value(self.app.defaults["tools_iso_isotype"])
self.ui.iso_type_radio.show()
self.ui.rest_cb.set_value(self.app.defaults["tools_iso_rest"])
self.ui.rest_cb.show()
self.ui.forced_rest_iso_cb.show()
self.ui.except_cb.set_value(self.app.defaults["tools_iso_isoexcept"])
self.ui.except_cb.show()
self.ui.select_combo.set_value(self.app.defaults["tools_iso_selection"])
self.ui.select_combo.show()
self.ui.select_label.show()
app_mode = self.app.defaults["global_app_level"]
self.change_level(app_mode)
if self.app.defaults["gerber_buffering"] == 'no':
self.ui.create_buffer_button.show()
@@ -382,6 +341,7 @@ class ToolIsolation(AppTool, Gerber):
"area_strategy": self.app.defaults["geometry_area_strategy"],
"area_overz": float(self.app.defaults["geometry_area_overz"]),
"tools_iso_order": self.app.defaults["tools_iso_order"],
"tools_iso_passes": self.app.defaults["tools_iso_passes"],
"tools_iso_overlap": self.app.defaults["tools_iso_overlap"],
"tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
@@ -433,6 +393,123 @@ class ToolIsolation(AppTool, Gerber):
self.ui.tools_table.drag_drop_sig.connect(self.rebuild_ui)
def change_level(self, level):
"""
:param level: application level: either 'b' or 'a'
:type level: str
:return:
"""
if level == 'a':
self.ui.level.setChecked(True)
else:
self.ui.level.setChecked(False)
def on_level_changed(self, checked):
if not checked:
self.ui.level.setText('%s' % _('Beginner'))
self.ui.level.setStyleSheet("""
QToolButton
{
color: green;
}
""")
# Add Tool section
self.ui.tool_sel_label.hide()
self.ui.new_tooldia_lbl.hide()
self.ui.new_tooldia_entry.hide()
self.ui.find_optimal_button.hide()
self.ui.search_and_add_btn.hide()
self.ui.addtool_from_db_btn.hide()
self.ui.deltool_btn.hide()
self.ui.add_tool_separator_line.hide()
# Tool parameters section
if self.iso_tools:
for tool in self.iso_tools:
tool_data = self.iso_tools[tool]['data']
tool_data['tools_iso_isotype'] = 'full'
self.ui.milling_type_label.hide()
self.ui.milling_type_radio.hide()
self.ui.iso_type_label.hide()
self.ui.iso_type_radio.set_value('full')
self.ui.iso_type_radio.hide()
# All param section
self.ui.all_param_separator_line2.hide()
self.ui.apply_param_to_all.hide()
# Common Parameters
self.ui.rest_cb.set_value(False)
self.ui.rest_cb.hide()
self.ui.forced_rest_iso_cb.hide()
self.ui.except_cb.set_value(False)
self.ui.except_cb.hide()
self.ui.type_excobj_radio.hide()
self.ui.exc_obj_combo.hide()
# Context Menu section
self.ui.tools_table.removeContextMenu()
else:
self.ui.level.setText('%s' % _('Advanced'))
self.ui.level.setStyleSheet("""
QToolButton
{
color: red;
}
""")
# Add Tool section
self.ui.tool_sel_label.show()
self.ui.new_tooldia_lbl.show()
self.ui.new_tooldia_entry.show()
self.ui.find_optimal_button.show()
self.ui.search_and_add_btn.show()
self.ui.addtool_from_db_btn.show()
self.ui.deltool_btn.show()
self.ui.add_tool_separator_line.show()
# Tool parameters section
app_defaults = self.app.defaults
if self.iso_tools:
for tool in self.iso_tools:
tool_data = self.iso_tools[tool]['data']
tool_data['tools_iso_isotype'] = app_defaults['tools_iso_isotype']
tool_data['tools_iso_rest'] = app_defaults['tools_iso_rest']
tool_data['tools_iso_isoexcept'] = app_defaults['tools_iso_isoexcept']
self.ui.milling_type_label.show()
self.ui.milling_type_radio.show()
self.ui.iso_type_label.show()
self.ui.iso_type_radio.set_value(app_defaults['tools_iso_isotype'])
self.ui.iso_type_radio.show()
# All param section
self.ui.all_param_separator_line2.show()
self.ui.apply_param_to_all.show()
# Common Parameters
self.ui.rest_cb.set_value(app_defaults['tools_iso_rest'])
self.ui.rest_cb.show()
self.ui.forced_rest_iso_cb.show()
self.ui.except_cb.set_value(app_defaults['tools_iso_isoexcept'])
self.ui.except_cb.show()
self.ui.type_excobj_radio.show()
self.ui.exc_obj_combo.show()
# Context Menu section
self.ui.tools_table.setupContextMenu()
def rebuild_ui(self):
# read the table tools uid
currenuid_list = []
@@ -1152,6 +1229,7 @@ class ToolIsolation(AppTool, Gerber):
def on_tool_add(self, custom_dia=None):
self.blockSignals(True)
self.ui_disconnect()
filename = self.app.tools_database_path()
@@ -1166,18 +1244,13 @@ class ToolIsolation(AppTool, Gerber):
new_tools_dict = deepcopy(self.default_data)
updated_tooldia = None
tool_dias = []
for k, v in self.iso_tools.items():
for tool_v in v.keys():
if tool_v == 'tooldia':
tool_dias.append(self.app.dec_format(v['tooldia'], self.decimals))
# determine the new tool diameter
if tool_dia is None or tool_dia == 0:
self.build_ui()
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter with non-zero value, "
"in Float format."))
self.blockSignals(False)
self.ui_connect()
return
truncated_tooldia = self.app.dec_format(tool_dia, self.decimals)
@@ -1195,6 +1268,7 @@ class ToolIsolation(AppTool, Gerber):
self.app.log.error("Could not load tools DB file.")
self.app.inform.emit('[ERROR] %s' % _("Could not load Tools DB file."))
self.blockSignals(False)
self.ui_connect()
self.on_tool_default_add(dia=tool_dia)
return
@@ -1206,6 +1280,7 @@ class ToolIsolation(AppTool, Gerber):
self.app.log.error(str(e))
self.app.inform.emit('[ERROR] %s' % _("Failed to parse Tools DB file."))
self.blockSignals(False)
self.ui_connect()
self.on_tool_default_add(dia=tool_dia)
return
@@ -1259,6 +1334,7 @@ class ToolIsolation(AppTool, Gerber):
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Tool not in Tools Database. Adding a default tool."))
self.on_tool_default_add(dia=tool_dia)
self.blockSignals(False)
self.ui_connect()
return
if tool_found > 1:
@@ -1266,6 +1342,7 @@ class ToolIsolation(AppTool, Gerber):
'[WARNING_NOTCL] %s' % _("Cancelled.\n"
"Multiple tools for one tool diameter found in Tools Database."))
self.blockSignals(False)
self.ui_connect()
return
# if new tool diameter found in Tools Database already in the Tool List then abort
@@ -1287,6 +1364,7 @@ class ToolIsolation(AppTool, Gerber):
}
})
self.blockSignals(False)
self.ui_connect()
self.build_ui()
# select the tool just added
@@ -3095,7 +3173,7 @@ class IsoUI:
self.title_box.addWidget(title_label)
# App Level label
self.level = FCLabel("")
self.level = QtWidgets.QToolButton()
self.level.setToolTip(
_(
"BASIC is suitable for a beginner. Many parameters\n"
@@ -3106,7 +3184,8 @@ class IsoUI:
"'APP. LEVEL' radio button."
)
)
self.level.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
# self.level.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
self.level.setCheckable(True)
self.title_box.addWidget(self.level)
self.obj_combo_label = FCLabel('<b>%s</b>:' % _("GERBER"))
@@ -3285,10 +3364,10 @@ class IsoUI:
button_grid.addWidget(self.deltool_btn, 0, 1, 2, 1)
# #############################################################################################################
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.grid3.addWidget(separator_line, 11, 0, 1, 2)
self.add_tool_separator_line = QtWidgets.QFrame()
self.add_tool_separator_line.setFrameShape(QtWidgets.QFrame.HLine)
self.add_tool_separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.grid3.addWidget(self.add_tool_separator_line, 11, 0, 1, 2)
self.tool_data_label = FCLabel(
"<b>%s: <font color='#0000FF'>%s %d</font></b>" % (_('Parameters for'), _("Tool"), int(1)))
@@ -3381,10 +3460,10 @@ class IsoUI:
)
self.grid3.addWidget(self.apply_param_to_all, 22, 0, 1, 2)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.grid3.addWidget(separator_line, 23, 0, 1, 2)
self.all_param_separator_line2 = QtWidgets.QFrame()
self.all_param_separator_line2.setFrameShape(QtWidgets.QFrame.HLine)
self.all_param_separator_line2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.grid3.addWidget(self.all_param_separator_line2, 23, 0, 1, 2)
# General Parameters
self.gen_param_label = FCLabel('<b>%s</b>' % _("Common Parameters"))