From 1dfe1e10eb3898b86f17fb5d6077aeba215301ac Mon Sep 17 00:00:00 2001 From: Hans Unzner Date: Tue, 24 Feb 2026 18:19:10 +0100 Subject: [PATCH] gmoccapy: fix "toolpage - save button with calculator doesn't work" (#3817) --- src/emc/usr_intf/gmoccapy/gmoccapy.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/emc/usr_intf/gmoccapy/gmoccapy.py b/src/emc/usr_intf/gmoccapy/gmoccapy.py index 02f5a1d0df4..fccd0b04285 100644 --- a/src/emc/usr_intf/gmoccapy/gmoccapy.py +++ b/src/emc/usr_intf/gmoccapy/gmoccapy.py @@ -2124,11 +2124,11 @@ def on_tool_col_edit_started(self, widget, filtered_path, new_text, col): "Diameter", "Front angle", "Back angle", "Orientation", ";1"] toolpage = self.widgets.tooledit1 toolview = toolpage.view1 - model, row = toolview.get_selection().get_selected() + model, treeiter = toolview.get_selection().get_selected() value = self.dialogs.entry_dialog(self, - data=model[row][col], + data=model[treeiter][col], header=_("Enter value"), - label=_("Tool") + f" {model[row][1]}, {captations[col]}:", + label=_("Tool") + f" {model[treeiter][1]}, {captations[col]}:", integer=col in [1,2,15]) if value == "ERROR": LOG.debug("conversion error") @@ -2137,16 +2137,17 @@ def on_tool_col_edit_started(self, widget, filtered_path, new_text, col): elif value == "CANCEL": pass else: - store = toolpage.wTree.get_object("liststore1") - if col in [1,2,15]: - store[row][col] = value - else: - store[row][col] = f"{value:11.4f}" + path = model.get_path(treeiter) + row = path.get_indices()[0] + # Clicking on a cell emits 'editing-started' which leads to the evaluation of the text in edit mode. + # To use the return value of the calculator, it must be pretended that there is no editable (=no edit mode). + self.widgets.tooledit1.editable = None + self.widgets.tooledit1.validate_input(row, f"{value:11.4f}", col) self.widgets.tooledit1.edited = True # this is needed to get offsetview out of editing mode GLib.timeout_add(50, toolview.set_cursor, - toolpage.model.get_path(row), + toolpage.model.get_path(treeiter), toolview.get_columns()[0], True)