E5Network/E5NetworkMonitor.py

changeset 2990
583beaf0b4b8
parent 2953
703452a2876f
child 3057
10516539f238
child 3160
209a07d7e401
equal deleted inserted replaced
2989:7efa8b8b6903 2990:583beaf0b4b8
83 self.__replyHeaders = QStandardItemModel(self) 83 self.__replyHeaders = QStandardItemModel(self)
84 self.__replyHeaders.setHorizontalHeaderLabels( 84 self.__replyHeaders.setHorizontalHeaderLabels(
85 [self.trUtf8("Name"), self.trUtf8("Value")]) 85 [self.trUtf8("Name"), self.trUtf8("Value")])
86 self.responseHeadersList.setModel(self.__replyHeaders) 86 self.responseHeadersList.setModel(self.__replyHeaders)
87 self.responseHeadersList.horizontalHeader().setStretchLastSection(True) 87 self.responseHeadersList.horizontalHeader().setStretchLastSection(True)
88 self.responseHeadersList.doubleClicked.connect(self.__showHeaderDetails) 88 self.responseHeadersList.doubleClicked.connect(
89 self.__showHeaderDetails)
89 90
90 self.requestsList.horizontalHeader().setStretchLastSection(True) 91 self.requestsList.horizontalHeader().setStretchLastSection(True)
91 self.requestsList.verticalHeader().setMinimumSectionSize(-1) 92 self.requestsList.verticalHeader().setMinimumSectionSize(-1)
92 93
93 self.__proxyModel = QSortFilterProxyModel(self) 94 self.__proxyModel = QSortFilterProxyModel(self)
94 self.__proxyModel.setFilterKeyColumn(-1) 95 self.__proxyModel.setFilterKeyColumn(-1)
95 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) 96 self.searchEdit.textChanged.connect(
97 self.__proxyModel.setFilterFixedString)
96 98
97 self.removeButton.clicked[()].connect(self.requestsList.removeSelected) 99 self.removeButton.clicked[()].connect(self.requestsList.removeSelected)
98 self.removeAllButton.clicked[()].connect(self.requestsList.removeAll) 100 self.removeAllButton.clicked[()].connect(self.requestsList.removeAll)
99 101
100 self.__model = E5RequestModel(networkAccessManager, self) 102 self.__model = E5RequestModel(networkAccessManager, self)
101 self.__proxyModel.setSourceModel(self.__model) 103 self.__proxyModel.setSourceModel(self.__model)
102 self.requestsList.setModel(self.__proxyModel) 104 self.requestsList.setModel(self.__proxyModel)
103 self.__proxyModel.rowsInserted.connect(self.requestsList.scrollToBottom) 105 self.__proxyModel.rowsInserted.connect(
104 self.requestsList.selectionModel().currentChanged[QModelIndex, QModelIndex]\ 106 self.requestsList.scrollToBottom)
107 self.requestsList.selectionModel()\
108 .currentChanged[QModelIndex, QModelIndex]\
105 .connect(self.__currentChanged) 109 .connect(self.__currentChanged)
106 110
107 fm = self.fontMetrics() 111 fm = self.fontMetrics()
108 em = fm.width("m") 112 em = fm.width("m")
109 self.requestsList.horizontalHeader().resizeSection(0, em * 5) 113 self.requestsList.horizontalHeader().resizeSection(0, em * 5)
187 191
188 row = index.row() 192 row = index.row()
189 name = headerList.model().data(headerList.model().index(row, 0)) 193 name = headerList.model().data(headerList.model().index(row, 0))
190 value = headerList.model().data(headerList.model().index(row, 1)) 194 value = headerList.model().data(headerList.model().index(row, 1))
191 if self.__headersDlg is None: 195 if self.__headersDlg is None:
192 from .E5NetworkHeaderDetailsDialog import E5NetworkHeaderDetailsDialog 196 from .E5NetworkHeaderDetailsDialog import \
197 E5NetworkHeaderDetailsDialog
193 self.__headersDlg = E5NetworkHeaderDetailsDialog(self) 198 self.__headersDlg = E5NetworkHeaderDetailsDialog(self)
194 self.__headersDlg.setData(name, value) 199 self.__headersDlg.setData(name, value)
195 self.__headersDlg.show() 200 self.__headersDlg.show()
196 201
197 202
246 """ 251 """
247 Private method to add a request object to the model. 252 Private method to add a request object to the model.
248 253
249 @param req reference to the request object (E5NetworkRequest) 254 @param req reference to the request object (E5NetworkRequest)
250 """ 255 """
251 self.beginInsertRows(QModelIndex(), len(self.requests), len(self.requests)) 256 self.beginInsertRows(
257 QModelIndex(), len(self.requests), len(self.requests))
252 self.requests.append(req) 258 self.requests.append(req)
253 req.reply.finished[()].connect(self.__addReply) 259 req.reply.finished[()].connect(self.__addReply)
254 self.endInsertRows() 260 self.endInsertRows()
255 261
256 def __addReply(self): 262 def __addReply(self):
274 self.requests[offset].replyHeaders.append(( 280 self.requests[offset].replyHeaders.append((
275 str(header, "utf-8"), str(reply.rawHeader(header), "utf-8"))) 281 str(header, "utf-8"), str(reply.rawHeader(header), "utf-8")))
276 282
277 # save reply info to be displayed 283 # save reply info to be displayed
278 status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) or 0 284 status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) or 0
279 reason = reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute) or "" 285 reason = \
286 reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute) or ""
280 self.requests[offset].response = "{0:d} {1}".format(status, reason) 287 self.requests[offset].response = "{0:d} {1}".format(status, reason)
281 self.requests[offset].length = reply.header(QNetworkRequest.ContentLengthHeader) 288 self.requests[offset].length = \
282 self.requests[offset].contentType = reply.header(QNetworkRequest.ContentTypeHeader) 289 reply.header(QNetworkRequest.ContentLengthHeader)
290 self.requests[offset].contentType = \
291 reply.header(QNetworkRequest.ContentTypeHeader)
283 292
284 if status == 302: 293 if status == 302:
285 target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute) or QUrl() 294 target = reply.attribute(
295 QNetworkRequest.RedirectionTargetAttribute) or QUrl()
286 self.requests[offset].info = \ 296 self.requests[offset].info = \
287 self.trUtf8("Redirect: {0}").format(target.toString()) 297 self.trUtf8("Redirect: {0}").format(target.toString())
288 298
289 def headerData(self, section, orientation, role=Qt.DisplayRole): 299 def headerData(self, section, orientation, role=Qt.DisplayRole):
290 """ 300 """

eric ide

mercurial