E4Network/E4NetworkMonitor.py

changeset 7
c679fb30c8f3
parent 0
de9c2efb9d02
child 12
1d8dd9706f46
equal deleted inserted replaced
6:52e8c820d0dd 7:c679fb30c8f3
159 159
160 for header in req.rawHeaderList(): 160 for header in req.rawHeaderList():
161 self.__requestHeaders.insertRows(0, 1, QModelIndex()) 161 self.__requestHeaders.insertRows(0, 1, QModelIndex())
162 self.__requestHeaders.setData( 162 self.__requestHeaders.setData(
163 self.__requestHeaders.index(0, 0), 163 self.__requestHeaders.index(0, 0),
164 QVariant(header)) 164 header)
165 self.__requestHeaders.setData( 165 self.__requestHeaders.setData(
166 self.__requestHeaders.index(0, 1), 166 self.__requestHeaders.index(0, 1),
167 QVariant(req.rawHeader(header))) 167 req.rawHeader(header))
168 self.__requestHeaders.item(0, 0).setFlags( 168 self.__requestHeaders.item(0, 0).setFlags(
169 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 169 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
170 self.__requestHeaders.item(0, 1).setFlags( 170 self.__requestHeaders.item(0, 1).setFlags(
171 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 171 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
172 172
173 for header in self.__model.requests[row].replyHeaders: 173 for header in self.__model.requests[row].replyHeaders:
174 self.__replyHeaders.insertRows(0, 1, QModelIndex()) 174 self.__replyHeaders.insertRows(0, 1, QModelIndex())
175 self.__replyHeaders.setData( 175 self.__replyHeaders.setData(
176 self.__replyHeaders.index(0, 0), 176 self.__replyHeaders.index(0, 0),
177 QVariant(header[0])) 177 header[0])
178 self.__replyHeaders.setData( 178 self.__replyHeaders.setData(
179 self.__replyHeaders.index(0, 1), 179 self.__replyHeaders.index(0, 1),
180 QVariant(header[1])) 180 header[1])
181 self.__replyHeaders.item(0, 0).setFlags( 181 self.__replyHeaders.item(0, 0).setFlags(
182 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 182 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
183 self.__replyHeaders.item(0, 1).setFlags( 183 self.__replyHeaders.item(0, 1).setFlags(
184 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 184 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
185 185
195 headerList = self.sender() 195 headerList = self.sender()
196 if headerList is None: 196 if headerList is None:
197 return 197 return
198 198
199 row = index.row() 199 row = index.row()
200 name = headerList.model().data(headerList.model().index(row, 0)).toString() 200 name = headerList.model().data(headerList.model().index(row, 0))
201 value = headerList.model().data(headerList.model().index(row, 1)).toString() 201 value = headerList.model().data(headerList.model().index(row, 1))
202 if self.__headersDlg is None: 202 if self.__headersDlg is None:
203 self.__headersDlg = E4NetworkHeaderDetailsDialog(self) 203 self.__headersDlg = E4NetworkHeaderDetailsDialog(self)
204 self.__headersDlg.setData(name, value) 204 self.__headersDlg.setData(name, value)
205 self.__headersDlg.show() 205 self.__headersDlg.show()
206 206
283 # save the reply header data 283 # save the reply header data
284 for header in reply.rawHeaderList(): 284 for header in reply.rawHeaderList():
285 self.requests[offset].replyHeaders.append((header, reply.rawHeader(header))) 285 self.requests[offset].replyHeaders.append((header, reply.rawHeader(header)))
286 286
287 # save reply info to be displayed 287 # save reply info to be displayed
288 status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute).toInt()[0] 288 status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
289 reason = reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute).toString() 289 reason = reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute)
290 self.requests[offset].response = "%d %s" % (status, reason) 290 self.requests[offset].response = "%d %s" % (status, reason)
291 self.requests[offset].length = \ 291 self.requests[offset].length = reply.header(QNetworkRequest.ContentLengthHeader)
292 reply.header(QNetworkRequest.ContentLengthHeader).toInt()[0] 292 self.requests[offset].contentType = reply.header(QNetworkRequest.ContentTypeHeader)
293 self.requests[offset].contentType = \
294 reply.header(QNetworkRequest.ContentTypeHeader).toString()
295 293
296 if status == 302: 294 if status == 302:
297 target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute).toUrl() 295 target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute)
298 self.requests[offset].info = \ 296 self.requests[offset].info = \
299 self.trUtf8("Redirect: {0}").format(target.toString()) 297 self.trUtf8("Redirect: {0}").format(target.toString())
300 298
301 def headerData(self, section, orientation, role): 299 def headerData(self, section, orientation, role):
302 """ 300 """
306 @param orientation orientation (Qt.Orientation) 304 @param orientation orientation (Qt.Orientation)
307 @param role role of the data to retrieve (integer) 305 @param role role of the data to retrieve (integer)
308 @return requested data 306 @return requested data
309 """ 307 """
310 if orientation == Qt.Horizontal and role == Qt.DisplayRole: 308 if orientation == Qt.Horizontal and role == Qt.DisplayRole:
311 return QVariant(self.__headerData[section]) 309 return self.__headerData[section]
312 310
313 return QAbstractTableModel.headerData(self, section, orientation, role) 311 return QAbstractTableModel.headerData(self, section, orientation, role)
314 312
315 def data(self, index, role): 313 def data(self, index, role):
316 """ 314 """
319 @param index index to get data for (QModelIndex) 317 @param index index to get data for (QModelIndex)
320 @param role role of the data to retrieve (integer) 318 @param role role of the data to retrieve (integer)
321 @return requested data 319 @return requested data
322 """ 320 """
323 if index.row() < 0 or index.row() >= len(self.requests): 321 if index.row() < 0 or index.row() >= len(self.requests):
324 return QVariant() 322 return None
325 323
326 if role == Qt.DisplayRole or role == Qt.EditRole: 324 if role == Qt.DisplayRole or role == Qt.EditRole:
327 col = index.column() 325 col = index.column()
328 if col == 0: 326 if col == 0:
329 try: 327 try:
330 return QVariant(self.__operations[self.requests[index.row()].op]) 328 return self.__operations[self.requests[index.row()].op]
331 except KeyError: 329 except KeyError:
332 return QVariant(self.trUtf8("Unknown")) 330 return self.trUtf8("Unknown")
333 elif col == 1: 331 elif col == 1:
334 return QVariant(self.requests[index.row()].request.url().toEncoded()) 332 return self.requests[index.row()].request.url().toEncoded()
335 elif col == 2: 333 elif col == 2:
336 return QVariant(self.requests[index.row()].response) 334 return self.requests[index.row()].response
337 elif col == 3: 335 elif col == 3:
338 return QVariant(self.requests[index.row()].length) 336 return self.requests[index.row()].length
339 elif col == 4: 337 elif col == 4:
340 return QVariant(self.requests[index.row()].contentType) 338 return self.requests[index.row()].contentType
341 elif col == 5: 339 elif col == 5:
342 return QVariant(self.requests[index.row()].info) 340 return self.requests[index.row()].info
343 341
344 return QVariant() 342 return None
345 343
346 def columnCount(self, parent): 344 def columnCount(self, parent):
347 """ 345 """
348 Public method to get the number of columns of the model. 346 Public method to get the number of columns of the model.
349 347

eric ide

mercurial