src/eric7/MicroPython/WifiDialogs/WifiStatusDialog.py

branch
eric7
changeset 11263
28f0ead11a82
parent 11236
75c26fe1d1c7
equal deleted inserted replaced
11262:07d9cc8d773c 11263:28f0ead11a82
11 11
12 from PyQt6.QtCore import Qt, pyqtSlot 12 from PyQt6.QtCore import Qt, pyqtSlot
13 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem 13 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
14 14
15 from eric7.EricGui import EricPixmapCache 15 from eric7.EricGui import EricPixmapCache
16 from eric7.SystemUtilities.NetworkUtilities import ipv6AddressScope
16 17
17 from .Ui_WifiStatusDialog import Ui_WifiStatusDialog 18 from .Ui_WifiStatusDialog import Ui_WifiStatusDialog
18 19
19 20
20 class WifiStatusDialog(QDialog, Ui_WifiStatusDialog): 21 class WifiStatusDialog(QDialog, Ui_WifiStatusDialog):
73 ) 74 )
74 with contextlib.suppress(KeyError): 75 with contextlib.suppress(KeyError):
75 QTreeWidgetItem( 76 QTreeWidgetItem(
76 self.statusTree, [self.tr("Country"), overallStatus["country"]] 77 self.statusTree, [self.tr("Country"), overallStatus["country"]]
77 ) 78 )
79 with contextlib.suppress(KeyError):
80 QTreeWidgetItem(
81 self.statusTree,
82 [self.tr("Preferred IP Version"), str(overallStatus["prefer"])],
83 )
78 84
79 # populate status of client interface 85 # populate status of client interface
80 if clientStatus: 86 if clientStatus:
81 header = self.__createHeader(self.tr("Client")) 87 header = self.__createHeader(self.tr("Client"))
82 QTreeWidgetItem( 88 QTreeWidgetItem(
94 self.tr("Yes") if clientStatus["connected"] else self.tr("No"), 100 self.tr("Yes") if clientStatus["connected"] else self.tr("No"),
95 ], 101 ],
96 ) 102 )
97 with contextlib.suppress(KeyError): 103 with contextlib.suppress(KeyError):
98 QTreeWidgetItem(header, [self.tr("Status"), clientStatus["status"]]) 104 QTreeWidgetItem(header, [self.tr("Status"), clientStatus["status"]])
99 QTreeWidgetItem( 105 with contextlib.suppress(KeyError):
100 header, [self.tr("IPv4 Address"), clientStatus["ifconfig"][0]] 106 QTreeWidgetItem(header, [self.tr("SSID"), clientStatus["essid"]])
101 )
102 QTreeWidgetItem(
103 header, [self.tr("Netmask"), clientStatus["ifconfig"][1]]
104 )
105 QTreeWidgetItem(
106 header, [self.tr("Gateway"), clientStatus["ifconfig"][2]]
107 )
108 QTreeWidgetItem(header, [self.tr("DNS"), clientStatus["ifconfig"][3]])
109 QTreeWidgetItem(header, [self.tr("MAC-Address"), clientStatus["mac"]])
110 with contextlib.suppress(KeyError): 107 with contextlib.suppress(KeyError):
111 QTreeWidgetItem( 108 QTreeWidgetItem(
112 header, [self.tr("Channel"), str(clientStatus["channel"])] 109 header, [self.tr("Channel"), str(clientStatus["channel"])]
113 ) 110 )
114 with contextlib.suppress(KeyError): 111 with contextlib.suppress(KeyError):
121 [ 118 [
122 self.tr("Tx-Power"), 119 self.tr("Tx-Power"),
123 self.tr("{0} dBm").format(clientStatus["txpower"]), 120 self.tr("{0} dBm").format(clientStatus["txpower"]),
124 ], 121 ],
125 ) 122 )
126 123 QTreeWidgetItem(header, [self.tr("MAC-Address"), clientStatus["mac"]])
124
125 # IPv4 specific data
126 ip4Header = self.__createSubheader(header, self.tr("IPv4"))
127 QTreeWidgetItem(
128 ip4Header, [self.tr("Address"), clientStatus["ifconfig"][0]]
129 )
130 QTreeWidgetItem(
131 ip4Header, [self.tr("Netmask"), clientStatus["ifconfig"][1]]
132 )
133 QTreeWidgetItem(
134 ip4Header, [self.tr("Gateway"), clientStatus["ifconfig"][2]]
135 )
136 QTreeWidgetItem(
137 ip4Header, [self.tr("DNS"), clientStatus["ifconfig"][3]]
138 )
139
140 # IPv6 specific data
141 if clientStatus["ipv6_addr"]:
142 ip6Header = self.__createSubheader(header, self.tr("IPv6"))
143 ip6AddrHeader = self.__createSubheader(
144 ip6Header, self.tr("Addresses"), underlined=False
145 )
146 for addr in sorted(clientStatus["ipv6_addr"]):
147 QTreeWidgetItem(
148 ip6AddrHeader, [addr.lower(), ipv6AddressScope(addr)]
149 )
150
151 # data about the connected access point
127 if "ap_ssid" in clientStatus: 152 if "ap_ssid" in clientStatus:
128 apHeader = self.__createSubheader( 153 apHeader = self.__createSubheader(
129 header, self.tr("Connected Access Point") 154 header, self.tr("Connected Access Point")
130 ) 155 )
131 QTreeWidgetItem( 156 QTreeWidgetItem(
169 ], 194 ],
170 ) 195 )
171 with contextlib.suppress(KeyError): 196 with contextlib.suppress(KeyError):
172 QTreeWidgetItem(header, [self.tr("Status"), apStatus["status"]]) 197 QTreeWidgetItem(header, [self.tr("Status"), apStatus["status"]])
173 with contextlib.suppress(KeyError): 198 with contextlib.suppress(KeyError):
174 QTreeWidgetItem(
175 header, [self.tr("IPv4 Address"), apStatus["ifconfig"][0]]
176 )
177 QTreeWidgetItem(
178 header, [self.tr("Netmask"), apStatus["ifconfig"][1]]
179 )
180 QTreeWidgetItem(
181 header, [self.tr("Gateway"), apStatus["ifconfig"][2]]
182 )
183 QTreeWidgetItem(header, [self.tr("DNS"), apStatus["ifconfig"][3]])
184 with contextlib.suppress(KeyError):
185 QTreeWidgetItem(header, [self.tr("SSID"), apStatus["essid"]]) 199 QTreeWidgetItem(header, [self.tr("SSID"), apStatus["essid"]])
186 with contextlib.suppress(KeyError): 200 with contextlib.suppress(KeyError):
187 QTreeWidgetItem( 201 QTreeWidgetItem(
188 header, [self.tr("Security"), apStatus["ap_security"]] 202 header, [self.tr("Security"), apStatus["ap_security"]]
189 ) 203 )
190 QTreeWidgetItem(header, [self.tr("MAC-Address"), apStatus["mac"]])
191 with contextlib.suppress(KeyError): 204 with contextlib.suppress(KeyError):
192 QTreeWidgetItem( 205 QTreeWidgetItem(
193 header, [self.tr("Channel"), str(apStatus["channel"])] 206 header, [self.tr("Channel"), str(apStatus["channel"])]
194 ) 207 )
195 with contextlib.suppress(KeyError): 208 with contextlib.suppress(KeyError):
200 [ 213 [
201 self.tr("Tx-Power"), 214 self.tr("Tx-Power"),
202 self.tr("{0} dBm").format(apStatus["txpower"]), 215 self.tr("{0} dBm").format(apStatus["txpower"]),
203 ], 216 ],
204 ) 217 )
218 QTreeWidgetItem(header, [self.tr("MAC-Address"), apStatus["mac"]])
219
220 # IPv4 specific data
221 ip4Header = self.__createSubheader(header, self.tr("IPv4"))
222 with contextlib.suppress(KeyError):
223 QTreeWidgetItem(
224 ip4Header, [self.tr("Address"), apStatus["ifconfig"][0]]
225 )
226 QTreeWidgetItem(
227 ip4Header, [self.tr("Netmask"), apStatus["ifconfig"][1]]
228 )
229 QTreeWidgetItem(
230 ip4Header, [self.tr("Gateway"), apStatus["ifconfig"][2]]
231 )
232 QTreeWidgetItem(
233 ip4Header, [self.tr("DNS"), apStatus["ifconfig"][3]]
234 )
235
236 # IPv6 specific data
237 if clientStatus["ipv6_addr"]:
238 ip6Header = self.__createSubheader(header, self.tr("IPv6"))
239 ip6AddrHeader = self.__createSubheader(
240 ip6Header, self.tr("Addresses"), underlined=False
241 )
242 for addr in sorted(apStatus["ipv6_addr"]):
243 QTreeWidgetItem(
244 ip6AddrHeader, [addr.lower(), ipv6AddressScope(addr)]
245 )
205 246
206 for col in range(self.statusTree.columnCount()): 247 for col in range(self.statusTree.columnCount()):
207 self.statusTree.resizeColumnToContents(col) 248 self.statusTree.resizeColumnToContents(col)
208 249
209 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) 250 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
222 headerItem.setExpanded(True) 263 headerItem.setExpanded(True)
223 headerItem.setFirstColumnSpanned(True) 264 headerItem.setFirstColumnSpanned(True)
224 265
225 font = headerItem.font(0) 266 font = headerItem.font(0)
226 font.setBold(True) 267 font.setBold(True)
227
228 headerItem.setFont(0, font) 268 headerItem.setFont(0, font)
229 269
230 return headerItem 270 return headerItem
231 271
232 def __createSubheader(self, parent, text): 272 def __createSubheader(self, parent, text, underlined=True):
233 """ 273 """
234 Private method to create a subheader item. 274 Private method to create a subheader item.
235 275
236 @param parent reference to the parent item 276 @param parent reference to the parent item
237 @type QTreeWidgetItem 277 @type QTreeWidgetItem
238 @param text text for the header item 278 @param text text for the header item
239 @type str 279 @type str
280 @param underlined flag indicating an underlined header (defaults to True)
281 @type bool (optional)
240 @return reference to the created header item 282 @return reference to the created header item
241 @rtype QTreeWidgetItem 283 @rtype QTreeWidgetItem
242 """ 284 """
243 headerItem = QTreeWidgetItem(parent, [text]) 285 headerItem = QTreeWidgetItem(parent, [text])
244 headerItem.setExpanded(True) 286 headerItem.setExpanded(True)
245 headerItem.setFirstColumnSpanned(True) 287 headerItem.setFirstColumnSpanned(True)
246 288
247 font = headerItem.font(0) 289 if underlined:
248 font.setUnderline(True) 290 font = headerItem.font(0)
249 headerItem.setFont(0, font) 291 font.setUnderline(True)
292 headerItem.setFont(0, font)
250 293
251 return headerItem 294 return headerItem

eric ide

mercurial