Files
krowlog/src/plugins/logfile/fulltabwidget.py
2022-03-12 09:28:38 +01:00

54 lines
2.0 KiB
Python

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from src.ui.bigtext.bigtext import BigText
from src.plugins.logfile.filterviewsyncer import FilterViewSyncer
from src.plugins.logfile.filterwidget import FilterWidget
from src.ui.bigtext.logFileModel import LogFileModel
from src.plugins.krowlog.Tab import Tab
from src.util.conversion import humanbytes
from src.zonedpluginregistry import ZonedPluginRegistry
class FullTabWidget(Tab):
def __init__(self, model: LogFileModel, unique_id: str, title: str, zoned_plugin_registry: ZonedPluginRegistry):
super(FullTabWidget, self).__init__(unique_id, title)
self._model = model
self._zoned_plugin_registry = zoned_plugin_registry
self.file_view = BigText(model)
self.filter_hit_view = FilterWidget(self._model, self._zoned_plugin_registry)
self.filter_view_syncer = FilterViewSyncer(self.file_view)
self.filter_hit_view.add_line_click_listener(self.filter_view_syncer.click_listener)
self.filter_hit_view.add_filter_match_found_listener(self.filter_view_syncer.match_found)
self.layout = QVBoxLayout(self)
self.layout.setContentsMargins(0, 0, 0, 0)
splitter = QSplitter()
splitter.setOrientation(Qt.Orientation.Vertical)
splitter.setHandleWidth(5)
# splitter.setStyleSheet("QSplitter::handle{background: #cccccc;}")
splitter.addWidget(self.file_view)
splitter.addWidget(self.filter_hit_view)
self.layout.addWidget(splitter)
def get_file(self) -> str:
return self.file_view.get_file()
# overriding abstract method
def destruct(self):
self.file_view.destruct()
self.filter_hit_view.destruct()
# overriding abstract method
def get_status_text(self) -> str:
file = self._model.get_file()
file_size = humanbytes(self._model.byte_count())
return "%s - %s" % (file_size, file)
# overriding abstract method
def on_reveal(self):
self.filter_hit_view.on_reveal()