- the application now uses only the default values from the app.options dict, the app.defaults dict holds the definitive default values

- fixed some outstanding issues from the PyQt6 port
- PEP8 fixes
- minor fixes
- updated the saving of Preferences to update the self.options too: the `Apply` action will update the self.options but the `Save` action will save the updated preferences to the file on disk
This commit is contained in:
Marius Stanciu
2022-02-18 23:06:58 +02:00
committed by Marius
parent 14d9ea5470
commit 65d8dcc0b2
92 changed files with 1881 additions and 1882 deletions

View File

@@ -47,7 +47,7 @@ class ToolIsolation(AppTool, Gerber):
self.decimals = self.app.decimals
AppTool.__init__(self, app)
Gerber.__init__(self, steps_per_circle=self.app.defaults["gerber_circle_steps"])
Gerber.__init__(self, steps_per_circle=self.app.options["gerber_circle_steps"])
# #############################################################################
# ######################### Tool GUI ##########################################
@@ -95,14 +95,14 @@ class ToolIsolation(AppTool, Gerber):
# store here the state of the combine_cb GUI element
# used when the rest machining is toggled
self.old_combine_state = self.app.defaults["tools_iso_combine_passes"]
self.old_combine_state = self.app.options["tools_iso_combine_passes"]
# store here solid_geometry when there are tool with isolation job
self.solid_geometry = []
self.tool_type_item_options = []
self.grb_circle_steps = int(self.app.defaults["gerber_circle_steps"])
self.grb_circle_steps = int(self.app.options["gerber_circle_steps"])
self.tooldia = None
# store here the tool diameter that is guaranteed to isolate the object
@@ -312,10 +312,10 @@ class ToolIsolation(AppTool, Gerber):
self.app.log.debug("ToolIsolation.set_tool_ui() Select Gerber object -> %s" % str(ee))
# Show/Hide Advanced Options
app_mode = self.app.defaults["global_app_level"]
app_mode = self.app.options["global_app_level"]
self.change_level(app_mode)
if self.app.defaults["gerber_buffering"] == 'no':
if self.app.options["gerber_buffering"] == 'no':
self.ui.create_buffer_button.show()
try:
self.ui.create_buffer_button.clicked.disconnect(self.on_generate_buffer)
@@ -334,24 +334,24 @@ class ToolIsolation(AppTool, Gerber):
self.on_type_excobj_index_changed(val="gerber")
self.on_reference_combo_changed()
self.ui.iso_order_combo.set_value(self.app.defaults["tools_iso_order"])
self.ui.tool_shape_combo.set_value(self.app.defaults["tools_iso_tool_shape"])
self.ui.iso_order_combo.set_value(self.app.options["tools_iso_order"])
self.ui.tool_shape_combo.set_value(self.app.options["tools_iso_tool_shape"])
self.ui.tipdia_entry.set_value(self.app.defaults["tools_iso_vtipdia"])
self.ui.tipangle_entry.set_value(self.app.defaults["tools_iso_vtipangle"])
self.ui.cutz_entry.set_value(self.app.defaults["tools_iso_cutz"])
self.ui.tipdia_entry.set_value(self.app.options["tools_iso_vtipdia"])
self.ui.tipangle_entry.set_value(self.app.options["tools_iso_vtipangle"])
self.ui.cutz_entry.set_value(self.app.options["tools_iso_cutz"])
self.ui.passes_entry.set_value(self.app.defaults["tools_iso_passes"])
self.ui.pad_passes_entry.set_value(self.app.defaults["tools_iso_pad_passes"])
self.ui.iso_overlap_entry.set_value(self.app.defaults["tools_iso_overlap"])
self.ui.milling_type_radio.set_value(self.app.defaults["tools_iso_milling_type"])
self.ui.combine_passes_cb.set_value(self.app.defaults["tools_iso_combine_passes"])
self.ui.valid_cb.set_value(self.app.defaults["tools_iso_check_valid"])
self.ui.area_shape_radio.set_value(self.app.defaults["tools_iso_area_shape"])
self.ui.poly_int_cb.set_value(self.app.defaults["tools_iso_poly_ints"])
self.ui.forced_rest_iso_cb.set_value(self.app.defaults["tools_iso_force"])
self.ui.passes_entry.set_value(self.app.options["tools_iso_passes"])
self.ui.pad_passes_entry.set_value(self.app.options["tools_iso_pad_passes"])
self.ui.iso_overlap_entry.set_value(self.app.options["tools_iso_overlap"])
self.ui.milling_type_radio.set_value(self.app.options["tools_iso_milling_type"])
self.ui.combine_passes_cb.set_value(self.app.options["tools_iso_combine_passes"])
self.ui.valid_cb.set_value(self.app.options["tools_iso_check_valid"])
self.ui.area_shape_radio.set_value(self.app.options["tools_iso_area_shape"])
self.ui.poly_int_cb.set_value(self.app.options["tools_iso_poly_ints"])
self.ui.forced_rest_iso_cb.set_value(self.app.options["tools_iso_force"])
self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_iso_newdia"])
self.ui.new_tooldia_entry.set_value(self.app.options["tools_iso_newdia"])
# loaded_obj = self.app.collection.get_by_name(self.ui.object_combo.get_value())
# if loaded_obj:
@@ -377,48 +377,48 @@ class ToolIsolation(AppTool, Gerber):
# self.default_data.update({
# "name": outname + '_iso',
# "plot": self.app.defaults["geometry_plot"],
# "cutz": float(self.app.defaults["tools_iso_tool_cutz"]),
# "vtipdia": float(self.app.defaults["tools_iso_tool_vtipdia"]),
# "vtipangle": float(self.app.defaults["tools_iso_tool_vtipangle"]),
# "travelz": self.app.defaults["geometry_travelz"],
# "feedrate": self.app.defaults["geometry_feedrate"],
# "feedrate_z": self.app.defaults["geometry_feedrate_z"],
# "feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
# "plot": self.app.options["geometry_plot"],
# "cutz": float(self.app.options["tools_iso_tool_cutz"]),
# "vtipdia": float(self.app.options["tools_iso_tool_vtipdia"]),
# "vtipangle": float(self.app.options["tools_iso_tool_vtipangle"]),
# "travelz": self.app.options["geometry_travelz"],
# "feedrate": self.app.options["geometry_feedrate"],
# "feedrate_z": self.app.options["geometry_feedrate_z"],
# "feedrate_rapid": self.app.options["geometry_feedrate_rapid"],
#
# "multidepth": self.app.defaults["geometry_multidepth"],
# "ppname_g": self.app.defaults["geometry_ppname_g"],
# "depthperpass": self.app.defaults["geometry_depthperpass"],
# "extracut": self.app.defaults["geometry_extracut"],
# "extracut_length": self.app.defaults["geometry_extracut_length"],
# "toolchange": self.app.defaults["geometry_toolchange"],
# "toolchangez": self.app.defaults["geometry_toolchangez"],
# "endz": self.app.defaults["geometry_endz"],
# "endxy": self.app.defaults["geometry_endxy"],
# "multidepth": self.app.options["geometry_multidepth"],
# "ppname_g": self.app.options["geometry_ppname_g"],
# "depthperpass": self.app.options["geometry_depthperpass"],
# "extracut": self.app.options["geometry_extracut"],
# "extracut_length": self.app.options["geometry_extracut_length"],
# "toolchange": self.app.options["geometry_toolchange"],
# "toolchangez": self.app.options["geometry_toolchangez"],
# "endz": self.app.options["geometry_endz"],
# "endxy": self.app.options["geometry_endxy"],
#
# "dwell": self.app.defaults["geometry_dwell"],
# "dwelltime": self.app.defaults["geometry_dwelltime"],
# "spindlespeed": self.app.defaults["geometry_spindlespeed"],
# "spindledir": self.app.defaults["geometry_spindledir"],
# "dwell": self.app.options["geometry_dwell"],
# "dwelltime": self.app.options["geometry_dwelltime"],
# "spindlespeed": self.app.options["geometry_spindlespeed"],
# "spindledir": self.app.options["geometry_spindledir"],
#
# "optimization_type": self.app.defaults["geometry_optimization_type"],
# "search_time": self.app.defaults["geometry_search_time"],
# "toolchangexy": self.app.defaults["geometry_toolchangexy"],
# "startz": self.app.defaults["geometry_startz"],
# "optimization_type": self.app.options["geometry_optimization_type"],
# "search_time": self.app.options["geometry_search_time"],
# "toolchangexy": self.app.options["geometry_toolchangexy"],
# "startz": self.app.options["geometry_startz"],
#
# "area_exclusion": self.app.defaults["geometry_area_exclusion"],
# "area_shape": self.app.defaults["geometry_area_shape"],
# "area_strategy": self.app.defaults["geometry_area_strategy"],
# "area_overz": float(self.app.defaults["geometry_area_overz"]),
# "area_exclusion": self.app.options["geometry_area_exclusion"],
# "area_shape": self.app.options["geometry_area_shape"],
# "area_strategy": self.app.options["geometry_area_strategy"],
# "area_overz": float(self.app.options["geometry_area_overz"]),
# })
try:
dias = [float(self.app.defaults["tools_iso_tooldia"])]
dias = [float(self.app.options["tools_iso_tooldia"])]
except (ValueError, TypeError):
if isinstance(self.app.defaults["tools_iso_tooldia"], str):
dias = [float(eval(dia)) for dia in self.app.defaults["tools_iso_tooldia"].split(",") if dia != '']
if isinstance(self.app.options["tools_iso_tooldia"], str):
dias = [float(eval(dia)) for dia in self.app.options["tools_iso_tooldia"].split(",") if dia != '']
else:
dias = self.app.defaults["tools_iso_tooldia"]
dias = self.app.options["tools_iso_tooldia"]
if not dias:
self.app.log.error(
@@ -438,7 +438,7 @@ class ToolIsolation(AppTool, Gerber):
self.cursor_pos = None
self.mouse_is_dragging = False
prog_plot = True if self.app.defaults["tools_iso_plotting"] == 'progressive' else False
prog_plot = True if self.app.options["tools_iso_plotting"] == 'progressive' else False
if prog_plot:
self.temp_shapes.clear(update=True)
@@ -446,7 +446,7 @@ class ToolIsolation(AppTool, Gerber):
self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V", "L"]
self.on_rest_machining_check(state=self.app.defaults["tools_iso_rest"])
self.on_rest_machining_check(state=self.app.options["tools_iso_rest"])
self.ui.tools_table.drag_drop_sig.connect(self.rebuild_ui)
@@ -535,7 +535,7 @@ class ToolIsolation(AppTool, Gerber):
self.ui.add_tool_frame.show()
# Tool parameters section
app_defaults = self.app.defaults
app_defaults = self.app.options
if self.iso_tools:
for tool in self.iso_tools:
tool_data = self.iso_tools[tool]['data']
@@ -1779,7 +1779,7 @@ class ToolIsolation(AppTool, Gerber):
negative_dia=negative_dia, extra_passes=use_extra_passes, plot=plot)
else:
prog_plot = self.app.defaults["tools_iso_plotting"]
prog_plot = self.app.options["tools_iso_plotting"]
for tool in sel_tools:
tool_data = tools_storage[tool]['data']
@@ -1850,7 +1850,7 @@ class ToolIsolation(AppTool, Gerber):
if negative_dia:
iso_offset = -iso_offset
pad_pass_geo.append(
geo.buffer(iso_offset, int(self.app.defaults["gerber_circle_steps"])))
geo.buffer(iso_offset, int(self.app.options["gerber_circle_steps"])))
pad_geo.append(unary_union(pad_pass_geo).difference(solid_geo_union))
total_geo = []
@@ -1999,7 +1999,7 @@ class ToolIsolation(AppTool, Gerber):
pass
# decide to use "progressive" or "normal" plotting
prog_plot = self.app.defaults["tools_iso_plotting"]
prog_plot = self.app.options["tools_iso_plotting"]
for sorted_tool in sorted_tools:
for tool in tools_storage:
@@ -2072,7 +2072,7 @@ class ToolIsolation(AppTool, Gerber):
break
# clean the progressive plotted shapes if it was used
if plot and self.app.defaults["tools_iso_plotting"] == 'progressive':
if plot and self.app.options["tools_iso_plotting"] == 'progressive':
self.temp_shapes.clear(update=True)
# remove tools without geometry
@@ -2171,7 +2171,7 @@ class ToolIsolation(AppTool, Gerber):
iso_name = iso_obj.obj_options["name"] + '_iso_combined'
geometry = iso2geo
if prog_plot is None:
prog_plot = self.app.defaults["tools_iso_plotting"]
prog_plot = self.app.options["tools_iso_plotting"]
for tool in sel_tools:
tool_dia = tools_storage[tool]['tooldia']
@@ -2246,7 +2246,7 @@ class ToolIsolation(AppTool, Gerber):
iso_offset = tool_dia * ((2 * nr_pass + 1) / 2.0000001) - (nr_pass * overlap * tool_dia)
if negative_dia:
iso_offset = -iso_offset
pad_pass_geo.append(geo.buffer(iso_offset, int(self.app.defaults["gerber_circle_steps"])))
pad_pass_geo.append(geo.buffer(iso_offset, int(self.app.options["gerber_circle_steps"])))
pad_geo.append(unary_union(pad_pass_geo).difference(solid_geo_union))
solid_geo += pad_geo
@@ -2483,8 +2483,8 @@ class ToolIsolation(AppTool, Gerber):
elif clicked_poly:
if clicked_poly not in self.poly_dict.values():
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=clicked_poly,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults['global_sel_draw_color'] + 'AF',
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options['global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = clicked_poly
self.app.inform.emit(
@@ -2571,15 +2571,15 @@ class ToolIsolation(AppTool, Gerber):
try:
for poly in self.grb_obj.solid_geometry:
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=poly,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults['global_sel_draw_color'] + 'AF',
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options['global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = poly
except TypeError:
poly = self.grb_obj.solid_geometry
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=poly,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults['global_sel_draw_color'] + 'AF',
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options['global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = poly
@@ -2611,8 +2611,8 @@ class ToolIsolation(AppTool, Gerber):
if geo.within(poly_selection):
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
shape=geo,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults[
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options[
'global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = geo
@@ -2621,8 +2621,8 @@ class ToolIsolation(AppTool, Gerber):
if poly_selection.intersects(geo):
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
shape=geo,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults[
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options[
'global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = geo
@@ -2633,8 +2633,8 @@ class ToolIsolation(AppTool, Gerber):
if poly_selection.contains(self.solid_geometry):
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
shape=self.solid_geometry,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults[
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options[
'global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = self.solid_geometry
@@ -2643,8 +2643,8 @@ class ToolIsolation(AppTool, Gerber):
if poly_selection.intersects(self.solid_geometry):
shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
shape=self.solid_geometry,
color=self.app.defaults['global_sel_draw_color'] + 'AF',
face_color=self.app.defaults[
color=self.app.options['global_sel_draw_color'] + 'AF',
face_color=self.app.options[
'global_sel_draw_color'] + 'AF',
visible=True)
self.poly_dict[shape_id] = self.solid_geometry
@@ -2813,8 +2813,8 @@ class ToolIsolation(AppTool, Gerber):
self.app.app_cursor.set_data(np.asarray([(curr_pos[0], curr_pos[1])]),
symbol='++', edge_color=self.app.cursor_color_3D,
edge_width=self.app.defaults["global_cursor_width"],
size=self.app.defaults["global_cursor_size"])
edge_width=self.app.options["global_cursor_width"],
size=self.app.options["global_cursor_size"])
if self.cursor_pos is None:
self.cursor_pos = (0, 0)
@@ -3552,7 +3552,7 @@ class IsoUI:
self.tool_shape_combo.setObjectName('i_tool_shape')
self.tool_shape_combo.addItems(["C1", "C2", "C3", "C4", "B", "V", "L"])
idx = int(self.app.defaults['tools_iso_tool_shape'])
idx = int(self.app.options['tools_iso_tool_shape'])
# protection against having this translated or loading a project with translated values
if idx == -1:
self.tool_shape_combo.setCurrentIndex(0)