# ============================================================ # Auto Zoomer - plugin for Falkon # Copyright (C) 2019 Juraj Oravec # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ============================================================ import Falkon from PySide2 import QtCore, QtGui from autoZoomer.autoZoomer import AutoZoomer 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) self.manager.configChanged.connect(self.onConfigChanged) plugins = Falkon.MainApplication.instance().plugins() plugins.mainWindowCreated.connect(self.mainWindowCreated) plugins.mainWindowDeleted.connect(self.mainWindowDeleted) plugins.webPageCreated.connect(self.onWebPageCreated) if state == Falkon.PluginInterface.LateInitState: for window in Falkon.MainApplication.instance().windows(): self.mainWindowCreated(window) def unload(self): self.manager.saveSettings() for window in Falkon.MainApplication.instance().windows(): self.mainWindowDeleted(window) del self.manager self.manager = None def testPlugin(self): return True def showSettings(self, parent): self.manager.showSettings(parent) def mainWindowCreated(self, window): b = AutoZoomerButton(self.manager) window.statusBar().addButton(b) 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 in self.buttons: b = self.buttons[window] window.statusBar().removeButton(b) window.navigationBar().removeToolButton(b) del self.buttons[window] if window in self.actions: del self.actions[window] def onWebPageCreated(self, page): page.loadFinished.connect( lambda ok: self.manager.onLoadFinished(page) ) def populateExtensionsMenu(self, menu): self.manager.onPopulateExtensionsMenu(menu) def onConfigChanged(self): for window, action in self.actions.items(): action.setShortcut(QtGui.QKeySequence(self.manager.config["shortcut"])) Falkon.registerPlugin(AutoZoomer_Plugin())