8 """ |
8 """ |
9 |
9 |
10 import contextlib |
10 import contextlib |
11 |
11 |
12 from PyQt5.QtCore import ( |
12 from PyQt5.QtCore import ( |
13 qInstallMessageHandler, QtDebugMsg, QtWarningMsg, QtCriticalMsg, |
13 qInstallMessageHandler, Qt, Q_ARG, QSettings, QtMsgType, QThread, |
14 QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG, QSettings |
14 QMetaObject |
15 ) |
15 ) |
16 from PyQt5.QtWidgets import QErrorMessage, QDialog |
16 from PyQt5.QtWidgets import QErrorMessage, QDialog |
17 |
17 |
18 from E5Gui.E5Application import e5App |
18 from E5Gui.E5Application import e5App |
19 |
19 |
95 """ |
95 """ |
96 from .E5ErrorMessageFilterDialog import E5ErrorMessageFilterDialog |
96 from .E5ErrorMessageFilterDialog import E5ErrorMessageFilterDialog |
97 dlg = E5ErrorMessageFilterDialog( |
97 dlg = E5ErrorMessageFilterDialog( |
98 Globals.toList(_filterSettings.value( |
98 Globals.toList(_filterSettings.value( |
99 "MessageFilters", []))) |
99 "MessageFilters", []))) |
100 ## _defaultFilters) |
|
101 if dlg.exec() == QDialog.DialogCode.Accepted: |
100 if dlg.exec() == QDialog.DialogCode.Accepted: |
102 filters = dlg.getFilters() |
101 filters = dlg.getFilters() |
103 _filterSettings.setValue("MessageFilters", filters) |
102 _filterSettings.setValue("MessageFilters", filters) |
104 |
103 |
105 |
104 |
119 # severity is lower than configured |
118 # severity is lower than configured |
120 # just ignore the message |
119 # just ignore the message |
121 return |
120 return |
122 |
121 |
123 with contextlib.suppress(RuntimeError): |
122 with contextlib.suppress(RuntimeError): |
124 if msgType == QtDebugMsg: |
123 if msgType == QtMsgType.QtDebugMsg: |
125 messageType = "Debug Message:" |
124 messageType = "Debug Message:" |
126 elif msgType == QtWarningMsg: |
125 elif msgType == QtMsgType.QtInfoMsg: |
|
126 messageType = "Info Message:" |
|
127 elif msgType == QtMsgType.QtWarningMsg: |
127 messageType = "Warning:" |
128 messageType = "Warning:" |
128 elif msgType == QtCriticalMsg: |
129 elif msgType == QtMsgType.QtCriticalMsg: |
129 messageType = "Critical:" |
130 messageType = "Critical:" |
130 elif msgType == QtFatalMsg: |
131 elif msgType == QtMsgType.QtFatalMsg: |
131 messageType = "Fatal Error:" |
132 messageType = "Fatal Error:" |
132 if isinstance(message, bytes): |
133 if isinstance(message, bytes): |
133 message = Utilities.decodeBytes(message) |
134 message = Utilities.decodeBytes(message) |
134 if filterMessage(message): |
135 if filterMessage(message): |
135 return |
136 return |
159 return |
160 return |
160 elif _origMsgHandler: |
161 elif _origMsgHandler: |
161 _origMsgHandler(msgType, message) |
162 _origMsgHandler(msgType, message) |
162 return |
163 return |
163 |
164 |
164 if msgType == QtDebugMsg: |
165 if msgType == QtMsgType.QtDebugMsg: |
165 messageType = "Debug Message" |
166 messageType = "Debug Message" |
166 elif msgType == QtWarningMsg: |
167 elif msgType == QtMsgType.QtInfoMsg: |
|
168 messageType = "Info Message:" |
|
169 elif msgType == QtMsgType.QtWarningMsg: |
167 messageType = "Warning" |
170 messageType = "Warning" |
168 elif msgType == QtCriticalMsg: |
171 elif msgType == QtMsgType.QtCriticalMsg: |
169 messageType = "Critical" |
172 messageType = "Critical" |
170 elif msgType == QtFatalMsg: |
173 elif msgType == QtMsgType.QtFatalMsg: |
171 messageType = "Fatal Error" |
174 messageType = "Fatal Error" |
172 if isinstance(message, bytes): |
175 if isinstance(message, bytes): |
173 message = message.decode() |
176 message = message.decode() |
174 print("{0}: {1} in {2} at line {3} ({4})".format( |
177 print("{0}: {1} in {2} at line {3} ({4})".format( |
175 messageType, message, context.file, context.line, |
178 messageType, message, context.file, context.line, |