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)