E5Network/E5NetworkMonitor.py

changeset 945
8cd4d08fa9f6
parent 791
9ec2ac20e54e
child 974
124032ef6b6d
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
14 import UI.PixmapCache 14 import UI.PixmapCache
15 15
16 from .E5NetworkHeaderDetailsDialog import E5NetworkHeaderDetailsDialog 16 from .E5NetworkHeaderDetailsDialog import E5NetworkHeaderDetailsDialog
17 17
18 from .Ui_E5NetworkMonitor import Ui_E5NetworkMonitor 18 from .Ui_E5NetworkMonitor import Ui_E5NetworkMonitor
19
19 20
20 class E5NetworkRequest(object): 21 class E5NetworkRequest(object):
21 """ 22 """
22 Class for storing all data related to a specific request. 23 Class for storing all data related to a specific request.
23 """ 24 """
33 self.length = 0 34 self.length = 0
34 self.contentType = "" 35 self.contentType = ""
35 self.info = "" 36 self.info = ""
36 self.replyHeaders = [] # list of tuple of two items 37 self.replyHeaders = [] # list of tuple of two items
37 38
39
38 class E5NetworkMonitor(QDialog, Ui_E5NetworkMonitor): 40 class E5NetworkMonitor(QDialog, Ui_E5NetworkMonitor):
39 """ 41 """
40 Class implementing a network monitor dialog. 42 Class implementing a network monitor dialog.
41 """ 43 """
42 _monitor = None 44 _monitor = None
61 Class method to close the monitor dialog. 63 Class method to close the monitor dialog.
62 """ 64 """
63 if cls._monitor is not None: 65 if cls._monitor is not None:
64 cls._monitor.close() 66 cls._monitor.close()
65 67
66 def __init__(self, networkAccessManager, parent = None): 68 def __init__(self, networkAccessManager, parent=None):
67 """ 69 """
68 Constructor 70 Constructor
69 71
70 @param networkAccessManager reference to the network access manager 72 @param networkAccessManager reference to the network access manager
71 (QNetworkAccessManager) 73 (QNetworkAccessManager)
106 self.requestsList.selectionModel().currentChanged[QModelIndex, QModelIndex]\ 108 self.requestsList.selectionModel().currentChanged[QModelIndex, QModelIndex]\
107 .connect(self.__currentChanged) 109 .connect(self.__currentChanged)
108 110
109 fm = self.fontMetrics() 111 fm = self.fontMetrics()
110 em = fm.width("m") 112 em = fm.width("m")
111 self.requestsList.horizontalHeader().resizeSection(0, em * 5) 113 self.requestsList.horizontalHeader().resizeSection(0, em * 5)
112 self.requestsList.horizontalHeader().resizeSection(1, em * 20) 114 self.requestsList.horizontalHeader().resizeSection(1, em * 20)
113 self.requestsList.horizontalHeader().resizeSection(3, em * 5) 115 self.requestsList.horizontalHeader().resizeSection(3, em * 5)
114 self.requestsList.horizontalHeader().resizeSection(4, em * 15) 116 self.requestsList.horizontalHeader().resizeSection(4, em * 15)
115 117
116 self.__headersDlg = None 118 self.__headersDlg = None
117 119
118 def closeEvent(self, evt): 120 def closeEvent(self, evt):
149 req = self.__model.requests[row].request 151 req = self.__model.requests[row].request
150 152
151 for header in req.rawHeaderList(): 153 for header in req.rawHeaderList():
152 self.__requestHeaders.insertRows(0, 1, QModelIndex()) 154 self.__requestHeaders.insertRows(0, 1, QModelIndex())
153 self.__requestHeaders.setData( 155 self.__requestHeaders.setData(
154 self.__requestHeaders.index(0, 0), 156 self.__requestHeaders.index(0, 0),
155 str(header, "utf-8")) 157 str(header, "utf-8"))
156 self.__requestHeaders.setData( 158 self.__requestHeaders.setData(
157 self.__requestHeaders.index(0, 1), 159 self.__requestHeaders.index(0, 1),
158 str(req.rawHeader(header), "utf-8")) 160 str(req.rawHeader(header), "utf-8"))
159 self.__requestHeaders.item(0, 0).setFlags( 161 self.__requestHeaders.item(0, 0).setFlags(
160 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 162 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
161 self.__requestHeaders.item(0, 1).setFlags( 163 self.__requestHeaders.item(0, 1).setFlags(
162 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 164 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
163 165
164 for header in self.__model.requests[row].replyHeaders: 166 for header in self.__model.requests[row].replyHeaders:
165 self.__replyHeaders.insertRows(0, 1, QModelIndex()) 167 self.__replyHeaders.insertRows(0, 1, QModelIndex())
166 self.__replyHeaders.setData( 168 self.__replyHeaders.setData(
167 self.__replyHeaders.index(0, 0), 169 self.__replyHeaders.index(0, 0),
168 header[0]) 170 header[0])
169 self.__replyHeaders.setData( 171 self.__replyHeaders.setData(
170 self.__replyHeaders.index(0, 1), 172 self.__replyHeaders.index(0, 1),
171 header[1]) 173 header[1])
172 self.__replyHeaders.item(0, 0).setFlags( 174 self.__replyHeaders.item(0, 0).setFlags(
173 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 175 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
174 self.__replyHeaders.item(0, 1).setFlags( 176 self.__replyHeaders.item(0, 1).setFlags(
175 Qt.ItemIsSelectable | Qt.ItemIsEnabled) 177 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
193 if self.__headersDlg is None: 195 if self.__headersDlg is None:
194 self.__headersDlg = E5NetworkHeaderDetailsDialog(self) 196 self.__headersDlg = E5NetworkHeaderDetailsDialog(self)
195 self.__headersDlg.setData(name, value) 197 self.__headersDlg.setData(name, value)
196 self.__headersDlg.show() 198 self.__headersDlg.show()
197 199
200
198 class E5RequestModel(QAbstractTableModel): 201 class E5RequestModel(QAbstractTableModel):
199 """ 202 """
200 Class implementing a model storing request objects. 203 Class implementing a model storing request objects.
201 """ 204 """
202 def __init__(self, networkAccessManager, parent = None): 205 def __init__(self, networkAccessManager, parent=None):
203 """ 206 """
204 Constructor 207 Constructor
205 208
206 @param networkAccessManager reference to the network access manager 209 @param networkAccessManager reference to the network access manager
207 (QNetworkAccessManager) 210 (QNetworkAccessManager)
208 @param parent reference to the parent object (QObject) 211 @param parent reference to the parent object (QObject)
209 """ 212 """
210 QAbstractTableModel.__init__(self, parent) 213 QAbstractTableModel.__init__(self, parent)
211 214
212 self.__headerData = [ 215 self.__headerData = [
213 self.trUtf8("Method"), 216 self.trUtf8("Method"),
214 self.trUtf8("Address"), 217 self.trUtf8("Address"),
215 self.trUtf8("Response"), 218 self.trUtf8("Response"),
216 self.trUtf8("Length"), 219 self.trUtf8("Length"),
217 self.trUtf8("Content Type"), 220 self.trUtf8("Content Type"),
218 self.trUtf8("Info"), 221 self.trUtf8("Info"),
219 ] 222 ]
220 223
221 self.__operations = { 224 self.__operations = {
222 QNetworkAccessManager.HeadOperation : "HEAD", 225 QNetworkAccessManager.HeadOperation: "HEAD",
223 QNetworkAccessManager.GetOperation : "GET", 226 QNetworkAccessManager.GetOperation: "GET",
224 QNetworkAccessManager.PutOperation : "PUT", 227 QNetworkAccessManager.PutOperation: "PUT",
225 QNetworkAccessManager.PostOperation : "POST", 228 QNetworkAccessManager.PostOperation: "POST",
226 } 229 }
227 230
228 self.requests = [] 231 self.requests = []
229 networkAccessManager\ 232 networkAccessManager\
230 .requestCreated[QNetworkAccessManager.Operation, QNetworkRequest, QNetworkReply]\ 233 .requestCreated[QNetworkAccessManager.Operation, QNetworkRequest, QNetworkReply]\
286 if status == 302: 289 if status == 302:
287 target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute) or QUrl() 290 target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute) or QUrl()
288 self.requests[offset].info = \ 291 self.requests[offset].info = \
289 self.trUtf8("Redirect: {0}").format(target.toString()) 292 self.trUtf8("Redirect: {0}").format(target.toString())
290 293
291 def headerData(self, section, orientation, role = Qt.DisplayRole): 294 def headerData(self, section, orientation, role=Qt.DisplayRole):
292 """ 295 """
293 Public method to get header data from the model. 296 Public method to get header data from the model.
294 297
295 @param section section number (integer) 298 @param section section number (integer)
296 @param orientation orientation (Qt.Orientation) 299 @param orientation orientation (Qt.Orientation)
300 if orientation == Qt.Horizontal and role == Qt.DisplayRole: 303 if orientation == Qt.Horizontal and role == Qt.DisplayRole:
301 return self.__headerData[section] 304 return self.__headerData[section]
302 305
303 return QAbstractTableModel.headerData(self, section, orientation, role) 306 return QAbstractTableModel.headerData(self, section, orientation, role)
304 307
305 def data(self, index, role = Qt.DisplayRole): 308 def data(self, index, role=Qt.DisplayRole):
306 """ 309 """
307 Public method to get data from the model. 310 Public method to get data from the model.
308 311
309 @param index index to get data for (QModelIndex) 312 @param index index to get data for (QModelIndex)
310 @param role role of the data to retrieve (integer) 313 @param role role of the data to retrieve (integer)

eric ide

mercurial