tksheet 7.1.24__tar.gz → 7.2.0__tar.gz
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-7.1.24/tksheet.egg-info → tksheet-7.2.0}/PKG-INFO +1 -1
- {tksheet-7.1.24 → tksheet-7.2.0}/pyproject.toml +1 -1
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/__init__.py +1 -1
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/column_headers.py +5 -5
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/main_table.py +25 -11
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/row_index.py +16 -12
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/sheet.py +54 -21
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/text_editor.py +1 -1
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/themes.py +5 -5
- {tksheet-7.1.24 → tksheet-7.2.0/tksheet.egg-info}/PKG-INFO +1 -1
- {tksheet-7.1.24 → tksheet-7.2.0}/LICENSE.txt +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/README.md +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/setup.cfg +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/colors.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/formatters.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/functions.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/other_classes.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/sheet_options.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/top_left_rectangle.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/types.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/vars.py +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/SOURCES.txt +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/dependency_links.txt +0 -0
- {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/top_level.txt +0 -0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
6
6
|
name = "tksheet"
|
7
7
|
description = "Tkinter table / sheet widget"
|
8
8
|
readme = "README.md"
|
9
|
-
version = "7.
|
9
|
+
version = "7.2.0"
|
10
10
|
authors = [{ name = "ragardner", email = "github@ragardner.simplelogin.com" }]
|
11
11
|
requires-python = ">=3.8"
|
12
12
|
license = {file = "LICENSE.txt"}
|
@@ -771,11 +771,9 @@ class ColumnHeaders(tk.Canvas):
|
|
771
771
|
return False
|
772
772
|
|
773
773
|
def b1_release(self, event: object) -> None:
|
774
|
-
if self.being_drawn_item is not None:
|
775
|
-
to_sel = self.MT.coords_and_type(self.being_drawn_item)
|
774
|
+
if self.being_drawn_item is not None and (to_sel := self.MT.coords_and_type(self.being_drawn_item)):
|
776
775
|
r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
|
777
776
|
self.MT.hide_selection_box(self.being_drawn_item)
|
778
|
-
self.being_drawn_item = None
|
779
777
|
self.MT.set_currently_selected(
|
780
778
|
r_to_sel,
|
781
779
|
c_to_sel,
|
@@ -784,6 +782,8 @@ class ColumnHeaders(tk.Canvas):
|
|
784
782
|
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
785
783
|
try_binding(self.drag_selection_binding_func, sel_event)
|
786
784
|
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
785
|
+
else:
|
786
|
+
self.being_drawn_item = None
|
787
787
|
self.MT.bind("<MouseWheel>", self.MT.mousewheel)
|
788
788
|
if self.width_resizing_enabled and self.rsz_w is not None and self.currently_resizing_width:
|
789
789
|
self.currently_resizing_width = False
|
@@ -1607,11 +1607,11 @@ class ColumnHeaders(tk.Canvas):
|
|
1607
1607
|
|
1608
1608
|
def get_redraw_selections(self, startc: int, endc: int) -> dict[str, set[int]]:
|
1609
1609
|
d = defaultdict(set)
|
1610
|
-
for item, box in self.MT.get_selection_items(
|
1610
|
+
for item, box in self.MT.get_selection_items():
|
1611
1611
|
r1, c1, r2, c2 = box.coords
|
1612
1612
|
for c in range(startc, endc):
|
1613
1613
|
if c1 <= c and c2 > c:
|
1614
|
-
d[box.type_].add(c)
|
1614
|
+
d[box.type_ if box.type_ != "rows" else "cells"].add(c)
|
1615
1615
|
return d
|
1616
1616
|
|
1617
1617
|
def open_cell(self, event: object = None, ignore_existing_editor=False):
|
@@ -3079,11 +3079,9 @@ class MainTable(tk.Canvas):
|
|
3079
3079
|
self.b1_motion(event)
|
3080
3080
|
|
3081
3081
|
def b1_release(self, event=None):
|
3082
|
-
if self.being_drawn_item is not None:
|
3083
|
-
to_sel = self.coords_and_type(self.being_drawn_item)
|
3082
|
+
if self.being_drawn_item is not None and (to_sel := self.coords_and_type(self.being_drawn_item)):
|
3084
3083
|
r_to_sel, c_to_sel = self.selected.row, self.selected.column
|
3085
3084
|
self.hide_selection_box(self.being_drawn_item)
|
3086
|
-
self.being_drawn_item = None
|
3087
3085
|
self.set_currently_selected(
|
3088
3086
|
r_to_sel,
|
3089
3087
|
c_to_sel,
|
@@ -3101,6 +3099,8 @@ class MainTable(tk.Canvas):
|
|
3101
3099
|
if self.drag_selection_binding_func:
|
3102
3100
|
self.drag_selection_binding_func(sel_event)
|
3103
3101
|
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
3102
|
+
else:
|
3103
|
+
self.being_drawn_item = None
|
3104
3104
|
if self.RI.width_resizing_enabled and self.RI.rsz_w is not None and self.RI.currently_resizing_width:
|
3105
3105
|
self.delete_resize_lines()
|
3106
3106
|
self.RI.delete_resize_lines()
|
@@ -3466,7 +3466,7 @@ class MainTable(tk.Canvas):
|
|
3466
3466
|
def get_lines_cell_height(self, n, font=None):
|
3467
3467
|
return (
|
3468
3468
|
self.get_txt_h(
|
3469
|
-
txt="\n".join("|" for
|
3469
|
+
txt="\n".join("|" for _ in range(n)) if n > 1 else "|",
|
3470
3470
|
font=self.PAR.ops.table_font if font is None else font,
|
3471
3471
|
)
|
3472
3472
|
+ 5
|
@@ -3484,12 +3484,20 @@ class MainTable(tk.Canvas):
|
|
3484
3484
|
|
3485
3485
|
def get_default_row_height(self) -> int:
|
3486
3486
|
if isinstance(self.PAR.ops.default_row_height, str):
|
3487
|
-
|
3487
|
+
if int(self.PAR.ops.default_row_height) == 1:
|
3488
|
+
return self.min_row_height
|
3489
|
+
else:
|
3490
|
+
return self.min_row_height + self.get_lines_cell_height(int(self.PAR.ops.default_row_height) - 1)
|
3488
3491
|
return self.PAR.ops.default_row_height
|
3489
3492
|
|
3490
3493
|
def get_default_header_height(self) -> int:
|
3491
3494
|
if isinstance(self.PAR.ops.default_header_height, str):
|
3492
|
-
|
3495
|
+
if int(self.PAR.ops.default_header_height) == 1:
|
3496
|
+
return self.min_header_height
|
3497
|
+
else:
|
3498
|
+
return self.min_header_height + self.get_lines_cell_height(
|
3499
|
+
int(self.PAR.ops.default_header_height) - 1, font=self.PAR.ops.header_font
|
3500
|
+
)
|
3493
3501
|
return self.PAR.ops.default_header_height
|
3494
3502
|
|
3495
3503
|
def set_table_font(self, newfont: tuple | None = None, reset_row_positions: bool = False) -> tuple[str, int, str]:
|
@@ -3519,8 +3527,8 @@ class MainTable(tk.Canvas):
|
|
3519
3527
|
self.table_first_ln_ins = self.table_half_txt_height + 2
|
3520
3528
|
else:
|
3521
3529
|
self.table_first_ln_ins = self.table_half_txt_height + 3
|
3530
|
+
self.min_row_height = int(self.table_first_ln_ins * 2.25)
|
3522
3531
|
self.table_xtra_lines_increment = int(self.table_txt_height)
|
3523
|
-
self.min_row_height = self.table_txt_height + 5
|
3524
3532
|
if self.min_row_height < 12:
|
3525
3533
|
self.min_row_height = 12
|
3526
3534
|
self.set_min_column_width()
|
@@ -3548,7 +3556,7 @@ class MainTable(tk.Canvas):
|
|
3548
3556
|
else:
|
3549
3557
|
self.header_first_ln_ins = self.header_half_txt_height + 3
|
3550
3558
|
self.header_xtra_lines_increment = self.header_txt_height
|
3551
|
-
self.min_header_height = self.
|
3559
|
+
self.min_header_height = int(self.header_first_ln_ins * 2.25)
|
3552
3560
|
if (
|
3553
3561
|
isinstance(self.PAR.ops.default_header_height, int)
|
3554
3562
|
and self.PAR.ops.default_header_height < self.min_header_height
|
@@ -5381,6 +5389,10 @@ class MainTable(tk.Canvas):
|
|
5381
5389
|
if resized_cols or resized_rows or changed_w:
|
5382
5390
|
self.recreate_all_selection_boxes()
|
5383
5391
|
if changed_w:
|
5392
|
+
self.update_idletasks()
|
5393
|
+
self.RI.update_idletasks()
|
5394
|
+
self.CH.update_idletasks()
|
5395
|
+
self.TL.update_idletasks()
|
5384
5396
|
return False
|
5385
5397
|
self.hidd_text.update(self.disp_text)
|
5386
5398
|
self.disp_text = {}
|
@@ -5934,6 +5946,8 @@ class MainTable(tk.Canvas):
|
|
5934
5946
|
if self.selected.fill_iid == item:
|
5935
5947
|
self.hide_selected()
|
5936
5948
|
self.set_current_to_last()
|
5949
|
+
if item == self.being_drawn_item:
|
5950
|
+
self.being_drawn_item = None
|
5937
5951
|
return True
|
5938
5952
|
|
5939
5953
|
def hide_selected(self) -> None:
|
@@ -6996,9 +7010,9 @@ class MainTable(tk.Canvas):
|
|
6996
7010
|
return self.mouseclick_outside_editor_or_dropdown()
|
6997
7011
|
|
6998
7012
|
def hide_dropdown_editor_all_canvases(self):
|
6999
|
-
self.hide_text_editor_and_dropdown()
|
7000
|
-
self.RI.hide_text_editor_and_dropdown()
|
7001
|
-
self.CH.hide_text_editor_and_dropdown()
|
7013
|
+
self.hide_text_editor_and_dropdown(redraw=False)
|
7014
|
+
self.RI.hide_text_editor_and_dropdown(redraw=False)
|
7015
|
+
self.CH.hide_text_editor_and_dropdown(redraw=False)
|
7002
7016
|
|
7003
7017
|
def hide_dropdown_window(self) -> None:
|
7004
7018
|
if self.dropdown.open:
|
@@ -772,11 +772,9 @@ class RowIndex(tk.Canvas):
|
|
772
772
|
return False
|
773
773
|
|
774
774
|
def b1_release(self, event: object) -> None:
|
775
|
-
if self.being_drawn_item is not None:
|
776
|
-
to_sel = self.MT.coords_and_type(self.being_drawn_item)
|
775
|
+
if self.being_drawn_item is not None and (to_sel := self.MT.coords_and_type(self.being_drawn_item)):
|
777
776
|
r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
|
778
777
|
self.MT.hide_selection_box(self.being_drawn_item)
|
779
|
-
self.being_drawn_item = None
|
780
778
|
self.MT.set_currently_selected(
|
781
779
|
r_to_sel,
|
782
780
|
c_to_sel,
|
@@ -785,6 +783,8 @@ class RowIndex(tk.Canvas):
|
|
785
783
|
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
786
784
|
try_binding(self.drag_selection_binding_func, sel_event)
|
787
785
|
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
786
|
+
else:
|
787
|
+
self.being_drawn_item = None
|
788
788
|
self.MT.bind("<MouseWheel>", self.MT.mousewheel)
|
789
789
|
if self.height_resizing_enabled and self.rsz_h is not None and self.currently_resizing_height:
|
790
790
|
self.currently_resizing_height = False
|
@@ -1030,7 +1030,7 @@ class RowIndex(tk.Canvas):
|
|
1030
1030
|
align = self.align
|
1031
1031
|
if align == "w":
|
1032
1032
|
w += self.MT.index_txt_height
|
1033
|
-
w += self.get_treeview_indent(self.MT._row_index[datarn].iid) +
|
1033
|
+
w += self.get_treeview_indent(self.MT._row_index[datarn].iid) + 5
|
1034
1034
|
return w, h
|
1035
1035
|
|
1036
1036
|
def set_row_height(
|
@@ -1310,7 +1310,8 @@ class RowIndex(tk.Canvas):
|
|
1310
1310
|
mod = (self.MT.index_txt_height - 1) if self.MT.index_txt_height % 2 else self.MT.index_txt_height
|
1311
1311
|
half_mod = mod / 2
|
1312
1312
|
qtr_mod = mod / 4
|
1313
|
-
|
1313
|
+
small_mod = int(half_mod / 4) - 1
|
1314
|
+
mid_y = int(self.MT.min_row_height / 2)
|
1314
1315
|
# up arrow
|
1315
1316
|
if open_:
|
1316
1317
|
points = (
|
@@ -1325,11 +1326,11 @@ class RowIndex(tk.Canvas):
|
|
1325
1326
|
else:
|
1326
1327
|
points = (
|
1327
1328
|
x1 + half_mod + indent,
|
1328
|
-
y1 + mid_y - half_mod +
|
1329
|
-
x1 + mod + indent -
|
1329
|
+
y1 + mid_y - half_mod + small_mod,
|
1330
|
+
x1 + mod + indent - small_mod,
|
1330
1331
|
y1 + mid_y,
|
1331
1332
|
x1 + half_mod + indent,
|
1332
|
-
y1 + mid_y + half_mod -
|
1333
|
+
y1 + mid_y + half_mod - small_mod,
|
1333
1334
|
)
|
1334
1335
|
if self.hidd_tree_arrow:
|
1335
1336
|
t, sh = self.hidd_tree_arrow.popitem()
|
@@ -1340,10 +1341,13 @@ class RowIndex(tk.Canvas):
|
|
1340
1341
|
self.itemconfig(t, fill=fill, tag=tag, state="normal")
|
1341
1342
|
self.lift(t)
|
1342
1343
|
else:
|
1343
|
-
t = self.
|
1344
|
+
t = self.create_line(
|
1344
1345
|
points,
|
1345
1346
|
fill=fill,
|
1346
1347
|
tag=tag,
|
1348
|
+
width=2,
|
1349
|
+
capstyle=tk.ROUND,
|
1350
|
+
joinstyle=tk.BEVEL,
|
1347
1351
|
)
|
1348
1352
|
self.disp_tree_arrow[t] = True
|
1349
1353
|
|
@@ -1633,7 +1637,7 @@ class RowIndex(tk.Canvas):
|
|
1633
1637
|
if align == "w":
|
1634
1638
|
draw_x += self.MT.index_txt_height + 1
|
1635
1639
|
indent = self.get_treeview_indent(iid)
|
1636
|
-
draw_x += indent +
|
1640
|
+
draw_x += indent + 5
|
1637
1641
|
if self.tree[iid].children:
|
1638
1642
|
self.redraw_tree_arrow(
|
1639
1643
|
0,
|
@@ -1738,11 +1742,11 @@ class RowIndex(tk.Canvas):
|
|
1738
1742
|
|
1739
1743
|
def get_redraw_selections(self, startr: int, endr: int) -> dict[str, set[int]]:
|
1740
1744
|
d = defaultdict(set)
|
1741
|
-
for item, box in self.MT.get_selection_items(
|
1745
|
+
for item, box in self.MT.get_selection_items():
|
1742
1746
|
r1, c1, r2, c2 = box.coords
|
1743
1747
|
for r in range(startr, endr):
|
1744
1748
|
if r1 <= r and r2 > r:
|
1745
|
-
d[box.type_].add(r)
|
1749
|
+
d[box.type_ if box.type_ != "columns" else "cells"].add(r)
|
1746
1750
|
return d
|
1747
1751
|
|
1748
1752
|
def open_cell(self, event: object = None, ignore_existing_editor=False):
|
@@ -21,6 +21,7 @@ from .functions import (
|
|
21
21
|
dropdown_search_function,
|
22
22
|
event_dict,
|
23
23
|
fix_format_kwargs,
|
24
|
+
new_tk_event,
|
24
25
|
force_bool,
|
25
26
|
get_checkbox_dict,
|
26
27
|
get_checkbox_kwargs,
|
@@ -29,7 +30,6 @@ from .functions import (
|
|
29
30
|
idx_param_to_int,
|
30
31
|
is_iterable,
|
31
32
|
key_to_span,
|
32
|
-
new_tk_event,
|
33
33
|
num2alpha,
|
34
34
|
pickled_event_dict,
|
35
35
|
pop_positions,
|
@@ -1464,6 +1464,8 @@ class Sheet(tk.Frame):
|
|
1464
1464
|
undo_stack: bool = True,
|
1465
1465
|
selections: bool = True,
|
1466
1466
|
sheet_options: bool = False,
|
1467
|
+
displayed_rows: bool = True,
|
1468
|
+
displayed_columns: bool = True,
|
1467
1469
|
tree: bool = True,
|
1468
1470
|
redraw: bool = True,
|
1469
1471
|
) -> Sheet:
|
@@ -1476,6 +1478,12 @@ class Sheet(tk.Frame):
|
|
1476
1478
|
if index:
|
1477
1479
|
self.RI.hide_text_editor_and_dropdown(redraw=False)
|
1478
1480
|
self.MT._row_index = []
|
1481
|
+
if displayed_columns:
|
1482
|
+
self.MT.displayed_columns = []
|
1483
|
+
self.MT.all_columns_displayed = True
|
1484
|
+
if displayed_rows:
|
1485
|
+
self.MT.displayed_rows = []
|
1486
|
+
self.MT.all_rows_displayed = True
|
1479
1487
|
if row_heights:
|
1480
1488
|
self.MT.saved_row_heights = {}
|
1481
1489
|
self.MT.set_row_positions([])
|
@@ -3584,6 +3592,20 @@ class Sheet(tk.Frame):
|
|
3584
3592
|
z < self.MT.min_column_width or not isinstance(z, int) or isinstance(z, bool) for z in column_widths
|
3585
3593
|
)
|
3586
3594
|
|
3595
|
+
def valid_row_height(self, height: int) -> int:
|
3596
|
+
if height < self.MT.min_row_height:
|
3597
|
+
return self.MT.min_row_height
|
3598
|
+
elif height > self.MT.max_row_height:
|
3599
|
+
return self.MT.max_row_height
|
3600
|
+
return height
|
3601
|
+
|
3602
|
+
def valid_column_width(self, width: int) -> int:
|
3603
|
+
if width < self.MT.min_column_width:
|
3604
|
+
return self.MT.min_column_width
|
3605
|
+
elif width > self.MT.max_column_width:
|
3606
|
+
return self.MT.max_column_width
|
3607
|
+
return width
|
3608
|
+
|
3587
3609
|
# Identifying Bound Event Mouse Position
|
3588
3610
|
|
3589
3611
|
def identify_region(self, event: object) -> Literal["table", "index", "header", "top left"]:
|
@@ -4512,6 +4534,7 @@ class Sheet(tk.Frame):
|
|
4512
4534
|
safety: bool = True,
|
4513
4535
|
ncols: int | None = None,
|
4514
4536
|
) -> Sheet:
|
4537
|
+
self.reset(cell_options=False, column_widths=False, header=False, redraw=False)
|
4515
4538
|
if text_column is None:
|
4516
4539
|
text_column = iid_column
|
4517
4540
|
tally_of_ids = defaultdict(lambda: -1)
|
@@ -4564,6 +4587,8 @@ class Sheet(tk.Frame):
|
|
4564
4587
|
fill=False,
|
4565
4588
|
push_ops=push_ops,
|
4566
4589
|
)
|
4590
|
+
self.MT.all_rows_displayed = False
|
4591
|
+
self.MT.displayed_rows = list(range(len(self.MT._row_index)))
|
4567
4592
|
self.RI.tree_rns = {n.iid: i for i, n in enumerate(self.MT._row_index)}
|
4568
4593
|
if open_ids:
|
4569
4594
|
self.tree_set_open(open_ids=open_ids)
|
@@ -4614,10 +4639,17 @@ class Sheet(tk.Frame):
|
|
4614
4639
|
Only meant for internal use
|
4615
4640
|
"""
|
4616
4641
|
to_open = []
|
4642
|
+
disp_set = set(self.MT.displayed_rows)
|
4643
|
+
quick_rns = self.RI.tree_rns
|
4644
|
+
quick_open_ids = self.RI.tree_open_ids
|
4617
4645
|
for item in filter(items.__contains__, self.get_children()):
|
4618
4646
|
if self.RI.tree[item].children:
|
4619
|
-
|
4620
|
-
|
4647
|
+
quick_open_ids.add(item)
|
4648
|
+
if quick_rns[item] in disp_set:
|
4649
|
+
to_disp = [quick_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True)]
|
4650
|
+
for i in to_disp:
|
4651
|
+
disp_set.add(i)
|
4652
|
+
to_open.extend(to_disp)
|
4621
4653
|
return to_open
|
4622
4654
|
|
4623
4655
|
def tree_open(self, *items, redraw: bool = True) -> Sheet:
|
@@ -4627,36 +4659,37 @@ class Sheet(tk.Frame):
|
|
4627
4659
|
if items := set(unpack(items)):
|
4628
4660
|
to_open = self._tree_open(items)
|
4629
4661
|
else:
|
4630
|
-
to_open =
|
4631
|
-
for item in self.get_children():
|
4632
|
-
if self.RI.tree[item].children:
|
4633
|
-
self.RI.tree_open_ids.add(item)
|
4634
|
-
to_open.extend(self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True))
|
4662
|
+
to_open = self._tree_open(set(self.get_children()))
|
4635
4663
|
return self.show_rows(
|
4636
4664
|
rows=to_open,
|
4637
4665
|
redraw=redraw,
|
4638
4666
|
deselect_all=False,
|
4639
4667
|
)
|
4640
4668
|
|
4669
|
+
def _tree_close(self, items: Iterator[str]) -> list[int]:
|
4670
|
+
"""
|
4671
|
+
Only meant for internal use
|
4672
|
+
"""
|
4673
|
+
to_close = set()
|
4674
|
+
disp_set = set(self.MT.displayed_rows)
|
4675
|
+
quick_rns = self.RI.tree_rns
|
4676
|
+
quick_open_ids = self.RI.tree_open_ids
|
4677
|
+
for item in items:
|
4678
|
+
if self.RI.tree[item].children:
|
4679
|
+
quick_open_ids.discard(item)
|
4680
|
+
if quick_rns[item] in disp_set:
|
4681
|
+
for did in self.RI.get_iid_descendants(item, check_open=True):
|
4682
|
+
to_close.add(quick_rns[did])
|
4683
|
+
return to_close
|
4684
|
+
|
4641
4685
|
def tree_close(self, *items, redraw: bool = True) -> Sheet:
|
4642
4686
|
"""
|
4643
4687
|
If used without args all items are closed
|
4644
4688
|
"""
|
4645
|
-
to_close = set()
|
4646
4689
|
if items:
|
4647
|
-
|
4648
|
-
if self.RI.tree[item].children:
|
4649
|
-
self.RI.tree_open_ids.discard(item)
|
4650
|
-
if self.RI.tree_rns[item] in self.MT.displayed_rows:
|
4651
|
-
for did in self.RI.get_iid_descendants(item, check_open=True):
|
4652
|
-
to_close.add(self.RI.tree_rns[did])
|
4690
|
+
to_close = self._tree_close(unpack(items))
|
4653
4691
|
else:
|
4654
|
-
|
4655
|
-
if self.RI.tree[item].children:
|
4656
|
-
self.RI.tree_open_ids.discard(item)
|
4657
|
-
if self.RI.tree_rns[item] in self.MT.displayed_rows:
|
4658
|
-
for did in self.RI.get_iid_descendants(item, check_open=True):
|
4659
|
-
to_close.add(self.RI.tree_rns[did])
|
4692
|
+
to_close = self._tree_close(self.get_children())
|
4660
4693
|
return self.hide_rows(
|
4661
4694
|
rows=to_close,
|
4662
4695
|
redraw=redraw,
|
@@ -46,8 +46,8 @@ theme_light_blue: dict[str, str] = DotDict({
|
|
46
46
|
"table_selected_columns_border_fg": "#0B57D0",
|
47
47
|
"table_selected_columns_bg": "#E6EFFD",
|
48
48
|
"table_selected_columns_fg": "black",
|
49
|
-
"tree_arrow_fg": "
|
50
|
-
"selected_cells_tree_arrow_fg": "
|
49
|
+
"tree_arrow_fg": "black",
|
50
|
+
"selected_cells_tree_arrow_fg": "black",
|
51
51
|
"selected_rows_tree_arrow_fg": "#FFFFFF",
|
52
52
|
"vertical_scroll_background": "#FFFFFF",
|
53
53
|
"horizontal_scroll_background": "#FFFFFF",
|
@@ -121,7 +121,7 @@ theme_light_green: dict[str, str] = DotDict({
|
|
121
121
|
"table_selected_columns_border_fg": "#107C41",
|
122
122
|
"table_selected_columns_bg": "#E3E3E3",
|
123
123
|
"table_selected_columns_fg": "black",
|
124
|
-
"tree_arrow_fg": "
|
124
|
+
"tree_arrow_fg": "black",
|
125
125
|
"selected_cells_tree_arrow_fg": "#107C41",
|
126
126
|
"selected_rows_tree_arrow_fg": "#FFFFFF",
|
127
127
|
"vertical_scroll_background": "#FFFFFF",
|
@@ -272,8 +272,8 @@ theme_black: dict[str, str] = DotDict({
|
|
272
272
|
"table_selected_columns_bg": "#404040",
|
273
273
|
"table_selected_columns_fg": "#F7F7F7",
|
274
274
|
"tree_arrow_fg": "#8C8C8C",
|
275
|
-
"selected_cells_tree_arrow_fg": "#
|
276
|
-
"selected_rows_tree_arrow_fg": "#
|
275
|
+
"selected_cells_tree_arrow_fg": "#FBB86C",
|
276
|
+
"selected_rows_tree_arrow_fg": "#000000",
|
277
277
|
"vertical_scroll_background": "#3b3a39",
|
278
278
|
"horizontal_scroll_background": "#3b3a39",
|
279
279
|
"vertical_scroll_troughcolor": "#000000",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|