Files
krowlog/src/plugins/logfileplugin.py
2022-02-20 18:39:26 +01:00

52 lines
1.7 KiB
Python

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
def saved_queries(self) -> [str]:
saved_queries = self.settings.get_session("general", "saved_queries", "").splitlines()
if "" in saved_queries:
saved_queries.remove("")
saved_queries.sort()
return saved_queries
def save_query(self, query: str):
saved_queries = self.settings.get_session("general", "saved_queries", "").splitlines()
if "" in saved_queries:
saved_queries.remove("")
if not query in saved_queries:
saved_queries.append(query)
self.settings.set_session("general", "saved_queries", "\n".join(saved_queries))