37 lines
1.1 KiB
Python
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
|