src/eric7/WebBrowser/Passwords/PasswordsDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
18 18
19 class PasswordsDialog(QDialog, Ui_PasswordsDialog): 19 class PasswordsDialog(QDialog, Ui_PasswordsDialog):
20 """ 20 """
21 Class implementing a dialog to show all saved logins. 21 Class implementing a dialog to show all saved logins.
22 """ 22 """
23
23 def __init__(self, parent=None): 24 def __init__(self, parent=None):
24 """ 25 """
25 Constructor 26 Constructor
26 27
27 @param parent reference to the parent widget (QWidget) 28 @param parent reference to the parent widget (QWidget)
28 """ 29 """
29 super().__init__(parent) 30 super().__init__(parent)
30 self.setupUi(self) 31 self.setupUi(self)
31 32
32 self.__showPasswordsText = self.tr("Show Passwords") 33 self.__showPasswordsText = self.tr("Show Passwords")
33 self.__hidePasswordsText = self.tr("Hide Passwords") 34 self.__hidePasswordsText = self.tr("Hide Passwords")
34 self.passwordsButton.setText(self.__showPasswordsText) 35 self.passwordsButton.setText(self.__showPasswordsText)
35 36
36 self.removeButton.clicked.connect( 37 self.removeButton.clicked.connect(self.passwordsTable.removeSelected)
37 self.passwordsTable.removeSelected)
38 self.removeAllButton.clicked.connect(self.passwordsTable.removeAll) 38 self.removeAllButton.clicked.connect(self.passwordsTable.removeAll)
39 39
40 import WebBrowser.WebBrowserWindow 40 import WebBrowser.WebBrowserWindow
41 from .PasswordModel import PasswordModel 41 from .PasswordModel import PasswordModel
42 42
43 self.passwordsTable.verticalHeader().hide() 43 self.passwordsTable.verticalHeader().hide()
44 self.__passwordModel = PasswordModel( 44 self.__passwordModel = PasswordModel(
45 WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager(), 45 WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager(), self
46 self) 46 )
47 self.__proxyModel = QSortFilterProxyModel(self) 47 self.__proxyModel = QSortFilterProxyModel(self)
48 self.__proxyModel.setSourceModel(self.__passwordModel) 48 self.__proxyModel.setSourceModel(self.__passwordModel)
49 self.searchEdit.textChanged.connect( 49 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString)
50 self.__proxyModel.setFilterFixedString)
51 self.passwordsTable.setModel(self.__proxyModel) 50 self.passwordsTable.setModel(self.__proxyModel)
52 51
53 fm = QFontMetrics(QFont()) 52 fm = QFontMetrics(QFont())
54 height = fm.height() + fm.height() // 3 53 height = fm.height() + fm.height() // 3
55 self.passwordsTable.verticalHeader().setDefaultSectionSize(height) 54 self.passwordsTable.verticalHeader().setDefaultSectionSize(height)
56 self.passwordsTable.verticalHeader().setMinimumSectionSize(-1) 55 self.passwordsTable.verticalHeader().setMinimumSectionSize(-1)
57 56
58 self.__calculateHeaderSizes() 57 self.__calculateHeaderSizes()
59 58
60 def __calculateHeaderSizes(self): 59 def __calculateHeaderSizes(self):
61 """ 60 """
62 Private method to calculate the section sizes of the horizontal header. 61 Private method to calculate the section sizes of the horizontal header.
63 """ 62 """
64 fm = QFontMetrics(QFont()) 63 fm = QFontMetrics(QFont())
65 for section in range(self.__passwordModel.columnCount()): 64 for section in range(self.__passwordModel.columnCount()):
66 header = self.passwordsTable.horizontalHeader().sectionSizeHint( 65 header = self.passwordsTable.horizontalHeader().sectionSizeHint(section)
67 section)
68 if section == 0: 66 if section == 0:
69 try: 67 try:
70 header = fm.horizontalAdvance("averagebiglongsitename") 68 header = fm.horizontalAdvance("averagebiglongsitename")
71 except AttributeError: 69 except AttributeError:
72 header = fm.width("averagebiglongsitename") 70 header = fm.width("averagebiglongsitename")
83 try: 81 try:
84 buffer = fm.horizontalAdvance("mm") 82 buffer = fm.horizontalAdvance("mm")
85 except AttributeError: 83 except AttributeError:
86 buffer = fm.width("mm") 84 buffer = fm.width("mm")
87 header += buffer 85 header += buffer
88 self.passwordsTable.horizontalHeader().resizeSection( 86 self.passwordsTable.horizontalHeader().resizeSection(section, header)
89 section, header)
90 self.passwordsTable.horizontalHeader().setStretchLastSection(True) 87 self.passwordsTable.horizontalHeader().setStretchLastSection(True)
91 88
92 @pyqtSlot() 89 @pyqtSlot()
93 def on_passwordsButton_clicked(self): 90 def on_passwordsButton_clicked(self):
94 """ 91 """
95 Private slot to switch the password display mode. 92 Private slot to switch the password display mode.
96 """ 93 """
99 self.passwordsButton.setText(self.__showPasswordsText) 96 self.passwordsButton.setText(self.__showPasswordsText)
100 else: 97 else:
101 res = EricMessageBox.yesNo( 98 res = EricMessageBox.yesNo(
102 self, 99 self,
103 self.tr("Saved Passwords"), 100 self.tr("Saved Passwords"),
104 self.tr("""Do you really want to show passwords?""")) 101 self.tr("""Do you really want to show passwords?"""),
102 )
105 if res: 103 if res:
106 self.__passwordModel.setShowPasswords(True) 104 self.__passwordModel.setShowPasswords(True)
107 self.passwordsButton.setText(self.__hidePasswordsText) 105 self.passwordsButton.setText(self.__hidePasswordsText)
108 self.__calculateHeaderSizes() 106 self.__calculateHeaderSizes()

eric ide

mercurial