Thu, 03 Jul 2014 19:02:29 +0200
Fixed a little issue in the error message handler.
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
3160
209a07d7e401
Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3022
diff
changeset
|
3 | # Copyright (c) 2013 - 2014 Detlev Offenbach <detlev@die-offenbachs.de> |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a specialized error message dialog. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt4.QtCore import qInstallMsgHandler, QCoreApplication, QtDebugMsg, \ |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
11 | QtWarningMsg, QtCriticalMsg, QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG, \ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
12 | QSettings |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
13 | from PyQt4.QtGui import QErrorMessage, qApp, QDialog |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
15 | import Globals |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | import Utilities |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | __msgHandlerDialog = None |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | __origMsgHandler = None |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class E5ErrorMessage(QErrorMessage): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Class implementing a specialized error message dialog. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | def __init__(self, parent=None): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Constructor |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @param parent reference to the parent widget (QWidget) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | super().__init__(parent) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
35 | self.settings = QSettings( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
36 | QSettings.IniFormat, |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
37 | QSettings.UserScope, |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
38 | Globals.settingsNameOrganization, |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
39 | "eric5messagefilters") |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
40 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
41 | self.__defaultFilters = [ |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | "QFont::", |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | "QCocoaMenu::removeMenuItem", |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | "QCocoaMenu::insertNative", |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | ",type id:" |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | ] |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | def __filterMessage(self, message): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | Private method to filter messages. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | @param message message to be checked (string) |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
53 | @return flag indicating that the message should be filtered out |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
54 | (boolean) |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | """ |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
56 | for filter in self.settings.value( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
57 | "MessageFilters", self.__defaultFilters): |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | if filter in message: |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | return True |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | return False |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | def showMessage(self, message, msgType=""): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | Public method to show a message. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @param message error message to be shown (string) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | @param msgType type of the error message (string) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | if not self.__filterMessage(message): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | if msgType: |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | super().showMessage(message, msgType) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | else: |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | super().showMessage(message) |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
75 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
76 | def editMessageFilters(self): |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
77 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
78 | Public method to edit the list of message filters. |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
79 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
80 | from .E5ErrorMessageFilterDialog import E5ErrorMessageFilterDialog |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
81 | dlg = E5ErrorMessageFilterDialog( |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
82 | self.settings.value("MessageFilters", self.__defaultFilters)) |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
83 | if dlg.exec_() == QDialog.Accepted: |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
84 | filters = dlg.getFilters() |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
85 | self.settings.setValue("MessageFilters", filters) |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | def messageHandler(msgType, message): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | Module function handling messages. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | @param msgType type of the message (integer, QtMsgType) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | @param message message to be shown (bytes) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | if __msgHandlerDialog: |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
96 | try: |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
97 | if msgType == QtDebugMsg: |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
98 | messageType = QCoreApplication.translate( |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
99 | "E5ErrorMessage", "Debug Message:") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
100 | elif msgType == QtWarningMsg: |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
101 | messageType = QCoreApplication.translate( |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
102 | "E5ErrorMessage", "Warning:") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
103 | elif msgType == QtCriticalMsg: |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
104 | messageType = QCoreApplication.translate( |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
105 | "E5ErrorMessage", "Critical:") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
106 | elif msgType == QtFatalMsg: |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
107 | messageType = QCoreApplication.translate( |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
108 | "E5ErrorMessage", "Fatal Error:") |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
109 | if isinstance(message, bytes): |
3661
9f5d0a07e69b
Fixed a little issue in the error message handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
110 | message = Utilities.decodeBytes(message) |
2742
bf0560b035bf
Fixed an issue in the E5ErrorMessage dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2697
diff
changeset
|
111 | message = message.replace("\r\n", "<br/>")\ |
bf0560b035bf
Fixed an issue in the E5ErrorMessage dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2697
diff
changeset
|
112 | .replace("\n", "<br/>")\ |
bf0560b035bf
Fixed an issue in the E5ErrorMessage dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2697
diff
changeset
|
113 | .replace("\r", "<br/>") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
114 | msg = "<p><b>{0}</b></p><p>{1}</p>".format( |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
115 | messageType, Utilities.html_uencode(message)) |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
116 | if QThread.currentThread() == qApp.thread(): |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
117 | __msgHandlerDialog.showMessage(msg) |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
118 | else: |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
119 | QMetaObject.invokeMethod( |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
120 | __msgHandlerDialog, |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
121 | "showMessage", |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
122 | Qt.QueuedConnection, |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
123 | Q_ARG(str, msg)) |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
124 | return |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
125 | except RuntimeError: |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
126 | pass |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | elif __origMsgHandler: |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | __origMsgHandler(msgType, message) |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
129 | return |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
130 | |
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
131 | if msgType == QtDebugMsg: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
132 | messageType = QCoreApplication.translate( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
133 | "E5ErrorMessage", "Debug Message") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
134 | elif msgType == QtWarningMsg: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
135 | messageType = QCoreApplication.translate( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
136 | "E5ErrorMessage", "Warning") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
137 | elif msgType == QtCriticalMsg: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
138 | messageType = QCoreApplication.translate( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
139 | "E5ErrorMessage", "Critical") |
2695
13c6301cbed3
Fixed an issue in the new error message window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2683
diff
changeset
|
140 | elif msgType == QtFatalMsg: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
141 | messageType = QCoreApplication.translate( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
142 | "E5ErrorMessage", "Fatal Error") |
2696
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
143 | if isinstance(message, bytes): |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
144 | message = message.decode() |
c25359355787
Fixed another issue in the new error message dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2695
diff
changeset
|
145 | print("{0}: {1}".format(messageType, message)) |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | def qtHandler(): |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | Module function to install an E5ErrorMessage dialog as the global |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | message handler. |
2953
703452a2876f
Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
152 | |
703452a2876f
Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2770
diff
changeset
|
153 | @return reference to the message handler dialog (E5ErrorMessage) |
2683
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | global __msgHandlerDialog, __origMsgHandler |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | if __msgHandlerDialog is None: |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | # Install an E5ErrorMessage dialog as the global message handler. |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | __msgHandlerDialog = E5ErrorMessage() |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | __origMsgHandler = qInstallMsgHandler(messageHandler) |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | |
ef93fc7332a2
Added a specialized error message handler allowing to filter messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | return __msgHandlerDialog |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
163 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
164 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
165 | def editMessageFilters(): |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
166 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
167 | Module function to edit the list of message filters. |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
168 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
169 | if __msgHandlerDialog: |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
170 | __msgHandlerDialog.editMessageFilters() |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
171 | else: |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
172 | print(QCoreApplication.translate( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
173 | "E5ErrorMessage", "No message handler installed.")) |
2697
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
174 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
175 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
176 | def messageHandlerInstalled(): |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
177 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
178 | Module function to check, if a message handler was installed. |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
179 | |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
180 | @return flag indicating an installed message handler (boolean) |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
181 | """ |
1cd7fa670b05
Added a dialog to edit the list of unwanted error messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2696
diff
changeset
|
182 | return __msgHandlerDialog is not None |