watch for file changes

This commit is contained in:
2021-10-27 18:42:48 +02:00
parent 4a01c629ce
commit 3319ae4876
4 changed files with 61 additions and 28 deletions

View File

@@ -1,12 +1,10 @@
import multiprocessing
import os
import re
from re import Pattern
import tempfile
import time
from typing import Optional
from PyQt6.QtCore import QRunnable, QThread, QThreadPool
from PyQt6.QtCore import QRunnable, QThreadPool
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QCheckBox
from bigtext import BigText
@@ -14,9 +12,8 @@ from logFileModel import LogFileModel
import asyncio
class FilterTask(QRunnable):
aborted = False
future : asyncio.Future
future: asyncio.Future
def __init__(
self,
@@ -28,20 +25,10 @@ class FilterTask(QRunnable):
self.source_model = source_model
self.filter_model = filter_model
self.regex = regex
#self.query = query.lower() if ignore_case and not is_regex else query
#self.ignore_case = ignore_case
#self.is_regex = is_regex
self.future = asyncio.Future()
#flags = re.IGNORECASE if ignore_case else 0
#if is_regex:
# self.regex = re.compile(query, flags=flags)
#else:
# self.regex = re.compile(re.escape(query),flags=flags)
def run(self):
#print("writing to tmp file", self.filter_model.get_file())
# print("writing to tmp file", self.filter_model.get_file())
start = time.time()
with open(self.source_model.get_file(), "rb") as source:
with open(self.filter_model.get_file(), "w+b") as target:
@@ -54,13 +41,14 @@ class FilterTask(QRunnable):
if self.aborted or self.future.cancelled():
print("aborted")
break
print("filtering for %s took %s" % (self.regex, time.time() - start) )
#print("filtering for %s took %s" % (self.regex, time.time() - start))
self.future.done()
class FilterWidget(QWidget):
future = None
filter_model : LogFileModel
filter_task :Optional[FilterTask] = None
filter_model: LogFileModel
filter_task: Optional[FilterTask] = None
def __init__(self, source_model: LogFileModel):
super(FilterWidget, self).__init__()
@@ -120,9 +108,3 @@ class FilterWidget(QWidget):
self.filter_task = FilterTask(self.source_model, self.filter_model, regex)
QThreadPool.globalInstance().start(self.filter_task)