add notes plugin
This commit is contained in:
1
main.py
1
main.py
@@ -54,6 +54,7 @@ if __name__ == "__main__":
|
|||||||
PluginRegistry.load_plugin("RavenLogPlugin")
|
PluginRegistry.load_plugin("RavenLogPlugin")
|
||||||
PluginRegistry.load_plugin("OpenFilePlugin")
|
PluginRegistry.load_plugin("OpenFilePlugin")
|
||||||
PluginRegistry.load_plugin("LogFilePlugin")
|
PluginRegistry.load_plugin("LogFilePlugin")
|
||||||
|
PluginRegistry.load_plugin("NotesPlugin")
|
||||||
|
|
||||||
window = PluginRegistry.execute_single("create_main_window")
|
window = PluginRegistry.execute_single("create_main_window")
|
||||||
RavenUI.window = window
|
RavenUI.window = window
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ from typing import List
|
|||||||
|
|
||||||
from PyQt6.QtWidgets import *
|
from PyQt6.QtWidgets import *
|
||||||
from PyQt6.QtGui import *
|
from PyQt6.QtGui import *
|
||||||
|
from PyQt6.QtCore import Qt
|
||||||
import urlutils
|
import urlutils
|
||||||
from cutesettings import CuteSettings
|
from cutesettings import CuteSettings
|
||||||
from raven.pluginregistry import PluginRegistry
|
from raven.pluginregistry import PluginRegistry
|
||||||
from raven.plugins.domain.menucontribution import MenuContribution, sort_menu_contributions
|
from raven.plugins.domain.menucontribution import MenuContribution, sort_menu_contributions
|
||||||
from raven.plugins.domain.raction import RAction
|
from raven.plugins.domain.raction import RAction
|
||||||
from raven.plugins.domain.rmenu import RMenu
|
from raven.plugins.domain.rmenu import RMenu
|
||||||
|
from raven.plugins.ravenlog.Tab import Tab
|
||||||
from settingsstore import SettingsStore
|
from settingsstore import SettingsStore
|
||||||
from highlightingdialog import HighlightingDialog
|
from highlightingdialog import HighlightingDialog
|
||||||
from tabs import Tabs
|
from tabs import Tabs
|
||||||
@@ -33,7 +34,7 @@ class MainWindow(QMainWindow):
|
|||||||
self.settings = SettingsStore.load()
|
self.settings = SettingsStore.load()
|
||||||
PluginRegistry.execute("set_settings", self.settings)
|
PluginRegistry.execute("set_settings", self.settings)
|
||||||
|
|
||||||
PluginRegistry.execute("set_translator", lambda string: self.tr(string))
|
PluginRegistry.execute("set_translator", self.tr)
|
||||||
|
|
||||||
self.setWindowTitle(self.tr("RavenLog"))
|
self.setWindowTitle(self.tr("RavenLog"))
|
||||||
self._restore_window()
|
self._restore_window()
|
||||||
@@ -44,12 +45,13 @@ class MainWindow(QMainWindow):
|
|||||||
self.tabs = Tabs(self.settings)
|
self.tabs = Tabs(self.settings)
|
||||||
|
|
||||||
self._menu_recent_files = QMenu(self.tr("Open &Recent"), self)
|
self._menu_recent_files = QMenu(self.tr("Open &Recent"), self)
|
||||||
|
|
||||||
self.setCentralWidget(self.tabs)
|
self.setCentralWidget(self.tabs)
|
||||||
self.status_bar = QStatusBar(self)
|
self.status_bar = QStatusBar(self)
|
||||||
self.setStatusBar(self.status_bar)
|
self.setStatusBar(self.status_bar)
|
||||||
self.setMenuBar(self.create_dynamic_menu_bar())
|
self.setMenuBar(self.create_dynamic_menu_bar())
|
||||||
|
|
||||||
|
self.setTabPosition(Qt.DockWidgetArea.AllDockWidgetAreas, QTabWidget.TabPosition.North)
|
||||||
|
|
||||||
def create_dynamic_menu_bar(self) -> QMenuBar:
|
def create_dynamic_menu_bar(self) -> QMenuBar:
|
||||||
menu_bar = QMenuBar()
|
menu_bar = QMenuBar()
|
||||||
|
|
||||||
@@ -63,6 +65,7 @@ class MainWindow(QMainWindow):
|
|||||||
known_menus = [
|
known_menus = [
|
||||||
("file", self.tr("&File")),
|
("file", self.tr("&File")),
|
||||||
("settings", self.tr("&Settings")),
|
("settings", self.tr("&Settings")),
|
||||||
|
("window", self.tr("&Window")),
|
||||||
("help", self.tr("&Help"))
|
("help", self.tr("&Help"))
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
0
raven/plugins/notes/__init__.py
Normal file
0
raven/plugins/notes/__init__.py
Normal file
14
raven/plugins/notes/noteswidget.py
Normal file
14
raven/plugins/notes/noteswidget.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
from raven.plugins.ravenlog.Tab import Tab
|
||||||
|
from PyQt6.QtWidgets import *
|
||||||
|
|
||||||
|
|
||||||
|
class NotesWidget(Tab):
|
||||||
|
|
||||||
|
def __init__(self, unique_id: str, title: str):
|
||||||
|
super(NotesWidget, self).__init__(unique_id, title)
|
||||||
|
|
||||||
|
self.text_area = QTextEdit(self)
|
||||||
|
|
||||||
|
self.layout = QVBoxLayout(self)
|
||||||
|
self.layout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.layout.addWidget(self.text_area)
|
||||||
38
raven/plugins/notesplugin.py
Normal file
38
raven/plugins/notesplugin.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
from typing import Callable
|
||||||
|
|
||||||
|
from PyQt6.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)
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
import sys
|
import sys
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from PyQt6.QtCore import Qt
|
||||||
|
from PyQt6.QtWidgets import QDockWidget, QLabel
|
||||||
|
|
||||||
import constants
|
import constants
|
||||||
from aboutdialog import AboutDialog
|
from aboutdialog import AboutDialog
|
||||||
from raven.mainwindow import MainWindow
|
from raven.mainwindow import MainWindow
|
||||||
from raven.pluginbase import PluginBase
|
from raven.pluginbase import PluginBase
|
||||||
from raven.pluginregistry import PluginRegistry
|
|
||||||
from raven.plugins.domain.menucontribution import MenuContribution
|
from raven.plugins.domain.menucontribution import MenuContribution
|
||||||
from raven.plugins.domain.raction import RAction
|
from raven.plugins.domain.raction import RAction
|
||||||
from raven.plugins.ravenlog.Tab import Tab
|
from raven.plugins.ravenlog.Tab import Tab
|
||||||
@@ -33,6 +35,11 @@ class RavenLogPlugin(PluginBase):
|
|||||||
def add_tab(self, tab: Tab):
|
def add_tab(self, tab: Tab):
|
||||||
self.main_window.tabs.add_tab(tab)
|
self.main_window.tabs.add_tab(tab)
|
||||||
|
|
||||||
|
def add_dock(self, area: Qt.DockWidgetArea, widget: Tab):
|
||||||
|
dock_widget = QDockWidget(widget.title, self.main_window)
|
||||||
|
dock_widget.setWidget(widget)
|
||||||
|
self.main_window.addDockWidget(area, dock_widget)
|
||||||
|
|
||||||
def _action_about(self) -> RAction:
|
def _action_about(self) -> RAction:
|
||||||
about_action = RAction(
|
about_action = RAction(
|
||||||
"&About",
|
"&About",
|
||||||
|
|||||||
Reference in New Issue
Block a user