diff --git a/autoZoomer/__init__.py b/autoZoomer/__init__.py index d2eb61d..8172e5e 100644 --- a/autoZoomer/__init__.py +++ b/autoZoomer/__init__.py @@ -25,6 +25,7 @@ from autoZoomer.button import AutoZoomerButton class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject): manager = None buttons = {} + actions = {} def init(self, state, settingsPath): self.manager = AutoZoomer(settingsPath) @@ -60,6 +61,10 @@ class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject): window.navigationBar().addToolButton(b) self.buttons[window] = b + a = self.manager.createMenuAction(shortcut=True) + window.addAction(a) + self.actions[window] = a + def mainWindowDeleted(self, window): if window not in self.buttons: return @@ -75,5 +80,8 @@ class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject): page.loadFinished.connect(onLoadFinished) + def populateExtensionsMenu(self, menu): + self.manager.onPopulateExtensionsMenu(menu) + Falkon.registerPlugin(AutoZoomer_Plugin()) diff --git a/autoZoomer/autoZoomer.py b/autoZoomer/autoZoomer.py index 3d19861..4e58592 100644 --- a/autoZoomer/autoZoomer.py +++ b/autoZoomer/autoZoomer.py @@ -21,8 +21,10 @@ import os from PySide2 import QtCore, QtGui, QtWidgets from autoZoomer.settingsDialog import SettingsDialog from autoZoomer.str2bool import str2bool +from autoZoomer.i18n import i18n class AutoZoomer(QtCore.QObject): + menuAction = None data = None remove = None config = None @@ -33,7 +35,8 @@ class AutoZoomer(QtCore.QObject): self.config = { "settingsFile": os.path.join(settingsPath, "autoZoomer", "settings.ini"), "active": True, - "defaultZoom": True + "defaultZoom": True, + "shortcut": "Ctrl+Shift+L" } self.data = {} self.remove = [] @@ -101,6 +104,31 @@ class AutoZoomer(QtCore.QObject): if view.zoomLevel() != defaultZoom: view.setZoomLevel(defaultZoom) + def createMenuAction(self, parent=None, shortcut=False): + menuAction = Falkon.Action( + QtGui.QIcon(os.path.join(os.path.dirname(__file__), "icon.svg")), + i18n("Save current zoom level"), + parent + ) + if self.config["shortcut"] and shortcut: + menuAction.setShortcut(QtGui.QKeySequence(self.config["shortcut"])) + menuAction.triggered.connect(self.onMenuActionTriggered) + + return menuAction + + def onMenuActionTriggered(self): + view = Falkon.MainApplication.instance().getWindow().weView() + host = view.page().url().host() + zoom = view.zoomLevel() + + print(host, zoom) + self.addItem(host=host, zoom=zoom) + + def onPopulateExtensionsMenu(self, menu): + menuAction = self.createMenuAction(menu) + + menu.addAction(menuAction) + def addItem(self, host, zoom=6, active=True): if not host: return