E5Network/E5NetworkMonitor.py

branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3178
f25fc1364c88
parent 3345
071afe8be2a1
child 3656
441956d8fce5
equal deleted inserted replaced
3456:96232974dcdb 3484:645c12de6b0c
50 (QNetworkAccessManager) 50 (QNetworkAccessManager)
51 @return reference to the network monitor singleton (E5NetworkMonitor) 51 @return reference to the network monitor singleton (E5NetworkMonitor)
52 """ 52 """
53 if cls._monitor is None: 53 if cls._monitor is None:
54 cls._monitor = E5NetworkMonitor(networkAccessManager) 54 cls._monitor = E5NetworkMonitor(networkAccessManager)
55 cls._monitor.setAttribute(Qt.WA_DeleteOnClose, True)
56 55
57 return cls._monitor 56 return cls._monitor
58 57
59 @classmethod 58 @classmethod
60 def closeMonitor(cls): 59 def closeMonitor(cls):
75 super(E5NetworkMonitor, self).__init__(parent) 74 super(E5NetworkMonitor, self).__init__(parent)
76 self.setupUi(self) 75 self.setupUi(self)
77 76
78 self.__requestHeaders = QStandardItemModel(self) 77 self.__requestHeaders = QStandardItemModel(self)
79 self.__requestHeaders.setHorizontalHeaderLabels( 78 self.__requestHeaders.setHorizontalHeaderLabels(
80 [self.trUtf8("Name"), self.trUtf8("Value")]) 79 [self.tr("Name"), self.tr("Value")])
81 self.requestHeadersList.setModel(self.__requestHeaders) 80 self.requestHeadersList.setModel(self.__requestHeaders)
82 self.requestHeadersList.horizontalHeader().setStretchLastSection(True) 81 self.requestHeadersList.horizontalHeader().setStretchLastSection(True)
83 self.requestHeadersList.doubleClicked.connect(self.__showHeaderDetails) 82 self.requestHeadersList.doubleClicked.connect(self.__showHeaderDetails)
84 83
85 self.__replyHeaders = QStandardItemModel(self) 84 self.__replyHeaders = QStandardItemModel(self)
86 self.__replyHeaders.setHorizontalHeaderLabels( 85 self.__replyHeaders.setHorizontalHeaderLabels(
87 [self.trUtf8("Name"), self.trUtf8("Value")]) 86 [self.tr("Name"), self.tr("Value")])
88 self.responseHeadersList.setModel(self.__replyHeaders) 87 self.responseHeadersList.setModel(self.__replyHeaders)
89 self.responseHeadersList.horizontalHeader().setStretchLastSection(True) 88 self.responseHeadersList.horizontalHeader().setStretchLastSection(True)
90 self.responseHeadersList.doubleClicked.connect( 89 self.responseHeadersList.doubleClicked.connect(
91 self.__showHeaderDetails) 90 self.__showHeaderDetails)
92 91
96 self.__proxyModel = QSortFilterProxyModel(self) 95 self.__proxyModel = QSortFilterProxyModel(self)
97 self.__proxyModel.setFilterKeyColumn(-1) 96 self.__proxyModel.setFilterKeyColumn(-1)
98 self.searchEdit.textChanged.connect( 97 self.searchEdit.textChanged.connect(
99 self.__proxyModel.setFilterFixedString) 98 self.__proxyModel.setFilterFixedString)
100 99
101 self.removeButton.clicked[()].connect(self.requestsList.removeSelected) 100 self.removeButton.clicked.connect(self.requestsList.removeSelected)
102 self.removeAllButton.clicked[()].connect(self.requestsList.removeAll) 101 self.removeAllButton.clicked.connect(self.requestsList.removeAll)
103 102
104 self.__model = E5RequestModel(networkAccessManager, self) 103 self.__model = E5RequestModel(networkAccessManager, self)
105 self.__proxyModel.setSourceModel(self.__model) 104 self.__proxyModel.setSourceModel(self.__model)
106 self.requestsList.setModel(self.__proxyModel) 105 self.requestsList.setModel(self.__proxyModel)
107 self.__proxyModel.rowsInserted.connect( 106 self.__proxyModel.rowsInserted.connect(
215 @param parent reference to the parent object (QObject) 214 @param parent reference to the parent object (QObject)
216 """ 215 """
217 super(E5RequestModel, self).__init__(parent) 216 super(E5RequestModel, self).__init__(parent)
218 217
219 self.__headerData = [ 218 self.__headerData = [
220 self.trUtf8("Method"), 219 self.tr("Method"),
221 self.trUtf8("Address"), 220 self.tr("Address"),
222 self.trUtf8("Response"), 221 self.tr("Response"),
223 self.trUtf8("Length"), 222 self.tr("Length"),
224 self.trUtf8("Content Type"), 223 self.tr("Content Type"),
225 self.trUtf8("Info"), 224 self.tr("Info"),
226 ] 225 ]
227 226
228 self.__operations = { 227 self.__operations = {
229 QNetworkAccessManager.HeadOperation: "HEAD", 228 QNetworkAccessManager.HeadOperation: "HEAD",
230 QNetworkAccessManager.GetOperation: "GET", 229 QNetworkAccessManager.GetOperation: "GET",
256 @param req reference to the request object (E5NetworkRequest) 255 @param req reference to the request object (E5NetworkRequest)
257 """ 256 """
258 self.beginInsertRows( 257 self.beginInsertRows(
259 QModelIndex(), len(self.requests), len(self.requests)) 258 QModelIndex(), len(self.requests), len(self.requests))
260 self.requests.append(req) 259 self.requests.append(req)
261 req.reply.finished[()].connect(self.__addReply) 260 req.reply.finished.connect(self.__addReply)
262 self.endInsertRows() 261 self.endInsertRows()
263 262
264 def __addReply(self): 263 def __addReply(self):
265 """ 264 """
266 Private slot to add the reply data to the model. 265 Private slot to add the reply data to the model.
294 293
295 if status == 302: 294 if status == 302:
296 target = reply.attribute( 295 target = reply.attribute(
297 QNetworkRequest.RedirectionTargetAttribute) or QUrl() 296 QNetworkRequest.RedirectionTargetAttribute) or QUrl()
298 self.requests[offset].info = \ 297 self.requests[offset].info = \
299 self.trUtf8("Redirect: {0}").format(target.toString()) 298 self.tr("Redirect: {0}").format(target.toString())
300 299
301 def headerData(self, section, orientation, role=Qt.DisplayRole): 300 def headerData(self, section, orientation, role=Qt.DisplayRole):
302 """ 301 """
303 Public method to get header data from the model. 302 Public method to get header data from the model.
304 303
327 col = index.column() 326 col = index.column()
328 if col == 0: 327 if col == 0:
329 try: 328 try:
330 return self.__operations[self.requests[index.row()].op] 329 return self.__operations[self.requests[index.row()].op]
331 except KeyError: 330 except KeyError:
332 return self.trUtf8("Unknown") 331 return self.tr("Unknown")
333 elif col == 1: 332 elif col == 1:
334 return self.requests[index.row()].request.url().toEncoded() 333 return self.requests[index.row()].request.url().toEncoded()
335 elif col == 2: 334 elif col == 2:
336 return self.requests[index.row()].response 335 return self.requests[index.row()].response
337 elif col == 3: 336 elif col == 3:

eric ide

mercurial