diff --git a/autoZoomer/__init__.py b/autoZoomer/__init__.py
index 8172e5e..a98c632 100644
--- a/autoZoomer/__init__.py
+++ b/autoZoomer/__init__.py
@@ -17,7 +17,7 @@
# ============================================================
import Falkon
-from PySide2 import QtCore
+from PySide2 import QtCore, QtGui
from autoZoomer.autoZoomer import AutoZoomer
from autoZoomer.button import AutoZoomerButton
@@ -29,6 +29,7 @@ class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject):
def init(self, state, settingsPath):
self.manager = AutoZoomer(settingsPath)
+ self.manager.configChanged.connect(self.onConfigChanged)
plugins = Falkon.MainApplication.instance().plugins()
@@ -66,13 +67,14 @@ class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject):
self.actions[window] = a
def mainWindowDeleted(self, window):
- if window not in self.buttons:
- return
+ if window in self.buttons:
+ b = self.buttons[window]
+ window.statusBar().removeButton(b)
+ window.navigationBar().removeToolButton(b)
+ del self.buttons[window]
- 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):
def onLoadFinished(ok):
@@ -83,5 +85,9 @@ class AutoZoomer_Plugin(Falkon.PluginInterface, QtCore.QObject):
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())
diff --git a/autoZoomer/autoZoomer.py b/autoZoomer/autoZoomer.py
index 4e58592..200766b 100644
--- a/autoZoomer/autoZoomer.py
+++ b/autoZoomer/autoZoomer.py
@@ -29,6 +29,8 @@ class AutoZoomer(QtCore.QObject):
remove = None
config = None
+ configChanged = QtCore.Signal()
+
def __init__(self, settingsPath, parent=None):
super().__init__(parent)
@@ -36,7 +38,7 @@ class AutoZoomer(QtCore.QObject):
"settingsFile": os.path.join(settingsPath, "autoZoomer", "settings.ini"),
"active": True,
"defaultZoom": True,
- "shortcut": "Ctrl+Shift+L"
+ "shortcut": ""
}
self.data = {}
self.remove = []
@@ -46,6 +48,7 @@ class AutoZoomer(QtCore.QObject):
def showSettings(self, parent=None):
settings = SettingsDialog(self.config, self.data, self.remove, parent)
settings.accepted.connect(self.saveSettings)
+ settings.accepted.connect(self.configChanged)
settings.exec_()
def loadSettings(self):
@@ -54,6 +57,7 @@ class AutoZoomer(QtCore.QObject):
settings.beginGroup("AutoZoomer")
self.config["active"] = str2bool(settings.value("active", True))
self.config["defaultZoom"] = str2bool(settings.value("defaultZoom", True))
+ self.config["shortcut"] = str(settings.value("shortcut", ""))
settings.endGroup()
for group in settings.childGroups():
@@ -73,6 +77,7 @@ class AutoZoomer(QtCore.QObject):
settings.beginGroup("AutoZoomer")
settings.setValue("active", self.config["active"])
settings.setValue("defaultZoom", self.config["defaultZoom"])
+ settings.setValue("shortcut", self.config["shortcut"])
settings.endGroup()
for host in self.remove:
diff --git a/autoZoomer/settings.ui b/autoZoomer/settings.ui
index e4d303a..deb36b8 100644
--- a/autoZoomer/settings.ui
+++ b/autoZoomer/settings.ui
@@ -7,7 +7,7 @@
0
0
520
- 358
+ 404
@@ -108,6 +108,20 @@
+ -
+
+
-
+
+
+ -
+
+
+ Clear
+
+
+
+
+
-
@@ -130,5 +144,22 @@
checkBoxEnableAutoZoomer
-
+
+
+ pushButtonClear
+ clicked()
+ keySequenceEditShortcut
+ clear()
+
+
+ 453
+ 346
+
+
+ 383
+ 347
+
+
+
+
diff --git a/autoZoomer/settingsDialog.py b/autoZoomer/settingsDialog.py
index 94edb9e..da0df10 100644
--- a/autoZoomer/settingsDialog.py
+++ b/autoZoomer/settingsDialog.py
@@ -18,7 +18,7 @@
import Falkon
import os
-from PySide2 import QtCore, QtWidgets, QtUiTools
+from PySide2 import QtCore, QtGui, QtWidgets, QtUiTools
from autoZoomer.listItem import ListItem
from autoZoomer.i18n import i18n
@@ -47,15 +47,20 @@ class SettingsDialog(QtWidgets.QDialog):
layout.addWidget(self.ui)
self.setLayout(layout)
+ self.translations()
+
for level in Falkon.WebView.zoomLevels():
self.ui.comboBoxNew.addItem(str(level) + '%')
self.ui.comboBoxNew.setCurrentIndex(Falkon.WebView.zoomLevels().index(100))
- self.translations()
-
self.ui.checkBoxEnableAutoZoomer.setChecked(self.config["active"])
self.ui.checkBoxDefaultZoom.setChecked(self.config["defaultZoom"])
+ if self.config["shortcut"]:
+ self.ui.keySequenceEditShortcut.setKeySequence(
+ QtGui.QKeySequence(self.config["shortcut"])
+ )
+
for key, value in self.data.items():
widget = ListItem()
widget.setHost(key)
@@ -78,6 +83,7 @@ class SettingsDialog(QtWidgets.QDialog):
self.ui.pushButtonRemove.setText(i18n("Remove"))
self.ui.checkBoxEnableAutoZoomer.setText(i18n("Enable Auto Zoomer"))
self.ui.checkBoxDefaultZoom.setText(i18n("On unknown host zoom to default zoom level"))
+ self.ui.pushButtonClear.setText(i18n("Clear"))
def addListItem(self, host, zoom=6, active=True):
if not host:
@@ -106,6 +112,7 @@ class SettingsDialog(QtWidgets.QDialog):
def updateData(self):
self.config["active"] = self.ui.checkBoxEnableAutoZoomer.isChecked()
self.config["defaultZoom"] = self.ui.checkBoxDefaultZoom.isChecked()
+ self.config["shortcut"] = self.ui.keySequenceEditShortcut.keySequence().toString()
self.data.clear()
@@ -151,4 +158,3 @@ class SettingsDialog(QtWidgets.QDialog):
self.updateData()
super().accept()
- self.close()