Files
krowlog/raven/plugins/notesplugin.py
Andreas Huber f0555df0a9 switch from PyQt6 to PySide6
PySide6 uses LGPL instead of GPL, which is much nicer to work with.
2022-01-30 10:50:31 +01:00

39 lines
1.3 KiB
Python

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
class NotesPlugin(PluginBase):
def __init__(self):
super(NotesPlugin, self).__init__()
self.settings = None
self.tr = None
self.tab_counter = 0
def set_translator(self, tr: Callable[[str], str]):
self.tr = tr
def get_menu_contributions(self) -> [MenuContribution]:
return [
MenuContribution("window", action=self._add_notes_tab_action(), action_id="add notes tab", after="<last>"),
]
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,
self.tr("Notes %d") % self.tab_counter)
PluginRegistry.execute_single("add_dock", Qt.DockWidgetArea.RightDockWidgetArea, notes)