import os.path from typing import Optional from PySide6.QtWidgets import QMessageBox from src.plugins.logfile.fulltabwidget import FullTabWidget from src.ui.bigtext.logFileModel import LogFileModel from src.pluginbase import PluginBase from src.plugins.krowlog.Tab import Tab from src.settings.settings import Settings from src.i18n import _ class LogFilePlugin(PluginBase): def __init__(self): super(LogFilePlugin, self).__init__() self.settings = None def set_settings(self, settings: Settings): self.settings = settings def create_tab(self, file: str) -> Optional[Tab]: if not os.path.isfile(file): message = QMessageBox(QMessageBox.Icon.Warning, _("File not found"), _("'{0}' is not a file or cannot be opened").format(file)) message.exec() return None realpath = os.path.realpath(file) filename = os.path.basename(realpath) model = LogFileModel(file, self.settings) tab = FullTabWidget(model, unique_id=realpath, title=filename) return tab