diff --git a/lib/python/gladevcp/tooledit_widget.py b/lib/python/gladevcp/tooledit_widget.py index 9fdb6ccfcfe..cedceaf229b 100644 --- a/lib/python/gladevcp/tooledit_widget.py +++ b/lib/python/gladevcp/tooledit_widget.py @@ -231,6 +231,8 @@ def match_tool(model, path, iter, pathlist): def add(self,widget,data=[1,0,0,'0','0','0','0','0','0','0','0','0','0','0','0',0,"comment"]): self.model.append(data) self.num_of_col +=1 + liststore = self.model + self.wTree.get_object("treeview1").scroll_to_cell(len(liststore)-1) # this is for adding a filename path after the tooleditor is already loaded. def set_filename(self,filename): diff --git a/share/gmoccapy/icons/classic/32x32/actions/add.png b/share/gmoccapy/icons/classic/32x32/actions/add.png new file mode 100644 index 00000000000..1098f031c9c Binary files /dev/null and b/share/gmoccapy/icons/classic/32x32/actions/add.png differ diff --git a/share/gmoccapy/icons/classic/32x32/actions/delete.png b/share/gmoccapy/icons/classic/32x32/actions/delete.png new file mode 100644 index 00000000000..34eb0eef240 Binary files /dev/null and b/share/gmoccapy/icons/classic/32x32/actions/delete.png differ diff --git a/share/gmoccapy/icons/material/32x32/actions/add.symbolic.png b/share/gmoccapy/icons/material/32x32/actions/add.symbolic.png new file mode 100644 index 00000000000..b739cab0c4c Binary files /dev/null and b/share/gmoccapy/icons/material/32x32/actions/add.symbolic.png differ diff --git a/share/gmoccapy/icons/material/32x32/actions/delete.symbolic.png b/share/gmoccapy/icons/material/32x32/actions/delete.symbolic.png new file mode 100644 index 00000000000..5074b901154 Binary files /dev/null and b/share/gmoccapy/icons/material/32x32/actions/delete.symbolic.png differ diff --git a/src/emc/usr_intf/gmoccapy/gmoccapy.glade b/src/emc/usr_intf/gmoccapy/gmoccapy.glade index 9b5c2ee18df..2b9d5986e95 100644 --- a/src/emc/usr_intf/gmoccapy/gmoccapy.glade +++ b/src/emc/usr_intf/gmoccapy/gmoccapy.glade @@ -695,6 +695,26 @@ True False + + True + False + + + True + False + + + True + False + + + True + False + + + True + False + @@ -7405,18 +7425,11 @@ MDI history True False - - Delete - False + 90 56 True - True - True - delete selected tool or tools - center - center - + False False @@ -7425,18 +7438,11 @@ MDI history - - Add - False + 90 56 True - True - True - add a new tool to tool table - center - center - + False False @@ -7445,18 +7451,11 @@ MDI history - - Reload - False + 90 56 True - True - True - reload tool table from file - center - center - + False False @@ -7465,18 +7464,11 @@ MDI history - - Apply - False + 90 56 True - True - True - apply the changes you made, G43 will be executed only if it is active G-code - center - center - + False False diff --git a/src/emc/usr_intf/gmoccapy/gmoccapy.py b/src/emc/usr_intf/gmoccapy/gmoccapy.py index f217fc0d57f..0d352ddf89a 100644 --- a/src/emc/usr_intf/gmoccapy/gmoccapy.py +++ b/src/emc/usr_intf/gmoccapy/gmoccapy.py @@ -1954,7 +1954,47 @@ def _init_tooleditor(self): if not self.get_ini_info.get_lathe_wear_offsets(): # hide the wear offset tabs self.widgets.tooledit1.set_lathe_display(False) - self.widgets.tooledit1.hide_buttonbox(True) + # Modify the button box at the bottom + buttonbox = self.widgets.tooledit1.wTree.get_object("buttonbox") + buttonbox.set_layout(Gtk.ButtonBoxStyle.EDGE) + buttonbox.set_property("homogeneous", True) + # Delete button + btn_delete = self.widgets.tooledit1.wTree.get_object("delete") + btn_delete.set_size_request(56, 56) + btn_delete.set_label("") + btn_delete.set_image(self.widgets.img_tool_delete) + btn_delete.set_always_show_image(True) + # Add button + btn_add = self.widgets.tooledit1.wTree.get_object("add") + btn_add.set_size_request(56, 56) + btn_add.set_label("") + btn_add.set_image(self.widgets.img_tool_add) + btn_add.set_always_show_image(True) + # Reload button + btn_reload = self.widgets.tooledit1.wTree.get_object("reload") + btn_reload.set_size_request(56, 56) + btn_reload.set_label("") + btn_reload.set_image(self.widgets.img_tool_reload) + btn_reload.set_always_show_image(True) + # Save button + btn_save = self.widgets.tooledit1.wTree.get_object("apply") + btn_save.set_size_request(56, 56) + btn_save.set_label("") + btn_save.set_image(self.widgets.img_tool_save) + btn_save.set_always_show_image(True) + # Empty space in between + spacer = Gtk.Label() + spacer.show_all() + buttonbox.pack_start(spacer,True,True,0) + # Calculator button + btn_calculator = Gtk.ToggleButton() + btn_calculator.set_size_request(56, 56) + btn_calculator.set_image(self.widgets.img_tool_calculator) + btn_calculator.set_tooltip_text(_("Use calculator to edit numeric values")) + btn_calculator.show_all() + btn_calculator.set_active(self.toolpage_use_calc) + btn_calculator.connect("toggled", self.on_use_calculator_toggled) + buttonbox.pack_start(btn_calculator,False,False,50) column_cell_ids = ["toggle", "tool#1", "pos1", "x1", "y1", "z1", "a1", "b1", "c1", "u1", "v1", "w1", "d1", "front1", "back1", "orient1", "cell_comments1"] for col, name in enumerate(column_cell_ids): @@ -1962,6 +2002,9 @@ def _init_tooleditor(self): temp = self.widgets.tooledit1.wTree.get_object("cell_%s" % name) temp.connect('editing-started', self.on_tool_col_edit_started, col) + def on_use_calculator_toggled(self,widget): + self.toolpage_use_calc = widget.get_active() + def on_tool_col_edit_started(self, widget, filtered_path, new_text, col): if not self.toolpage_use_calc: return @@ -4731,6 +4774,12 @@ def _set_icon_theme(self, name): ("img_tool_clear", "clear", 24), ("img_tool_path", "toolpath", 24), ("img_dimensions", "dimensions", 24), + # tooledit frame controls + ("img_tool_delete", "delete", 32), + ("img_tool_add", "add", 32), + ("img_tool_reload", "refresh", 32), + ("img_tool_save", "save", 32), + ("img_tool_calculator", "calculator_open", 32), # coolant ("img_coolant_on", "coolant_flood_active", 48), ("img_coolant_off", "coolant_flood_inactive", 48), @@ -5224,7 +5273,7 @@ def on_btn_reload_tooltable_clicked(self, widget, data=None): self.widgets.tooledit1.reload(None) self.widgets.tooledit1.set_selected_tool(self.stat.tool_in_spindle) - def on_btn_apply_tool_changes_clicked(self, widget, data=None): + def on_btn_save_tool_changes_clicked(self, widget, data=None): self.widgets.tooledit1.save(None) self.widgets.tooledit1.set_selected_tool(self.stat.tool_in_spindle)