E5Gui/E5ErrorMessage.py

changeset 5840
36f8973c5a8d
parent 5597
3d88d53f8c2b
child 5858
7afdb26fcabc
equal deleted inserted replaced
5839:fe4d62e23908 5840:36f8973c5a8d
7 Module implementing a specialized error message dialog. 7 Module implementing a specialized error message dialog.
8 """ 8 """
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 11
12 from PyQt5.QtCore import qInstallMessageHandler, QCoreApplication, \ 12 from PyQt5.QtCore import qInstallMessageHandler, QtDebugMsg, QtWarningMsg, \
13 QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QThread, \ 13 QtCriticalMsg, QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG, QSettings
14 QMetaObject, Qt, Q_ARG, QSettings
15 from PyQt5.QtWidgets import QErrorMessage, qApp, QDialog 14 from PyQt5.QtWidgets import QErrorMessage, qApp, QDialog
16 15
17 import Globals 16 import Globals
18 import Utilities 17 import Utilities
19 18
105 else: 104 else:
106 message = args[0] 105 message = args[0]
107 if __msgHandlerDialog: 106 if __msgHandlerDialog:
108 try: 107 try:
109 if msgType == QtDebugMsg: 108 if msgType == QtDebugMsg:
110 messageType = QCoreApplication.translate( 109 messageType = "Debug Message:"
111 "E5ErrorMessage", "Debug Message:")
112 elif msgType == QtWarningMsg: 110 elif msgType == QtWarningMsg:
113 messageType = QCoreApplication.translate( 111 messageType = "Warning:"
114 "E5ErrorMessage", "Warning:")
115 elif msgType == QtCriticalMsg: 112 elif msgType == QtCriticalMsg:
116 messageType = QCoreApplication.translate( 113 messageType = "Critical:"
117 "E5ErrorMessage", "Critical:")
118 elif msgType == QtFatalMsg: 114 elif msgType == QtFatalMsg:
119 messageType = QCoreApplication.translate( 115 messageType = "Fatal Error:"
120 "E5ErrorMessage", "Fatal Error:")
121 if isinstance(message, bytes): 116 if isinstance(message, bytes):
122 message = Utilities.decodeBytes(message) 117 message = Utilities.decodeBytes(message)
123 message = message.replace("\r\n", "<br/>")\ 118 message = message.replace("\r\n", "<br/>")\
124 .replace("\n", "<br/>")\ 119 .replace("\n", "<br/>")\
125 .replace("\r", "<br/>") 120 .replace("\r", "<br/>")
145 elif __origMsgHandler: 140 elif __origMsgHandler:
146 __origMsgHandler(msgType, message) 141 __origMsgHandler(msgType, message)
147 return 142 return
148 143
149 if msgType == QtDebugMsg: 144 if msgType == QtDebugMsg:
150 messageType = QCoreApplication.translate( 145 messageType = "Debug Message"
151 "E5ErrorMessage", "Debug Message")
152 elif msgType == QtWarningMsg: 146 elif msgType == QtWarningMsg:
153 messageType = QCoreApplication.translate( 147 messageType = "Warning"
154 "E5ErrorMessage", "Warning")
155 elif msgType == QtCriticalMsg: 148 elif msgType == QtCriticalMsg:
156 messageType = QCoreApplication.translate( 149 messageType = "Critical"
157 "E5ErrorMessage", "Critical")
158 elif msgType == QtFatalMsg: 150 elif msgType == QtFatalMsg:
159 messageType = QCoreApplication.translate( 151 messageType = "Fatal Error"
160 "E5ErrorMessage", "Fatal Error")
161 if isinstance(message, bytes): 152 if isinstance(message, bytes):
162 message = message.decode() 153 message = message.decode()
163 if len(args) == 2: 154 if len(args) == 2:
164 print("{0}: {1} in {2} at line {3} ({4})".format( 155 print("{0}: {1} in {2} at line {3} ({4})".format(
165 messageType, message, context.file, context.line, 156 messageType, message, context.file, context.line,
190 Module function to edit the list of message filters. 181 Module function to edit the list of message filters.
191 """ 182 """
192 if __msgHandlerDialog: 183 if __msgHandlerDialog:
193 __msgHandlerDialog.editMessageFilters() 184 __msgHandlerDialog.editMessageFilters()
194 else: 185 else:
195 print(QCoreApplication.translate( 186 print("No message handler installed.")
196 "E5ErrorMessage", "No message handler installed."))
197 187
198 188
199 def messageHandlerInstalled(): 189 def messageHandlerInstalled():
200 """ 190 """
201 Module function to check, if a message handler was installed. 191 Module function to check, if a message handler was installed.

eric ide

mercurial