6 """ |
6 """ |
7 Module implementing a specialized error message dialog. |
7 Module implementing a specialized error message dialog. |
8 """ |
8 """ |
9 |
9 |
10 |
10 |
11 from PyQt5.QtCore import qInstallMessageHandler, QtDebugMsg, QtWarningMsg, \ |
11 from PyQt5.QtCore import ( |
12 QtCriticalMsg, QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG, QSettings |
12 qInstallMessageHandler, QtDebugMsg, QtWarningMsg, QtCriticalMsg, |
|
13 QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG, QSettings |
|
14 ) |
13 from PyQt5.QtWidgets import QErrorMessage, qApp, QDialog |
15 from PyQt5.QtWidgets import QErrorMessage, qApp, QDialog |
14 |
16 |
15 import Globals |
17 import Globals |
16 import Utilities |
18 import Utilities |
17 |
19 |
120 messageType = "Fatal Error:" |
122 messageType = "Fatal Error:" |
121 if isinstance(message, bytes): |
123 if isinstance(message, bytes): |
122 message = Utilities.decodeBytes(message) |
124 message = Utilities.decodeBytes(message) |
123 if filterMessage(message): |
125 if filterMessage(message): |
124 return |
126 return |
125 message = message.replace("\r\n", "<br/>")\ |
127 message = ( |
126 .replace("\n", "<br/>")\ |
128 message.replace("\r\n", "<br/>") |
127 .replace("\r", "<br/>") |
129 .replace("\n", "<br/>") |
|
130 .replace("\r", "<br/>") |
|
131 ) |
128 if context.file is not None: |
132 if context.file is not None: |
129 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \ |
133 msg = ( |
130 "<p>Line: {3}</p><p>Function: {4}</p>".format( |
134 "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" |
131 messageType, Utilities.html_uencode(message), |
135 "<p>Line: {3}</p><p>Function: {4}</p>" |
132 context.file, context.line, context.function) |
136 ).format(messageType, Utilities.html_uencode(message), |
|
137 context.file, context.line, context.function) |
133 else: |
138 else: |
134 msg = "<p><b>{0}</b></p><p>{1}</p>".format( |
139 msg = "<p><b>{0}</b></p><p>{1}</p>".format( |
135 messageType, Utilities.html_uencode(message)) |
140 messageType, Utilities.html_uencode(message)) |
136 if QThread.currentThread() == qApp.thread(): |
141 if QThread.currentThread() == qApp.thread(): |
137 _msgHandlerDialog.showMessage(msg) |
142 _msgHandlerDialog.showMessage(msg) |