- Milling Plugin - will update the UI form on object change with the data from its last tool

- Drilling Plugin - will update the UI form on object selection on canvas
This commit is contained in:
Marius Stanciu
2021-03-22 03:44:57 +02:00
committed by Marius
parent 6d5747a9bf
commit d0327ff37d
3 changed files with 36 additions and 0 deletions

View File

@@ -958,8 +958,22 @@ class ToolDrilling(AppTool, Excellon):
else:
self.ui.generate_cnc_button.setDisabled(False)
def on_object_selection_changed(self, current, previous):
try:
sel_obj = current.indexes()[0].internalPointer().obj
name = sel_obj.options['name']
kind = sel_obj.kind
if kind in ['geometry', 'excellon']:
self.ui.object_combo.set_value(name)
except IndexError:
pass
def ui_connect(self):
# When object selection on canvas change
# self.app.collection.view.selectionModel().selectionChanged.connect(self.on_object_selection_changed)
self.app.proj_selection_changed.connect(self.on_object_selection_changed)
# Area Exception - exclusion shape added signal
# first disconnect it from any other object
try:
@@ -1010,6 +1024,13 @@ class ToolDrilling(AppTool, Excellon):
self.ui.exclusion_table.itemChanged.connect(self.on_exclusion_table_overz)
def ui_disconnect(self):
# When object selection on canvas change
# self.app.collection.view.selectionModel().selectionChanged.disconnect()
try:
self.app.proj_selection_changed.disconnect()
except (TypeError, AttributeError):
pass
# rows selected
try:
self.ui.tools_table.clicked.disconnect(self.on_row_selection_change)

View File

@@ -1311,6 +1311,12 @@ class ToolMilling(AppTool, Excellon):
self.app.collection.set_active(self.obj_name)
self.build_ui()
# new object that is now selected
obj = self.app.collection.get_by_name(self.obj_name)
if obj is not None:
last_key = list(obj.tools.keys())[-1]
self.to_form(storage=obj.tools[last_key]['data'])
def on_object_changed(self):
if not self.app.ui.notebook.tabText(2) != _("Milling Tool"):
return
@@ -1342,6 +1348,10 @@ class ToolMilling(AppTool, Excellon):
self.app.collection.set_active(self.obj_name)
self.build_ui()
if self.target_obj is not None:
last_key = list(self.target_obj.tools.keys())[-1]
self.to_form(storage=self.target_obj.tools[last_key]['data'])
def on_object_selection_changed(self, current, previous):
try:
sel_obj = current.indexes()[0].internalPointer().obj