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 |