Helpviewer/Sync/SyncEncryptionPage.py

changeset 1680
28e57079dab5
child 1682
0eefcc28fa74
equal deleted inserted replaced
1679:422cc500eef9 1680:28e57079dab5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing encryption settings wizard page.
8 """
9
10 from PyQt4.QtCore import pyqtSlot
11 from PyQt4.QtGui import QWizardPage
12
13 from . import SyncGlobals
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().__init__(parent)
31 self.setupUi(self)
32
33 self.registerField("ReencryptData", self.reencryptCheckBox)
34
35 self.encryptionGroupBox.setChecked(Preferences.getHelp("SyncEncryptData"))
36 self.encryptionKeyEdit.setText(Preferences.getHelp("SyncEncryptionKey"))
37 self.encryptionKeyAgainEdit.setEnabled(False)
38
39 def nextId(self):
40 """
41 Public method returning the ID of the next wizard page.
42
43 @return next wizard page ID (integer)
44 """
45 Preferences.setHelp("SyncEncryptData", self.encryptionGroupBox.isChecked())
46 Preferences.setHelp("SyncEncryptionKey", self.encryptionKeyEdit.text())
47
48 return SyncGlobals.PageType
49
50 def isComplete(self):
51 """
52 Public method to check the completeness of the page.
53
54 @return flag indicating completeness (boolean)
55 """
56 if self.encryptionGroupBox.isChecked():
57 if self.encryptionKeyEdit.text() == "":
58 complete = False
59 else:
60 if self.reencryptCheckBox.isChecked():
61 complete = (self.encryptionKeyEdit.text() ==
62 self.encryptionKeyAgainEdit.text())
63 else:
64 complete = True
65 else:
66 complete = True
67
68 return complete
69
70 def __updateUI(self):
71 """
72 Private slot to update the variable parts of the UI.
73 """
74 error = ""
75
76 if self.encryptionGroupBox.isChecked():
77 self.encryptionKeyAgainEdit.setEnabled(
78 self.reencryptCheckBox.isChecked())
79
80 if self.encryptionKeyEdit.text() == "":
81 error = error or self.trUtf8("Encryption key must not be empty.")
82
83 if self.encryptionKeyEdit.text() != "" and \
84 self.reencryptCheckBox.isChecked() and \
85 self.encryptionKeyEdit.text() != self.encryptionKeyAgainEdit.text():
86 error = error or self.trUtf8("Repeated encryption key is wrong.")
87
88 self.errorLabel.setText(error)
89 self.completeChanged.emit()
90
91 @pyqtSlot(str)
92 def on_encryptionKeyEdit_textChanged(self, txt):
93 """
94 Private slot to handle changes of the encryption key.
95
96 @param txt content of the edit widget (string)
97 """
98 self.passwordMeter.checkPasswordStrength(txt)
99 self.__updateUI()
100
101 @pyqtSlot(str)
102 def on_encryptionKeyAgainEdit_textChanged(self, txt):
103 """
104 Private slot to handle changes of the encryption key repetition.
105
106 @param txt content of the edit widget (string)
107 """
108 self.__updateUI()
109
110 @pyqtSlot(bool)
111 def on_encryptionGroupBox_toggled(self, on):
112 """
113 Private slot to handle changes of the encryption selection.
114
115 @param on state of the group box (boolean)
116 """
117 self.__updateUI()
118
119 @pyqtSlot(bool)
120 def on_reencryptCheckBox_toggled(self, on):
121 """
122 Private slot to handle changes of the re-encryption selection.
123
124 @param on state of the check box (boolean)
125 """
126 self.__updateUI()

eric ide

mercurial