Files
krowlog/raven/plugins/logfileplugin.py

37 lines
1.1 KiB
Python

import os.path
from typing import Optional
from PySide6.QtWidgets import QMessageBox
from raven.plugins.logfile.fulltabwidget import FullTabWidget
from raven.ui.bigtext.logFileModel import LogFileModel
from raven.pluginbase import PluginBase
from raven.plugins.ravenlog.Tab import Tab
from raven.settings.settings import Settings
from raven.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