tksheet 7.4.23__py3-none-any.whl → 7.4.24__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tksheet/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
  tksheet - A Python tkinter table widget
5
5
  """
6
6
 
7
- __version__ = "7.4.23"
7
+ __version__ = "7.4.24"
8
8
 
9
9
  from .colors import (
10
10
  color_map,
tksheet/main_table.py CHANGED
@@ -1796,6 +1796,9 @@ class MainTable(tk.Canvas):
1796
1796
  disp_new_idxs=disp_new_idxs,
1797
1797
  maxidx=maxidx,
1798
1798
  event_data=event_data,
1799
+ # undo_modification is the old saved stuff
1800
+ # event_data is the new event
1801
+ # node change only comes from Sheet.move()
1799
1802
  undo_modification=undo_modification,
1800
1803
  node_change=node_change,
1801
1804
  )
@@ -2020,8 +2023,9 @@ class MainTable(tk.Canvas):
2020
2023
  self.PAR.emit_event("<<Redo>>", event_data)
2021
2024
  return event_data
2022
2025
 
2023
- def sheet_modified(self, event_data: EventDataDict, purge_redo: bool = True) -> None:
2024
- self.PAR.emit_event("<<SheetModified>>", event_data)
2026
+ def sheet_modified(self, event_data: EventDataDict, purge_redo: bool = True, emit_event: bool = True) -> None:
2027
+ if emit_event:
2028
+ self.PAR.emit_event("<<SheetModified>>", event_data)
2025
2029
  if purge_redo:
2026
2030
  self.purge_redo_stack()
2027
2031
 
@@ -7603,9 +7607,30 @@ class MainTable(tk.Canvas):
7603
7607
  return
7604
7608
  if numcols == 1 and numrows == 1:
7605
7609
  if direction == "right":
7606
- self.select_right(r, c)
7610
+ new_r, new_c = cell_right_within_box(
7611
+ r,
7612
+ c,
7613
+ 0,
7614
+ 0,
7615
+ len(self.row_positions) - 1,
7616
+ len(self.col_positions) - 1,
7617
+ len(self.row_positions) - 1,
7618
+ len(self.col_positions) - 1,
7619
+ )
7607
7620
  elif direction == "down":
7608
- self.select_down(r, c)
7621
+ new_r, new_c = cell_down_within_box(
7622
+ r,
7623
+ c,
7624
+ 0,
7625
+ 0,
7626
+ len(self.row_positions) - 1,
7627
+ len(self.col_positions) - 1,
7628
+ len(self.row_positions) - 1,
7629
+ len(self.col_positions) - 1,
7630
+ )
7631
+ if direction in ("right", "down"):
7632
+ self.select_cell(new_r, new_c)
7633
+ self.see(new_r, new_c)
7609
7634
  else:
7610
7635
  if direction == "right":
7611
7636
  new_r, new_c = cell_right_within_box(r, c, r1, c1, r2, c2, numrows, numcols)
@@ -7631,28 +7656,34 @@ class MainTable(tk.Canvas):
7631
7656
  value = None
7632
7657
  return value, event_data
7633
7658
 
7634
- def select_right(self, r: int, c: int) -> None:
7635
- self.select_cell(r, c + 1 if c < len(self.col_positions) - 2 else c)
7636
- self.see(
7637
- r,
7638
- c + 1 if c < len(self.col_positions) - 2 else c,
7639
- bottom_right_corner=True,
7640
- )
7641
-
7642
- def select_down(self, r: int, c: int) -> None:
7643
- self.select_cell(r + 1 if r < len(self.row_positions) - 2 else r, c)
7644
- self.see(r + 1 if r < len(self.row_positions) - 2 else r, c)
7645
-
7646
7659
  def tab_key(self, event: Any = None) -> str:
7647
- if not self.selected:
7648
- return
7649
- r, c = self.selected.row, self.selected.column
7650
- r1, c1, r2, c2 = self.selection_boxes[self.selected.fill_iid].coords
7651
- numcols = c2 - c1
7652
- numrows = r2 - r1
7660
+ if self.selected:
7661
+ r, c = self.selected.row, self.selected.column
7662
+ r1, c1, r2, c2 = self.selection_boxes[self.selected.fill_iid].coords
7663
+ numcols = c2 - c1
7664
+ numrows = r2 - r1
7665
+ else:
7666
+ if (
7667
+ self.row_positions == [0]
7668
+ or self.col_positions == [0]
7669
+ or not self.row_positions
7670
+ or not self.col_positions
7671
+ ):
7672
+ return
7673
+ r, c = len(self.row_positions) - 2, len(self.col_positions) - 2
7674
+ r1, c1, r2, c2 = 0, 0, len(self.row_positions) - 1, len(self.col_positions) - 1
7675
+ numcols, numrows = 1, 1
7653
7676
  if numcols == 1 and numrows == 1:
7654
- new_r = r
7655
- new_c = c + 1 if c < len(self.col_positions) - 2 else c
7677
+ new_r, new_c = cell_right_within_box(
7678
+ r,
7679
+ c,
7680
+ 0,
7681
+ 0,
7682
+ len(self.row_positions) - 1,
7683
+ len(self.col_positions) - 1,
7684
+ len(self.row_positions) - 1,
7685
+ len(self.col_positions) - 1,
7686
+ )
7656
7687
  self.select_cell(new_r, new_c)
7657
7688
  else:
7658
7689
  new_r, new_c = cell_right_within_box(r, c, r1, c1, r2, c2, numrows, numcols)
tksheet/sheet.py CHANGED
@@ -1565,8 +1565,9 @@ class Sheet(tk.Frame):
1565
1565
  ):
1566
1566
  if undo is True or (undo is None and span.undo):
1567
1567
  self.MT.undo_stack.append(stored_event_dict(event_data))
1568
- if emit_event is True or (emit_event is None and span.emit_event):
1569
- self.emit_event("<<SheetModified>>", event_data)
1568
+ self.MT.sheet_modified(
1569
+ event_data, emit_event=emit_event is True or (emit_event is None and span.emit_event)
1570
+ )
1570
1571
  self.set_refresh_timer(redraw)
1571
1572
  return event_data
1572
1573
 
@@ -1605,8 +1606,9 @@ class Sheet(tk.Frame):
1605
1606
  if event_data["cells"]["table"] or event_data["cells"]["header"] or event_data["cells"]["index"]:
1606
1607
  if undo is True or (undo is None and span.undo):
1607
1608
  self.MT.undo_stack.append(stored_event_dict(event_data))
1608
- if emit_event is True or (emit_event is None and span.emit_event):
1609
- self.emit_event("<<SheetModified>>", event_data)
1609
+ self.MT.sheet_modified(
1610
+ event_data, emit_event=emit_event is True or (emit_event is None and span.emit_event)
1611
+ )
1610
1612
  self.set_refresh_timer(redraw)
1611
1613
  return event_data
1612
1614
 
@@ -1743,8 +1745,7 @@ class Sheet(tk.Frame):
1743
1745
  )
1744
1746
  if undo:
1745
1747
  self.MT.undo_stack.append(stored_event_dict(event_data))
1746
- if emit_event:
1747
- self.emit_event("<<SheetModified>>", event_data)
1748
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
1748
1749
  self.set_refresh_timer(redraw)
1749
1750
  return event_data
1750
1751
 
@@ -1797,8 +1798,7 @@ class Sheet(tk.Frame):
1797
1798
  )
1798
1799
  if undo:
1799
1800
  self.MT.undo_stack.append(stored_event_dict(event_data))
1800
- if emit_event:
1801
- self.emit_event("<<SheetModified>>", event_data)
1801
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
1802
1802
  self.set_refresh_timer(redraw)
1803
1803
  return event_data
1804
1804
 
@@ -1939,8 +1939,7 @@ class Sheet(tk.Frame):
1939
1939
  )
1940
1940
  if undo:
1941
1941
  self.MT.undo_stack.append(stored_event_dict(event_data))
1942
- if emit_event:
1943
- self.emit_event("<<SheetModified>>", event_data)
1942
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
1944
1943
  self.set_refresh_timer(redraw)
1945
1944
  return data_idxs, disp_idxs, event_data
1946
1945
 
@@ -1974,8 +1973,7 @@ class Sheet(tk.Frame):
1974
1973
  )
1975
1974
  if undo:
1976
1975
  self.MT.undo_stack.append(stored_event_dict(event_data))
1977
- if emit_event:
1978
- self.emit_event("<<SheetModified>>", event_data)
1976
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
1979
1977
  self.set_refresh_timer(redraw)
1980
1978
  return data_idxs, disp_idxs, event_data
1981
1979
 
@@ -1999,8 +1997,7 @@ class Sheet(tk.Frame):
1999
1997
  )
2000
1998
  if undo:
2001
1999
  self.MT.undo_stack.append(stored_event_dict(event_data))
2002
- if emit_event:
2003
- self.emit_event("<<SheetModified>>", event_data)
2000
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
2004
2001
  self.set_refresh_timer(redraw)
2005
2002
  return data_idxs, disp_idxs, event_data
2006
2003
 
@@ -2026,8 +2023,7 @@ class Sheet(tk.Frame):
2026
2023
  )
2027
2024
  if undo:
2028
2025
  self.MT.undo_stack.append(stored_event_dict(event_data))
2029
- if emit_event:
2030
- self.emit_event("<<SheetModified>>", event_data)
2026
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
2031
2027
  self.set_refresh_timer(redraw)
2032
2028
  return data_idxs, disp_idxs, event_data
2033
2029
 
@@ -2242,7 +2238,6 @@ class Sheet(tk.Frame):
2242
2238
  self.MT.undo_stack.append(stored_event_dict(event_data))
2243
2239
  try_binding(self.MT.extra_end_replace_all_func, event_data)
2244
2240
  self.MT.sheet_modified(event_data)
2245
- self.emit_event("<<SheetModified>>", event_data)
2246
2241
  return event_data
2247
2242
 
2248
2243
  # Highlighting Cells
@@ -4872,8 +4867,7 @@ class Sheet(tk.Frame):
4872
4867
  if event_data:
4873
4868
  if undo and self.MT.undo_enabled:
4874
4869
  self.MT.undo_stack.append(stored_event_dict(event_data))
4875
- if emit_event:
4876
- self.emit_event("<<SheetModified>>", event_data)
4870
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
4877
4871
 
4878
4872
  self.set_refresh_timer(redraw=not get_only and redraw)
4879
4873
  if get_only:
@@ -4973,8 +4967,7 @@ class Sheet(tk.Frame):
4973
4967
  )
4974
4968
  if undo:
4975
4969
  self.MT.undo_stack.append(stored_event_dict(event_data))
4976
- if emit_event:
4977
- self.emit_event("<<SheetModified>>", event_data)
4970
+ self.MT.sheet_modified(event_data, emit_event=emit_event)
4978
4971
  self.set_refresh_timer()
4979
4972
  return data_new_idxs, disp_new_idxs, event_data
4980
4973
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tksheet
3
- Version: 7.4.23
3
+ Version: 7.4.24
4
4
  Summary: Tkinter table / sheet and treeview widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
@@ -1,22 +1,22 @@
1
- tksheet/__init__.py,sha256=EnHhyTDrgSe8qTi28EYl56aynnSF8TxhBAq2xjoPcSI,2327
1
+ tksheet/__init__.py,sha256=WfT3DhWZu7l_NqGdTEofioaUu9jaN-lGhCci1VKEYGE,2327
2
2
  tksheet/colors.py,sha256=dHhmdFuQDlwohDHsAfT9VdrKoSl_R33L72a3HCin5zo,51591
3
3
  tksheet/column_headers.py,sha256=cP0RImb-EgHdVLSfNmU42k5GwCol7akKgMH6xq1sZfY,103339
4
4
  tksheet/constants.py,sha256=aiDvUSaPtl_TSNtRRJ_p87c9iTBz9ksMd5IsSXzz4Hk,13316
5
5
  tksheet/find_window.py,sha256=w6S0FZFLRNHiM57Oq97avALT_PctIBPegSxnkNUwkwk,19982
6
6
  tksheet/formatters.py,sha256=DGcRiMsDJnySNpQcjfiX84oJ7TmOSMdU6u9injIhA4g,10095
7
7
  tksheet/functions.py,sha256=gwf9X9ENHmoikjbXtoj-00uUVQGRJVffkeJHoR7yB2E,52993
8
- tksheet/main_table.py,sha256=YwgqTWithMHXoUpYsBGPrp3g5vtGqjSnwiLdq3qPKo4,367715
8
+ tksheet/main_table.py,sha256=22uUDpB1CBHRASvQUnEvhzsaZEXA580omFBJhzP98us,368944
9
9
  tksheet/other_classes.py,sha256=4VcAxiPH8SxuNbbLSve5ynqfnLwMUGSUs1ZQp0Yc1Gc,18177
10
10
  tksheet/row_index.py,sha256=8zuNU00ATmz5oumEqSyB_nOUAIuCS23mUfTpq3R1WOM,141611
11
- tksheet/sheet.py,sha256=xj2xIaoZQHPlG95hOduNT5NsVpZ0Mb87xJB935caOzA,269918
11
+ tksheet/sheet.py,sha256=0He8YJqBO6SpC3jbXsL3prXMGIR9RoZUyb3tAU5eFa0,269718
12
12
  tksheet/sheet_options.py,sha256=ob-XYgGfBoi2TaFAvUUmlWUkw9xB-yXmJw17gu9__Lw,9948
13
13
  tksheet/sorting.py,sha256=zcZPpRtP1h_xJGtGkG3E43H7deKQFnh9cMwZ1B2-aGc,17502
14
14
  tksheet/text_editor.py,sha256=rU8Fz0-ltkM63W9io2DoZJPyzUGzCc9Z0qBtc4D1H40,7404
15
15
  tksheet/themes.py,sha256=AoNAxibnQi04MN0Zpbn9-kyDnkiiV8TDNWP9FYjpuf0,18473
16
16
  tksheet/tksheet_types.py,sha256=1MjXR34EmvP1KfHlLTvKKVnf0VMz_LU_WOM2q4o5hfI,4598
17
17
  tksheet/top_left_rectangle.py,sha256=A4wWL8PFl57Pn2Ek71rASCE1-bW844cTl7bgt4tLWzI,8499
18
- tksheet-7.4.23.dist-info/licenses/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
19
- tksheet-7.4.23.dist-info/METADATA,sha256=4DhkRE9dHocL93gc5iWbfZOub24S2u0DdZkZwULoOO8,8117
20
- tksheet-7.4.23.dist-info/WHEEL,sha256=ooBFpIzZCPdw3uqIQsOo4qqbA4ZRPxHnOH7peeONza0,91
21
- tksheet-7.4.23.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
22
- tksheet-7.4.23.dist-info/RECORD,,
18
+ tksheet-7.4.24.dist-info/licenses/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
19
+ tksheet-7.4.24.dist-info/METADATA,sha256=Xmd2MJHPcpUFTYrtte0qAcBN1Wjwi8VODJkgBzHDbOY,8117
20
+ tksheet-7.4.24.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
21
+ tksheet-7.4.24.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
22
+ tksheet-7.4.24.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.1)
2
+ Generator: setuptools (80.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5