96 if dlg.exec_() == QDialog.Accepted: |
96 if dlg.exec_() == QDialog.Accepted: |
97 filters = dlg.getFilters() |
97 filters = dlg.getFilters() |
98 _filterSettings.setValue("MessageFilters", filters) |
98 _filterSettings.setValue("MessageFilters", filters) |
99 |
99 |
100 |
100 |
101 def messageHandler(msgType, *args): |
101 def messageHandler(msgType, context, message): |
102 """ |
102 """ |
103 Module function handling messages. |
103 Module function handling messages. |
104 |
104 |
105 @param msgType type of the message |
105 @param msgType type of the message |
106 @type int, QtMsgType |
106 @type int, QtMsgType |
107 @param args message handler arguments, for PyQt4 message to be shown, for |
107 @param context context information |
108 PyQt5 context information and message to be shown |
108 @type QMessageLogContext |
109 @type PyQt4: bytes; PyQt5: tuple of (QMessageLogContext, bytes) |
109 @param message message to be shown |
110 """ |
110 @type bytes |
111 if len(args) == 2: |
111 """ |
112 context = args[0] |
|
113 message = args[1] |
|
114 else: |
|
115 message = args[0] |
|
116 if _msgHandlerDialog: |
112 if _msgHandlerDialog: |
117 try: |
113 try: |
118 if msgType == QtDebugMsg: |
114 if msgType == QtDebugMsg: |
119 messageType = "Debug Message:" |
115 messageType = "Debug Message:" |
120 elif msgType == QtWarningMsg: |
116 elif msgType == QtWarningMsg: |
128 if filterMessage(message): |
124 if filterMessage(message): |
129 return |
125 return |
130 message = message.replace("\r\n", "<br/>")\ |
126 message = message.replace("\r\n", "<br/>")\ |
131 .replace("\n", "<br/>")\ |
127 .replace("\n", "<br/>")\ |
132 .replace("\r", "<br/>") |
128 .replace("\r", "<br/>") |
133 if len(args) == 2 and context.file is not None: |
129 if context.file is not None: |
134 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \ |
130 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \ |
135 "<p>Line: {3}</p><p>Function: {4}</p>".format( |
131 "<p>Line: {3}</p><p>Function: {4}</p>".format( |
136 messageType, Utilities.html_uencode(message), |
132 messageType, Utilities.html_uencode(message), |
137 context.file, context.line, context.function) |
133 context.file, context.line, context.function) |
138 else: |
134 else: |
161 messageType = "Critical" |
157 messageType = "Critical" |
162 elif msgType == QtFatalMsg: |
158 elif msgType == QtFatalMsg: |
163 messageType = "Fatal Error" |
159 messageType = "Fatal Error" |
164 if isinstance(message, bytes): |
160 if isinstance(message, bytes): |
165 message = message.decode() |
161 message = message.decode() |
166 if len(args) == 2: |
162 print("{0}: {1} in {2} at line {3} ({4})".format( |
167 print("{0}: {1} in {2} at line {3} ({4})".format( |
163 messageType, message, context.file, context.line, |
168 messageType, message, context.file, context.line, |
164 context.function)) |
169 context.function)) |
|
170 else: |
|
171 print("{0}: {1}".format(messageType, message)) |
|
172 |
165 |
173 |
166 |
174 def qtHandler(): |
167 def qtHandler(): |
175 """ |
168 """ |
176 Module function to install an E5ErrorMessage dialog as the global |
169 Module function to install an E5ErrorMessage dialog as the global |