E5Gui/E5ErrorMessage.py

changeset 3776
ccb6eacb50e5
parent 3687
68952a98e7b2
child 3989
2d9778d49159
equal deleted inserted replaced
3774:285e5aa860a0 3776:ccb6eacb50e5
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

eric ide

mercurial