eric7/WebBrowser/Network/SendRefererWhitelistDialog.py

branch
eric7
changeset 8312
800c432b34c8
parent 8218
7c09585bd960
child 8318
962bce857696
equal deleted inserted replaced
8311:4e8b98454baa 8312:800c432b34c8
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog to manage the Send Referer whitelist.
8 """
9
10 from PyQt5.QtCore import pyqtSlot, Qt, QSortFilterProxyModel, QStringListModel
11 from PyQt5.QtWidgets import QDialog, QInputDialog, QLineEdit
12
13 from .Ui_SendRefererWhitelistDialog import Ui_SendRefererWhitelistDialog
14
15 import Preferences
16
17
18 class SendRefererWhitelistDialog(QDialog, Ui_SendRefererWhitelistDialog):
19 """
20 Class implementing a dialog to manage the Send Referer whitelist.
21 """
22 def __init__(self, parent=None):
23 """
24 Constructor
25
26 @param parent reference to the parent widget (QWidget)
27 """
28 super().__init__(parent)
29 self.setupUi(self)
30
31 self.__model = QStringListModel(
32 Preferences.getWebBrowser("SendRefererWhitelist"), self)
33 self.__model.sort(0)
34 self.__proxyModel = QSortFilterProxyModel(self)
35 self.__proxyModel.setFilterCaseSensitivity(
36 Qt.CaseSensitivity.CaseInsensitive)
37 self.__proxyModel.setSourceModel(self.__model)
38 self.whitelist.setModel(self.__proxyModel)
39
40 self.searchEdit.textChanged.connect(
41 self.__proxyModel.setFilterFixedString)
42
43 self.removeButton.clicked.connect(self.whitelist.removeSelected)
44 self.removeAllButton.clicked.connect(self.whitelist.removeAll)
45
46 @pyqtSlot()
47 def on_addButton_clicked(self):
48 """
49 Private slot to add an entry to the whitelist.
50 """
51 host, ok = QInputDialog.getText(
52 self,
53 self.tr("Send Referer Whitelist"),
54 self.tr("Enter host name to add to the whitelist:"),
55 QLineEdit.EchoMode.Normal)
56 if ok and host != "" and host not in self.__model.stringList():
57 self.__model.insertRow(self.__model.rowCount())
58 self.__model.setData(
59 self.__model.index(self.__model.rowCount() - 1), host)
60 self.__model.sort(0)
61
62 def accept(self):
63 """
64 Public method to accept the dialog data.
65 """
66 Preferences.setWebBrowser(
67 "SendRefererWhitelist", self.__model.stringList())
68
69 super().accept()

eric ide

mercurial