Files
krowlog/src/plugins/filesbrowserplugin.py

40 lines
1.4 KiB
Python

from PySide6.QtCore import Qt
from src.pluginbase import PluginBase
from src.pluginregistry import PluginRegistry
from src.plugins.domain.menucontribution import MenuContribution
from src.plugins.domain.raction import RAction
from src.plugins.filesbrowser.filesbrowserwidget import FilesBrowserWidget
from src.i18n import _
from src.settings.settings import Settings
class FilesBrowserPlugin(PluginBase):
def __init__(self):
super(FilesBrowserPlugin, self).__init__()
self.settings = None
def set_settings(self, settings: Settings):
self.settings = settings
if not self.settings.session.has_section("filesBrowser"):
self.settings.session.add_section("filesBrowser")
def get_menu_contributions(self) -> [MenuContribution]:
return [
MenuContribution("window", action=self._add_find_in_files_tab_action(), action_id="add find in files tab",
after="add notes tab"),
]
def _add_find_in_files_tab_action(self) -> RAction:
return RAction(_("&Files Browser"), self._add_notes_tab, shortcut='Ctrl+Shift+F',
icon_file="icons/ionicons/search-outline.svg")
def _add_notes_tab(self):
find_in_files = FilesBrowserWidget(
"files_browser",
_("Files Browser"),
self.settings
)
PluginRegistry.execute_single("add_dock", Qt.DockWidgetArea.LeftDockWidgetArea, find_in_files)