respect range limit when selecting all text

This commit is contained in:
2022-12-17 18:56:56 +01:00
parent 9c311f8c67
commit ed221d908d
2 changed files with 16 additions and 2 deletions

View File

@@ -432,8 +432,10 @@ class InnerBigText(QWidget):
PluginRegistry.execute("open_file", selected_file) PluginRegistry.execute("open_file", selected_file)
def _select_all(self): def _select_all(self):
self.selection_highlight.start_byte = 0 self.selection_highlight.start_byte = self.model.get_line_start_at(self._range_start)
self.selection_highlight.end_byte = self.model.byte_count() end_byte = self.model.byte_count() if self._range_end < 0 else min(
self.model.byte_count(), self._range_end)
self.selection_highlight.end_byte = self.model.get_line_end_at(end_byte)
self._update_highlight_selected_text() self._update_highlight_selected_text()
self.update() self.update()

View File

@@ -79,6 +79,18 @@ class LogFileModel:
target.write(buffer) target.write(buffer)
offset = new_offset offset = new_offset
def get_line_start_at(self, byte_offset: int) -> int:
lines = self.data(byte_offset, 0, 1, 0, -1);
if len(lines) == 0:
return 0
return lines[0].byte_offset()
def get_line_end_at(self, byte_offset: int) -> int:
lines = self.data(byte_offset, 0, 1, 0, -1);
if len(lines) == 0:
return 0
return lines[0].byte_end()
def read_word_at(self, byte_offset: int) -> (str, int, int): def read_word_at(self, byte_offset: int) -> (str, int, int):
lines = self.data(byte_offset, 0, 1, 0, -1) lines = self.data(byte_offset, 0, 1, 0, -1)
if len(lines) == 0: if len(lines) == 0: