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.findInFiles.findinfileswidget import FindInFilesWidget from src.plugins.notes.noteswidget import NotesWidget from src.i18n import _ from src.settings.settings import Settings class FindInFilesPlugin(PluginBase): def __init__(self): super(FindInFilesPlugin, self).__init__() self.settings = None def set_settings(self, settings: Settings): self.settings = settings if not self.settings.session.has_section("findInFiles"): self.settings.session.add_section("findInFiles") 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(_("&Find In Files"), self._add_notes_tab, shortcut='Ctrl+Shift+F', icon_file="icons/ionicons/search-outline.svg") def _add_notes_tab(self): find_in_files = FindInFilesWidget( "find_in_files", _("Find In Files"), self.settings ) PluginRegistry.execute_single("add_dock", Qt.DockWidgetArea.LeftDockWidgetArea, find_in_files)