# ============================================================ # 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 from autoZoomer.autoZoomer import AutoZoomer from autoZoomer.button import AutoZoomerButton class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject): manager = None buttons = {} def init(self, state, settingsPath): self.manager = AutoZoomer(settingsPath) 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 def mainWindowDeleted(self, window): if window not in self.buttons: return b = self.buttons[window] window.statusBar().removeButton(b) window.navigationBar().removeToolButton(b) del self.buttons[window] def onWebPageCreated(self, page): def onLoadFinished(ok): self.manager.onLoadFinished(page) page.loadFinished.connect(onLoadFinished) Falkon.registerPlugin(AutoZoomer_Plugin())