from typing import Callable from PySide6.QtCore import Qt from raven.pluginbase import PluginBase from raven.pluginregistry import PluginRegistry from raven.plugins.domain.menucontribution import MenuContribution from raven.plugins.domain.raction import RAction from raven.plugins.notes.noteswidget import NotesWidget from raven.i18n import _ class NotesPlugin(PluginBase): def __init__(self): super(NotesPlugin, self).__init__() self.settings = None self.tab_counter = 0 def get_menu_contributions(self) -> [MenuContribution]: return [ MenuContribution("window", action=self._add_notes_tab_action(), action_id="add notes tab", after=""), ] def _add_notes_tab_action(self) -> RAction: open_file = RAction(_("Add &Notes"), self._add_notes_tab, shortcut='Ctrl+Shift+N', icon_from_theme="filenew") return open_file def _add_notes_tab(self): self.tab_counter = self.tab_counter + 1 notes = NotesWidget( "notes_tab_%d" % self.tab_counter, _("Notes {0}").format(self.tab_counter)) PluginRegistry.execute_single("add_dock", Qt.DockWidgetArea.RightDockWidgetArea, notes)