eric6/E5Network/E5SslCertificateSelectionDialog.py

Sat, 11 Apr 2020 14:13:25 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 11 Apr 2020 14:13:25 +0200
changeset 7522
e0e05a1b576f
parent 7360
9190402e4505
child 7533
88261c96484b
permissions
-rw-r--r--

Styles: added some Qt style sheets and some highlighter styles.

6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7253
diff changeset
3 # Copyright (c) 2019 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to select a SSL certificate.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt5.QtCore import pyqtSlot, Qt
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 try:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt5.QtNetwork import QSslCertificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 except ImportError:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 pass
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
18 from .Ui_E5SslCertificateSelectionDialog import (
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Ui_E5SslCertificateSelectionDialog
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
20 )
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import Utilities
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import UI.PixmapCache
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 class E5SslCertificateSelectionDialog(QDialog,
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Ui_E5SslCertificateSelectionDialog):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Class implementing a dialog to select a SSL certificate.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 CertRole = Qt.UserRole + 1
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 def __init__(self, certificates, parent=None):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Constructor
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param certificates list of SSL certificates to select from
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @type list of QSslCertificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param parent reference to the parent widget
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type QWidget
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 super(E5SslCertificateSelectionDialog, self).__init__(parent)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.setupUi(self)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.viewButton.setIcon(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 UI.PixmapCache.getIcon("certificates.png"))
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.buttonBox.button(QDialogButtonBox.OK).setEnabled(False)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.viewButton.setEnabled(False)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__populateCertificatesTree(certificates)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 def __populateCertificatesTree(self, certificates):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 Private slot to populate the certificates tree.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param certificates list of SSL certificates to select from
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @type list of QSslCertificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 for cert in certificates():
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__createCertificateEntry(cert)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.certificatesTree.expandAll()
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 for i in range(self.certificatesTree.columnCount()):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 self.certificatesTree.resizeColumnToContents(i)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.certificatesTree.sortItems(0, Qt.AscendingOrder)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 def __createCaCertificateEntry(self, cert):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 Private method to create a certificate entry.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @param cert certificate to insert
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @type QSslCertificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 # step 1: extract the info to be shown
7198
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
76 organisation = Utilities.decodeString(
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
77 ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
78 commonName = Utilities.decodeString(
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
79 ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if organisation is None or organisation == "":
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 organisation = self.tr("(Unknown)")
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 if commonName is None or commonName == "":
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 commonName = self.tr("(Unknown common name)")
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 expiryDate = cert.expiryDate().toString("yyyy-MM-dd")
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 # step 2: create the entry
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 items = self.certificatesTree.findItems(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 organisation,
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Qt.MatchFixedString | Qt.MatchCaseSensitive)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 if len(items) == 0:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 parent = QTreeWidgetItem(self.certificatesTree, [organisation])
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 parent.setFirstColumnSpanned(True)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 else:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 parent = items[0]
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 itm = QTreeWidgetItem(parent, [commonName, expiryDate])
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 itm.setData(0, self.CertRole, cert.toPem())
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 @pyqtSlot()
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 def on_certificatesTree_itemSelectionChanged(self):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 Private slot to handle the selection of an item.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
104 enable = (
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
105 len(self.certificatesTree.selectedItems()) > 0 and
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.certificatesTree.selectedItems()[0].parent() is not None
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
107 )
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.buttonBox.button(QDialogButtonBox.OK).setEnabled(enable)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.viewButton.setEnabled(enable)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @pyqtSlot()
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 def on_viewButton_clicked(self):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 Private slot to show data of the selected certificate.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 try:
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
117 from E5Network.E5SslCertificatesInfoDialog import (
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 E5SslCertificatesInfoDialog
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
119 )
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 cert = QSslCertificate.fromData(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.certificatesTree.selectedItems()[0].data(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 0, self.CertRole))
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 dlg = E5SslCertificatesInfoDialog(cert, self)
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 dlg.exec_()
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 except ImportError:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 pass
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 def getSelectedCertificate(self):
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 Public method to get the selected certificate.
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 @return selected certificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 @rtype QSslCertificate
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
135 valid = (
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
136 len(self.certificatesTree.selectedItems()) > 0 and
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.certificatesTree.selectedItems()[0].parent() is not None
7253
50dbe65a1334 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
138 )
6662
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 if valid:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 certificate = QSslCertificate.fromData(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.certificatesTree.selectedItems()[0].data(
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 0, self.CertRole))
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 else:
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 certificate = None
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
0002926e71d3 Web Browser (NG): added support to select a client SSL certificate (as of Qt 5.12).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 return certificate

eric ide

mercurial