eric7/WebBrowser/Sync/SyncEncryptionPage.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 encryption settings wizard page.
8 """
9
10 from PyQt5.QtCore import pyqtSlot
11 from PyQt5.QtWidgets import QWizardPage
12
13 from .Ui_SyncEncryptionPage import Ui_SyncEncryptionPage
14
15 import Preferences
16
17
18 class SyncEncryptionPage(QWizardPage, Ui_SyncEncryptionPage):
19 """
20 Class implementing encryption settings wizard page.
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.keySizeComboBox.addItem(self.tr("128 Bits"), 16)
32 self.keySizeComboBox.addItem(self.tr("192 Bits"), 24)
33 self.keySizeComboBox.addItem(self.tr("256 Bits"), 32)
34
35 self.registerField("ReencryptData", self.reencryptCheckBox)
36
37 self.encryptionGroupBox.setChecked(
38 Preferences.getWebBrowser("SyncEncryptData"))
39 self.encryptionKeyEdit.setText(
40 Preferences.getWebBrowser("SyncEncryptionKey"))
41 self.encryptionKeyAgainEdit.setEnabled(False)
42 self.keySizeComboBox.setCurrentIndex(self.keySizeComboBox.findData(
43 Preferences.getWebBrowser("SyncEncryptionKeyLength")))
44 self.loginsOnlyCheckBox.setChecked(
45 Preferences.getWebBrowser("SyncEncryptPasswordsOnly"))
46
47 def nextId(self):
48 """
49 Public method returning the ID of the next wizard page.
50
51 @return next wizard page ID (integer)
52 """
53 Preferences.setWebBrowser(
54 "SyncEncryptData", self.encryptionGroupBox.isChecked())
55 Preferences.setWebBrowser(
56 "SyncEncryptionKey", self.encryptionKeyEdit.text())
57 Preferences.setWebBrowser(
58 "SyncEncryptionKeyLength", self.keySizeComboBox.itemData(
59 self.keySizeComboBox.currentIndex()))
60 Preferences.setWebBrowser(
61 "SyncEncryptPasswordsOnly", self.loginsOnlyCheckBox.isChecked())
62
63 from . import SyncGlobals
64 return SyncGlobals.PageType
65
66 def isComplete(self):
67 """
68 Public method to check the completeness of the page.
69
70 @return flag indicating completeness (boolean)
71 """
72 if self.encryptionGroupBox.isChecked():
73 if self.encryptionKeyEdit.text() == "":
74 complete = False
75 else:
76 if self.reencryptCheckBox.isChecked():
77 complete = (self.encryptionKeyEdit.text() ==
78 self.encryptionKeyAgainEdit.text())
79 else:
80 complete = True
81 else:
82 complete = True
83
84 return complete
85
86 def __updateUI(self):
87 """
88 Private slot to update the variable parts of the UI.
89 """
90 error = ""
91
92 if self.encryptionGroupBox.isChecked():
93 self.encryptionKeyAgainEdit.setEnabled(
94 self.reencryptCheckBox.isChecked())
95
96 if self.encryptionKeyEdit.text() == "":
97 error = error or self.tr(
98 "Encryption key must not be empty.")
99
100 if (
101 self.encryptionKeyEdit.text() != "" and
102 self.reencryptCheckBox.isChecked() and
103 (self.encryptionKeyEdit.text() !=
104 self.encryptionKeyAgainEdit.text())
105 ):
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