respect range limit when searching

This commit is contained in:
2022-12-17 18:35:22 +01:00
parent b8433306fa
commit 9c311f8c67
3 changed files with 16 additions and 0 deletions

View File

@@ -68,12 +68,19 @@ class FilterTask(QRunnable):
last_progress_report = time.time()
try:
with open(self.source_model.get_file(), "rb") as source:
source.seek(self.source_model.range_start)
source_position = source.tell()
with open(self.filter_model.get_file(), "w+b") as target:
line_count = 0
lines_written = 0
while line_encoded := source.readline():
if 0 < self.source_model.range_end < source_position:
break
line_count = line_count + 1
line = line_encoded.decode("utf8", errors="ignore")
source_position = source_position + len(line_encoded)
if self.regex.findall(line):
lines_written = lines_written + 1

View File

@@ -170,6 +170,8 @@ class InnerBigText(QWidget):
self._range_start = range_start
self._range_end = range_end
self.model.setRange(range_start, range_end)
self._v_scaled_scrollbar.setMinimum(max(0, self._range_start))
self._v_scaled_scrollbar.setMaximum(min(self._v_scaled_scrollbar.maximum(), range_end))

View File

@@ -18,6 +18,9 @@ class LogFileModel:
_file_size = -1
range_start = 0
range_end = -1
def __init__(self, file: str, settings: Settings):
self.settings = settings
self._file = os.path.realpath(file)
@@ -31,6 +34,10 @@ class LogFileModel:
def __str__(self):
return self._file
def setRange(self, range_start: int, range_end: int):
self.range_start = range_start
self.range_end = range_end
def get_query_highlight(self) -> Optional[HighlightRegex]:
if not self.settings.session.getboolean("general", "highlight_search_term"):
return None