85 if dlg.exec_() == QDialog.Accepted: |
85 if dlg.exec_() == QDialog.Accepted: |
86 filters = dlg.getFilters() |
86 filters = dlg.getFilters() |
87 self.settings.setValue("MessageFilters", filters) |
87 self.settings.setValue("MessageFilters", filters) |
88 |
88 |
89 |
89 |
90 def messageHandler(msgType, context, message): |
90 def messageHandler(msgType, *args): |
91 """ |
91 """ |
92 Module function handling messages. |
92 Module function handling messages. |
93 |
93 |
94 @param msgType type of the message (integer, QtMsgType) |
94 @param msgType type of the message (integer, QtMsgType) |
95 @param context context information (QMessageLogContext) |
95 @param args message handler arguments, for PyQt4 message to be shown |
96 @param message message to be shown (bytes) |
96 (bytes), for PyQt5 context information (QMessageLogContext) and |
97 """ |
97 message to be shown (bytes) |
|
98 """ |
|
99 if len(args) == 2: |
|
100 context = args[0] |
|
101 message = args[1] |
|
102 else: |
|
103 message = args[0] |
98 if __msgHandlerDialog: |
104 if __msgHandlerDialog: |
99 try: |
105 try: |
100 if msgType == QtDebugMsg: |
106 if msgType == QtDebugMsg: |
101 messageType = QCoreApplication.translate( |
107 messageType = QCoreApplication.translate( |
102 "E5ErrorMessage", "Debug Message:") |
108 "E5ErrorMessage", "Debug Message:") |
112 if isinstance(message, bytes): |
118 if isinstance(message, bytes): |
113 message = Utilities.decodeBytes(message) |
119 message = Utilities.decodeBytes(message) |
114 message = message.replace("\r\n", "<br/>")\ |
120 message = message.replace("\r\n", "<br/>")\ |
115 .replace("\n", "<br/>")\ |
121 .replace("\n", "<br/>")\ |
116 .replace("\r", "<br/>") |
122 .replace("\r", "<br/>") |
117 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \ |
123 if len(args) == 2: |
118 "<p>Line: {3}</p><p>Function: {4}</p>".format( |
124 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \ |
119 messageType, Utilities.html_uencode(message), |
125 "<p>Line: {3}</p><p>Function: {4}</p>".format( |
120 context.file, context.line, context.function) |
126 messageType, Utilities.html_uencode(message), |
|
127 context.file, context.line, context.function) |
|
128 else: |
|
129 msg = "<p><b>{0}</b></p><p>{1}</p>".format( |
|
130 messageType, Utilities.html_uencode(message)) |
121 if QThread.currentThread() == qApp.thread(): |
131 if QThread.currentThread() == qApp.thread(): |
122 __msgHandlerDialog.showMessage(msg) |
132 __msgHandlerDialog.showMessage(msg) |
123 else: |
133 else: |
124 QMetaObject.invokeMethod( |
134 QMetaObject.invokeMethod( |
125 __msgHandlerDialog, |
135 __msgHandlerDialog, |
145 elif msgType == QtFatalMsg: |
155 elif msgType == QtFatalMsg: |
146 messageType = QCoreApplication.translate( |
156 messageType = QCoreApplication.translate( |
147 "E5ErrorMessage", "Fatal Error") |
157 "E5ErrorMessage", "Fatal Error") |
148 if isinstance(message, bytes): |
158 if isinstance(message, bytes): |
149 message = message.decode() |
159 message = message.decode() |
150 print("{0}: {1} in {2} at line {3} ({4})".format( |
160 if len(args) == 2: |
151 messageType, message, context.file, context.line, context.function)) |
161 print("{0}: {1} in {2} at line {3} ({4})".format( |
|
162 messageType, message, context.file, context.line, |
|
163 context.function)) |
|
164 else: |
|
165 print("{0}: {1}".format(messageType, message)) |
152 |
166 |
153 |
167 |
154 def qtHandler(): |
168 def qtHandler(): |
155 """ |
169 """ |
156 Module function to install an E5ErrorMessage dialog as the global |
170 Module function to install an E5ErrorMessage dialog as the global |