40 lines
1.4 KiB
Python
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)
|