diff --git a/.idea/misc.xml b/.idea/misc.xml index fae0558..ec23e04 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/.idea/ravenlog.iml b/.idea/ravenlog.iml index 20e1da9..5ee9779 100644 --- a/.idea/ravenlog.iml +++ b/.idea/ravenlog.iml @@ -10,7 +10,7 @@ - + \ No newline at end of file diff --git a/make_installer.py b/make_installer.py index 214fbc2..a336624 100644 --- a/make_installer.py +++ b/make_installer.py @@ -18,9 +18,7 @@ arguments = [ '--add-binary', 'changelog.txt' + os.pathsep + '.', '--add-binary', 'version.txt' + os.pathsep + '.', '--hidden-import=krowlog', - '--hidden-import=watchdog', - '--hidden-import=watchdog.observers', - '--hidden-import=watchdog.version', + '--hidden-import=__future__', '--hidden-import=configparser' ] diff --git a/requirements.txt b/requirements.txt index d4b7b29..e6e4bed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ pip==25.0.1 PySide6_Essentials==6.8.2.1 setuptools==77.0.3 -watchdog==6.0.0 pyinstaller==6.12.0 diff --git a/src/plugins/krowlog/aboutdialog.py b/src/plugins/krowlog/aboutdialog.py index 3aa3ee0..6018ee2 100644 --- a/src/plugins/krowlog/aboutdialog.py +++ b/src/plugins/krowlog/aboutdialog.py @@ -1,7 +1,6 @@ import textwrap import PySide6 -from watchdog import version as watchdog_version from PySide6.QtCore import Qt from PySide6.QtGui import QFont, QPalette from PySide6.QtWidgets import * @@ -75,11 +74,9 @@ class AboutDialog(QDialog): """.format( pyside=PySide6.__version__, - qt=PySide6.QtCore.__version__, - watchdog=watchdog_version.VERSION_STRING) + qt=PySide6.QtCore.__version__) label = textwrap.dedent(dependencies) result = QWidget() diff --git a/src/plugins/logfile/filterwidget.py b/src/plugins/logfile/filterwidget.py index ff3512c..68de94c 100644 --- a/src/plugins/logfile/filterwidget.py +++ b/src/plugins/logfile/filterwidget.py @@ -279,6 +279,7 @@ class FilterWidget(QWidget): def destruct(self): self._cancel_search() + self.hits_view.destruct() os.remove(self.tmp_filename) def _cancel_search(self): diff --git a/src/ui/bigtext/bigtext.py b/src/ui/bigtext/bigtext.py index 3b87980..45912e5 100644 --- a/src/ui/bigtext/bigtext.py +++ b/src/ui/bigtext/bigtext.py @@ -23,55 +23,31 @@ from src.ui.icon import Icon from src.ui.rangeslider import RangeSlider from src.util.conversion import humanbytes from src.pluginregistry import PluginRegistry +from threading import Event -from src.settings.settings import Settings -from watchdog.observers import Observer -from watchdog.events import FileSystemEventHandler from src.i18n import _ log = logging.getLogger("bigtext") - -class FileObserver(FileSystemEventHandler): - - def __init__(self, big_text): - super(FileObserver, self).__init__() - self.big_text = big_text - self._last_mtime = -1 - - def on_modified(self, event): - # slow down the updates. This is needed, because the file is modified - # constantly, which would lead to constant re-rendering, which would - # block the UI thread and make the UI unresponsive. - # Note: we don't miss events, because they are queued and de-duplicated - if not event.is_directory: - try: - mtime = os.stat(event.src_path).st_mtime - if mtime != self._last_mtime: - self._last_mtime = mtime - time.sleep(0.5) - self.big_text.trigger_update.emit() - except FileNotFoundError: - # ignore: happens when closing the application, because tmp files are deleted, - # which triggers a modification event - pass - - class FileWatchdogThread(QRunnable): def __init__(self, big_text, file: str): super(FileWatchdogThread, self).__init__() self.file = file self.big_text = big_text - self.observer = Observer() + self.stop = Event() def run(self) -> None: - self.observer.schedule(FileObserver(self.big_text), self.file) - self.observer.start() + _last_mtime = None + while not self.stop.is_set(): + mtime = os.stat(self.file).st_mtime + if mtime != _last_mtime: + _last_mtime = mtime + self.big_text.trigger_update.emit() + self.stop.wait(0.5) def destruct(self): - self.observer.stop() - # self.observer.join(1) + self.stop.set() class BigText(QWidget):