Not user callable. Callback function that is called when something is double-clicked to edit cell in table. :param event: event information from tkinter :type event: (unknown)
(self, event)
| 9007 | _exit_mainloop(self.ParentForm, self) |
| 9008 | |
| 9009 | def _treeview_double_click(self, event): |
| 9010 | """ |
| 9011 | Not user callable. Callback function that is called when something is double-clicked to edit cell in table. |
| 9012 | |
| 9013 | :param event: event information from tkinter |
| 9014 | :type event: (unknown) |
| 9015 | """ |
| 9016 | |
| 9017 | def on_focus_out(table, widget, event, item, column, value_type): |
| 9018 | # Update the Treeview with the new value |
| 9019 | # Make sure the value type matches what was previously there |
| 9020 | table_row = int(item) - 1 |
| 9021 | table_col = int(column[1:]) - 1 |
| 9022 | new_value = value_type(widget.entry.get()) |
| 9023 | col_index = int(column[1:]) - 1 |
| 9024 | current_values = list(widget.item(item, "values")) |
| 9025 | current_values[col_index] = new_value |
| 9026 | widget.item(item, values=current_values) |
| 9027 | table.Values[table_row][table_col] = new_value |
| 9028 | # Destroy the Entry widget |
| 9029 | if widget.entry: |
| 9030 | widget.entry.destroy() |
| 9031 | widget.entry = None |
| 9032 | if self.Key is not None: |
| 9033 | self.ParentForm.LastButtonClicked = (self.Key, TABLE_EDITED_INDICATOR, (table_row, table_col)) |
| 9034 | else: |
| 9035 | self.ParentForm.LastButtonClicked = '' |
| 9036 | self.ParentForm.FormRemainedOpen = True |
| 9037 | _exit_mainloop(self.ParentForm, self) |
| 9038 | |
| 9039 | def on_escape(table, widget, event, item, column, value_type): |
| 9040 | if widget.entry: |
| 9041 | widget.entry.destroy() |
| 9042 | widget.entry = None |
| 9043 | |
| 9044 | if self.enable_cell_editing and not self.widget.entry: # if can edit and not already editing another cell |
| 9045 | region = self.widget.identify("region", event.x, event.y) |
| 9046 | if region == "cell": |
| 9047 | column = self.widget.identify_column(event.x) |
| 9048 | item = self.widget.identify_row(event.y) |
| 9049 | row = int(item) - 1 |
| 9050 | col = int(column[1:]) - 1 |
| 9051 | cell_box = self.widget.bbox(item, column) |
| 9052 | if self.disabled_cells is not None and (row, col) in self.disabled_cells: |
| 9053 | return |
| 9054 | if cell_box: |
| 9055 | self.widget.entry = tk.Entry(self.widget) |
| 9056 | self.widget.entry.config(justify=tk.RIGHT, font=self.font_used) |
| 9057 | if self.cell_edit_colors[0] not in (None, COLOR_SYSTEM_DEFAULT): |
| 9058 | self.widget.entry.config(foreground=self.cell_edit_colors[0]) |
| 9059 | if self.cell_edit_colors[1] not in (None, COLOR_SYSTEM_DEFAULT): |
| 9060 | self.widget.entry.config(background=self.cell_edit_colors[1]) |
| 9061 | if self.cell_edit_select_colors != (None, None): |
| 9062 | self.widget.entry.config(selectforeground=self.cell_edit_select_colors[0], selectbackground=self.cell_edit_select_colors[1]) |
| 9063 | |
| 9064 | self.widget.entry.place(x=cell_box[0], y=cell_box[1], width=cell_box[2], height=cell_box[3]) |
| 9065 | # Populate the entry with the current value |
| 9066 | value = self.widget.item(item, "values")[col] |
nothing calls this directly
no test coverage detected