WebBrowser/Sync/SyncEncryptionPage.py

branch
QtWebEngine
changeset 4774
2c6ffa778c3b
parent 4631
5c1a96925da4
child 5389
9b1c800daff3
equal deleted inserted replaced
4773:cad470dfd807 4774:2c6ffa778c3b
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2012 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing encryption settings wizard page.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtCore import pyqtSlot
13 from PyQt5.QtWidgets import QWizardPage
14
15 from .Ui_SyncEncryptionPage import Ui_SyncEncryptionPage
16
17 import Preferences
18
19
20 class SyncEncryptionPage(QWizardPage, Ui_SyncEncryptionPage):
21 """
22 Class implementing encryption settings wizard page.
23 """
24 def __init__(self, parent=None):
25 """
26 Constructor
27
28 @param parent reference to the parent widget (QWidget)
29 """
30 super(SyncEncryptionPage, self).__init__(parent)
31 self.setupUi(self)
32
33 self.keySizeComboBox.addItem(self.tr("128 Bits"), 16)
34 self.keySizeComboBox.addItem(self.tr("192 Bits"), 24)
35 self.keySizeComboBox.addItem(self.tr("256 Bits"), 32)
36
37 self.registerField("ReencryptData", self.reencryptCheckBox)
38
39 self.encryptionGroupBox.setChecked(
40 Preferences.getWebBrowser("SyncEncryptData"))
41 self.encryptionKeyEdit.setText(
42 Preferences.getWebBrowser("SyncEncryptionKey"))
43 self.encryptionKeyAgainEdit.setEnabled(False)
44 self.keySizeComboBox.setCurrentIndex(self.keySizeComboBox.findData(
45 Preferences.getWebBrowser("SyncEncryptionKeyLength")))
46 self.loginsOnlyCheckBox.setChecked(
47 Preferences.getWebBrowser("SyncEncryptPasswordsOnly"))
48
49 def nextId(self):
50 """
51 Public method returning the ID of the next wizard page.
52
53 @return next wizard page ID (integer)
54 """
55 Preferences.setWebBrowser(
56 "SyncEncryptData", self.encryptionGroupBox.isChecked())
57 Preferences.setWebBrowser(
58 "SyncEncryptionKey", self.encryptionKeyEdit.text())
59 Preferences.setWebBrowser(
60 "SyncEncryptionKeyLength", self.keySizeComboBox.itemData(
61 self.keySizeComboBox.currentIndex()))
62 Preferences.setWebBrowser(
63 "SyncEncryptPasswordsOnly", self.loginsOnlyCheckBox.isChecked())
64
65 from . import SyncGlobals
66 return SyncGlobals.PageType
67
68 def isComplete(self):
69 """
70 Public method to check the completeness of the page.
71
72 @return flag indicating completeness (boolean)
73 """
74 if self.encryptionGroupBox.isChecked():
75 if self.encryptionKeyEdit.text() == "":
76 complete = False
77 else:
78 if self.reencryptCheckBox.isChecked():
79 complete = (self.encryptionKeyEdit.text() ==
80 self.encryptionKeyAgainEdit.text())
81 else:
82 complete = True
83 else:
84 complete = True
85
86 return complete
87
88 def __updateUI(self):
89 """
90 Private slot to update the variable parts of the UI.
91 """
92 error = ""
93
94 if self.encryptionGroupBox.isChecked():
95 self.encryptionKeyAgainEdit.setEnabled(
96 self.reencryptCheckBox.isChecked())
97
98 if self.encryptionKeyEdit.text() == "":
99 error = error or self.tr(
100 "Encryption key must not be empty.")
101
102 if self.encryptionKeyEdit.text() != "" and \
103 self.reencryptCheckBox.isChecked() and \
104 (self.encryptionKeyEdit.text() !=
105 self.encryptionKeyAgainEdit.text()):
106 error = error or self.tr(
107 "Repeated encryption key is wrong.")
108
109 self.errorLabel.setText(error)
110 self.completeChanged.emit()
111
112 @pyqtSlot(str)
113 def on_encryptionKeyEdit_textChanged(self, txt):
114 """
115 Private slot to handle changes of the encryption key.
116
117 @param txt content of the edit widget (string)
118 """
119 self.passwordMeter.checkPasswordStrength(txt)
120 self.__updateUI()
121
122 @pyqtSlot(str)
123 def on_encryptionKeyAgainEdit_textChanged(self, txt):
124 """
125 Private slot to handle changes of the encryption key repetition.
126
127 @param txt content of the edit widget (string)
128 """
129 self.__updateUI()
130
131 @pyqtSlot(bool)
132 def on_encryptionGroupBox_toggled(self, on):
133 """
134 Private slot to handle changes of the encryption selection.
135
136 @param on state of the group box (boolean)
137 """
138 self.__updateUI()
139
140 @pyqtSlot(bool)
141 def on_reencryptCheckBox_toggled(self, on):
142 """
143 Private slot to handle changes of the re-encryption selection.
144
145 @param on state of the check box (boolean)
146 """
147 self.__updateUI()

eric ide

mercurial