39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import os.path
|
|
from typing import Callable, Optional
|
|
|
|
from PySide6.QtWidgets import QMessageBox
|
|
|
|
from fulltabwidget import FullTabWidget
|
|
from logFileModel import LogFileModel
|
|
from raven.pluginbase import PluginBase
|
|
from raven.plugins.ravenlog.Tab import Tab
|
|
from settings import Settings
|
|
|
|
|
|
class LogFilePlugin(PluginBase):
|
|
def __init__(self):
|
|
super(LogFilePlugin, self).__init__()
|
|
self.settings = None
|
|
self.tr = None
|
|
|
|
def set_settings(self, settings: Settings):
|
|
self.settings = settings
|
|
|
|
def set_translator(self, tr: Callable[[str], str]):
|
|
self.tr = tr
|
|
|
|
def create_tab(self, file: str) -> Optional[Tab]:
|
|
if not os.path.isfile(file):
|
|
message = QMessageBox(QMessageBox.Icon.Warning, "File not found",
|
|
"'%s' is not a file or cannot be opened" % 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
|