From b5cacb69085af41dcf2da38da61b5639fa260965 Mon Sep 17 00:00:00 2001 From: phil65 Date: Tue, 6 Jun 2023 23:40:22 +0200 Subject: [PATCH] feat(TextEditSelecter): add __getitem__ --- prettyqt/utils/texteditselecter.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/prettyqt/utils/texteditselecter.py b/prettyqt/utils/texteditselecter.py index 0ab7f00bb..b525c5789 100644 --- a/prettyqt/utils/texteditselecter.py +++ b/prettyqt/utils/texteditselecter.py @@ -29,6 +29,18 @@ def __init__(self, widget): self.search_buffer: str | None = None self.search_flags = None + def __getitem__(self, index: int | slice): + doc = self._widget.document() + if isinstance(index, int): + return doc.findBlockByNumber(index) + start = doc.findBlockByNumber(index.start) + end = doc.findBlockByNumber(index.stop) + blocks = [start] + while start != end: + start = start.next() + blocks.append(start) + return blocks + def goto_line(self, line_no: int, end_pos: Literal["top", "bottom"] | None = None): doc = self._widget.document() match end_pos: @@ -251,5 +263,5 @@ def replace_block_at_cursor(self, new_text: str): test.show() with app.debug_mode(): app.sleep(2) - test.selecter.goto_line(50, end_pos="top") + print(test.selecter[20:50]) app.main_loop()