src/eric7/EricWidgets/EricErrorMessage.py

branch
eric7
changeset 11026
53d18eb2062d
parent 11006
a671918232f3
child 11035
e1e1d6e317c7
equal deleted inserted replaced
11025:7f78b3d0d88f 11026:53d18eb2062d
6 """ 6 """
7 Module implementing a specialized error message dialog. 7 Module implementing a specialized error message dialog.
8 """ 8 """
9 9
10 import contextlib 10 import contextlib
11 import sys
11 12
12 from PyQt6.QtCore import ( 13 from PyQt6.QtCore import (
13 Q_ARG, 14 Q_ARG,
14 QMetaObject, 15 QMetaObject,
15 QSettings, 16 QSettings,
189 messageType = "Critical" 190 messageType = "Critical"
190 elif msgType == QtMsgType.QtFatalMsg: 191 elif msgType == QtMsgType.QtFatalMsg:
191 messageType = "Fatal Error" 192 messageType = "Fatal Error"
192 if isinstance(message, bytes): 193 if isinstance(message, bytes):
193 message = message.decode() 194 message = message.decode()
194 print( 195 output = "{0}: {1} in {2} at line {3} ({4})".format(
195 "{0}: {1} in {2} at line {3} ({4})".format( 196 messageType, message, context.file, context.line, context.function
196 messageType, message, context.file, context.line, context.function
197 )
198 ) 197 )
198 try:
199 print(output)
200 except RuntimeError:
201 # The wrapped redirector object might be gone. Write an error message
202 # to the original stdout channel.
203 # Note: This can happen during shutdown of an applicaton.
204 if sys.__stdout__ is not None:
205 sys.__stdout__.write(output)
206 sys.__stdout__.flush()
199 207
200 208
201 def qtHandler(minSeverity): 209 def qtHandler(minSeverity):
202 """ 210 """
203 Module function to install an EricErrorMessage dialog as the global 211 Module function to install an EricErrorMessage dialog as the global

eric ide

mercurial