Added a specialized error message handler allowing to filter messages.

Fri, 31 May 2013 13:33:57 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 31 May 2013 13:33:57 +0200
changeset 2683
ef93fc7332a2
parent 2681
e793289c4362
child 2685
55568c5ddfcb

Added a specialized error message handler allowing to filter messages.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.E5Gui.E5ErrorMessage.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Toolbox.Startup.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.E5Gui.html file | annotate | diff | comparison | revisions
E5Gui/E5ErrorMessage.py file | annotate | diff | comparison | revisions
Toolbox/Startup.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
eric5.py file | annotate | diff | comparison | revisions
eric5_webbrowser.py file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Fri May 31 10:47:48 2013 +0200
+++ b/APIs/Python3/eric5.api	Fri May 31 13:33:57 2013 +0200
@@ -1208,6 +1208,10 @@
 eric5.E5Gui.E5Completers.E5DirCompleter?1(parent=None, completionMode=QCompleter.PopupCompletion, showHidden=False)
 eric5.E5Gui.E5Completers.E5FileCompleter?1(parent=None, completionMode=QCompleter.PopupCompletion, showHidden=False)
 eric5.E5Gui.E5Completers.E5StringListCompleter?1(parent=None, strings=[], completionMode=QCompleter.PopupCompletion)
+eric5.E5Gui.E5ErrorMessage.E5ErrorMessage.showMessage?4(message, msgType="")
+eric5.E5Gui.E5ErrorMessage.E5ErrorMessage?1(parent=None)
+eric5.E5Gui.E5ErrorMessage.messageHandler?4(msgType, message)
+eric5.E5Gui.E5ErrorMessage.qtHandler?4()
 eric5.E5Gui.E5FileDialog.DontConfirmOverwrite?7
 eric5.E5Gui.E5FileDialog.DontResolveSymlinks?7
 eric5.E5Gui.E5FileDialog.DontUseNativeDialog?7
@@ -7343,7 +7347,7 @@
 eric5.Toolbox.Startup.loadTranslators?4(qtTransDir, app, translationFiles=())
 eric5.Toolbox.Startup.loaded_translators?7
 eric5.Toolbox.Startup.setLibraryPaths?4()
-eric5.Toolbox.Startup.simpleAppStartup?4(argv, appinfo, mwFactory, quitOnLastWindowClosed=True, app=None, raiseIt=True)
+eric5.Toolbox.Startup.simpleAppStartup?4(argv, appinfo, mwFactory, quitOnLastWindowClosed=True, app=None, raiseIt=True, installErrorHandler=False)
 eric5.Toolbox.Startup.usage?4(appinfo, optlen=12)
 eric5.Toolbox.Startup.version?4(appinfo)
 eric5.Tools.TRPreviewer.TRPreviewer.closeEvent?4(event)
--- a/APIs/Python3/eric5.bas	Fri May 31 10:47:48 2013 +0200
+++ b/APIs/Python3/eric5.bas	Fri May 31 13:33:57 2013 +0200
@@ -138,6 +138,7 @@
 E5ComboBox QComboBox
 E5DirCompleter QCompleter
 E5DnDTabBar E5WheelTabBar
+E5ErrorMessage QErrorMessage
 E5FileCompleter QCompleter
 E5Ftp ftplib.FTP
 E5FtpProxyError ftplib.Error
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Fri May 31 10:47:48 2013 +0200
+++ b/Documentation/Help/source.qhp	Fri May 31 13:33:57 2013 +0200
@@ -119,6 +119,7 @@
             <section title="eric5.E5Gui.E5ClickableLabel" ref="eric5.E5Gui.E5ClickableLabel.html" />
             <section title="eric5.E5Gui.E5ComboBox" ref="eric5.E5Gui.E5ComboBox.html" />
             <section title="eric5.E5Gui.E5Completers" ref="eric5.E5Gui.E5Completers.html" />
+            <section title="eric5.E5Gui.E5ErrorMessage" ref="eric5.E5Gui.E5ErrorMessage.html" />
             <section title="eric5.E5Gui.E5FileDialog" ref="eric5.E5Gui.E5FileDialog.html" />
             <section title="eric5.E5Gui.E5Led" ref="eric5.E5Gui.E5Led.html" />
             <section title="eric5.E5Gui.E5LineEdit" ref="eric5.E5Gui.E5LineEdit.html" />
@@ -3381,6 +3382,11 @@
       <keyword name="E5DnDTabBar.dropEvent" id="E5DnDTabBar.dropEvent" ref="eric5.E5Gui.E5TabWidget.html#E5DnDTabBar.dropEvent" />
       <keyword name="E5DnDTabBar.mouseMoveEvent" id="E5DnDTabBar.mouseMoveEvent" ref="eric5.E5Gui.E5TabWidget.html#E5DnDTabBar.mouseMoveEvent" />
       <keyword name="E5DnDTabBar.mousePressEvent" id="E5DnDTabBar.mousePressEvent" ref="eric5.E5Gui.E5TabWidget.html#E5DnDTabBar.mousePressEvent" />
+      <keyword name="E5ErrorMessage" id="E5ErrorMessage" ref="eric5.E5Gui.E5ErrorMessage.html#E5ErrorMessage" />
+      <keyword name="E5ErrorMessage (Constructor)" id="E5ErrorMessage (Constructor)" ref="eric5.E5Gui.E5ErrorMessage.html#E5ErrorMessage.__init__" />
+      <keyword name="E5ErrorMessage (Module)" id="E5ErrorMessage (Module)" ref="eric5.E5Gui.E5ErrorMessage.html" />
+      <keyword name="E5ErrorMessage.__filterMessage" id="E5ErrorMessage.__filterMessage" ref="eric5.E5Gui.E5ErrorMessage.html#E5ErrorMessage.__filterMessage" />
+      <keyword name="E5ErrorMessage.showMessage" id="E5ErrorMessage.showMessage" ref="eric5.E5Gui.E5ErrorMessage.html#E5ErrorMessage.showMessage" />
       <keyword name="E5FileCompleter" id="E5FileCompleter" ref="eric5.E5Gui.E5Completers.html#E5FileCompleter" />
       <keyword name="E5FileCompleter (Constructor)" id="E5FileCompleter (Constructor)" ref="eric5.E5Gui.E5Completers.html#E5FileCompleter.__init__" />
       <keyword name="E5FileDialog (Module)" id="E5FileDialog (Module)" ref="eric5.E5Gui.E5FileDialog.html" />
@@ -12681,6 +12687,7 @@
       <keyword name="maximum_line_length" id="maximum_line_length" ref="eric5.UtilitiesPython2.pep8.html#maximum_line_length" />
       <keyword name="message" id="message" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#message" />
       <keyword name="message" id="message" ref="eric5.UtilitiesPython2.pep8.html#message" />
+      <keyword name="messageHandler" id="messageHandler" ref="eric5.E5Gui.E5ErrorMessage.html#messageHandler" />
       <keyword name="messages (Module)" id="messages (Module)" ref="eric5.Utilities.py3flakes.messages.html" />
       <keyword name="messages (Module)" id="messages (Module)" ref="eric5.UtilitiesPython2.py2flakes.messages.html" />
       <keyword name="missing_newline" id="missing_newline" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#missing_newline" />
@@ -12748,6 +12755,7 @@
       <keyword name="python_3000_not_equal" id="python_3000_not_equal" ref="eric5.UtilitiesPython2.pep8.html#python_3000_not_equal" />
       <keyword name="python_3000_raise_comma" id="python_3000_raise_comma" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#python_3000_raise_comma" />
       <keyword name="python_3000_raise_comma" id="python_3000_raise_comma" ref="eric5.UtilitiesPython2.pep8.html#python_3000_raise_comma" />
+      <keyword name="qtHandler" id="qtHandler" ref="eric5.E5Gui.E5ErrorMessage.html#qtHandler" />
       <keyword name="question" id="question" ref="eric5.E5Gui.E5MessageBox.html#question" />
       <keyword name="queues (Module)" id="queues (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.QueuesExtension.queues.html" />
       <keyword name="rbclbr (Module)" id="rbclbr (Module)" ref="eric5.Utilities.ClassBrowsers.rbclbr.html" />
@@ -13012,6 +13020,7 @@
       <file>eric5.E5Gui.E5ClickableLabel.html</file>
       <file>eric5.E5Gui.E5ComboBox.html</file>
       <file>eric5.E5Gui.E5Completers.html</file>
+      <file>eric5.E5Gui.E5ErrorMessage.html</file>
       <file>eric5.E5Gui.E5FileDialog.html</file>
       <file>eric5.E5Gui.E5Led.html</file>
       <file>eric5.E5Gui.E5LineEdit.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.E5Gui.E5ErrorMessage.html	Fri May 31 13:33:57 2013 +0200
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric5.E5Gui.E5ErrorMessage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.E5Gui.E5ErrorMessage</h1>
+<p>
+Module implementing a specialized error message dialog.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>__msgHandlerDialog</td></tr><tr><td>__origMsgHandler</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#E5ErrorMessage">E5ErrorMessage</a></td>
+<td>Class implementing a specialized error message dialog.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#messageHandler">messageHandler</a></td>
+<td>Module function handling messages.</td>
+</tr><tr>
+<td><a href="#qtHandler">qtHandler</a></td>
+<td>Module function to install an E5ErrorMessage dialog as the global message handler.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="E5ErrorMessage" ID="E5ErrorMessage"></a>
+<h2>E5ErrorMessage</h2>
+<p>
+    Class implementing a specialized error message dialog.
+</p>
+<h3>Derived from</h3>
+QErrorMessage
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#E5ErrorMessage.__init__">E5ErrorMessage</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#E5ErrorMessage.__filterMessage">__filterMessage</a></td>
+<td>Private method to filter messages.</td>
+</tr><tr>
+<td><a href="#E5ErrorMessage.showMessage">showMessage</a></td>
+<td>Public method to show a message.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="E5ErrorMessage.__init__" ID="E5ErrorMessage.__init__"></a>
+<h4>E5ErrorMessage (Constructor)</h4>
+<b>E5ErrorMessage</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="E5ErrorMessage.__filterMessage" ID="E5ErrorMessage.__filterMessage"></a>
+<h4>E5ErrorMessage.__filterMessage</h4>
+<b>__filterMessage</b>(<i>message</i>)
+<p>
+        Private method to filter messages.
+</p><dl>
+<dt><i>message</i></dt>
+<dd>
+message to be checked (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating that the message should be filtered out (boolean)
+</dd>
+</dl><a NAME="E5ErrorMessage.showMessage" ID="E5ErrorMessage.showMessage"></a>
+<h4>E5ErrorMessage.showMessage</h4>
+<b>showMessage</b>(<i>message, msgType=""</i>)
+<p>
+        Public method to show a message.
+</p><dl>
+<dt><i>message</i></dt>
+<dd>
+error message to be shown (string)
+</dd><dt><i>msgType</i></dt>
+<dd>
+type of the error message (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="messageHandler" ID="messageHandler"></a>
+<h2>messageHandler</h2>
+<b>messageHandler</b>(<i>msgType, message</i>)
+<p>
+    Module function handling messages.
+</p><dl>
+<dt><i>msgType</i></dt>
+<dd>
+type of the message (integer, QtMsgType)
+</dd><dt><i>message</i></dt>
+<dd>
+message to be shown (bytes)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="qtHandler" ID="qtHandler"></a>
+<h2>qtHandler</h2>
+<b>qtHandler</b>(<i></i>)
+<p>
+    Module function to install an E5ErrorMessage dialog as the global
+    message handler.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Toolbox.Startup.html	Fri May 31 10:47:48 2013 +0200
+++ b/Documentation/Source/eric5.Toolbox.Startup.html	Fri May 31 13:33:57 2013 +0200
@@ -147,7 +147,7 @@
 <hr /><hr />
 <a NAME="simpleAppStartup" ID="simpleAppStartup"></a>
 <h2>simpleAppStartup</h2>
-<b>simpleAppStartup</b>(<i>argv, appinfo, mwFactory, quitOnLastWindowClosed=True, app=None, raiseIt=True</i>)
+<b>simpleAppStartup</b>(<i>argv, appinfo, mwFactory, quitOnLastWindowClosed=True, app=None, raiseIt=True, installErrorHandler=False</i>)
 <p>
     Module function to start up an application that doesn't need a specialized start up.
 </p><p>
@@ -177,6 +177,10 @@
 </dd><dt><i>raiseIt=</i></dt>
 <dd>
 flag indicating to raise the generated application window (boolean)
+</dd><dt><i>installErrorHandler=</i></dt>
+<dd>
+flag indicating to install an error
+        handler dialog (boolean)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/index-eric5.E5Gui.html	Fri May 31 10:47:48 2013 +0200
+++ b/Documentation/Source/index-eric5.E5Gui.html	Fri May 31 13:33:57 2013 +0200
@@ -45,6 +45,9 @@
 <td><a href="eric5.E5Gui.E5Completers.html">E5Completers</a></td>
 <td>Module implementing various kinds of completers.</td>
 </tr><tr>
+<td><a href="eric5.E5Gui.E5ErrorMessage.html">E5ErrorMessage</a></td>
+<td>Module implementing a specialized error message dialog.</td>
+</tr><tr>
 <td><a href="eric5.E5Gui.E5FileDialog.html">E5FileDialog</a></td>
 <td>Module implementing alternative functions for the QFileDialog static methods to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.</td>
 </tr><tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Gui/E5ErrorMessage.py	Fri May 31 13:33:57 2013 +0200
@@ -0,0 +1,120 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a specialized error message dialog.
+"""
+
+from PyQt4.QtCore import qInstallMsgHandler, QCoreApplication, QtDebugMsg, \
+    QtWarningMsg, QtCriticalMsg, QtFatalMsg, QThread, QMetaObject, Qt, Q_ARG
+from PyQt4.QtGui import QErrorMessage, qApp
+
+import Utilities
+
+
+__msgHandlerDialog = None
+__origMsgHandler = None
+
+
+class E5ErrorMessage(QErrorMessage):
+    """
+    Class implementing a specialized error message dialog.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        # TODO: make this list configurable by the user
+        self.__filters = [
+            "QFont::",
+            "QCocoaMenu::removeMenuItem",
+            "QCocoaMenu::insertNative",
+            ",type id:"
+        ]
+    
+    def __filterMessage(self, message):
+        """
+        Private method to filter messages.
+        
+        @param message message to be checked (string)
+        @return flag indicating that the message should be filtered out (boolean)
+        """
+        for filter in self.__filters:
+            if filter in message:
+                return True
+        
+        return False
+    
+    def showMessage(self, message, msgType=""):
+        """
+        Public method to show a message.
+        
+        @param message error message to be shown (string)
+        @param msgType type of the error message (string)
+        """
+        if not self.__filterMessage(message):
+            if msgType:
+                super().showMessage(message, msgType)
+            else:
+                super().showMessage(message)
+
+
+def messageHandler(msgType, message):
+    """
+    Module function handling messages.
+    
+    @param msgType type of the message (integer, QtMsgType)
+    @param message message to be shown (bytes)
+    """
+    if __msgHandlerDialog:
+        if msgType == QtDebugMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Debug Message:")
+        elif msgType == QtWarningMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Warning:")
+        elif msgType == QtCriticalMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Critical:")
+        elif msgType == QtFatalMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Fatal Error:")
+        msg = "<p><b>{0}</b></p><p>{1}</p>".format(
+            messageType, Utilities.html_uencode(message.decode()))
+        if QThread.currentThread() == qApp.thread():
+            __msgHandlerDialog.showMessage(msg)
+        else:
+            QMetaObject.invokeMethod(
+                __msgHandlerDialog,
+                "showMessage",
+                Qt.QueuedConnection,
+                Q_ARG(str, msg))
+    elif __origMsgHandler:
+        __origMsgHandler(msgType, message)
+    else:
+        if msgType == QtDebugMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Debug Message")
+        elif msgType == QtWarningMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Warning")
+        elif msgType == QtCriticalMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Critical")
+        elif msgType == QtFatalMsg:
+            messageType = QCoreApplication.translate("E5ErrorMessage", "Fatal Error")
+        print("{0}: {1}".format(messageType, message.decode()))
+
+
+def qtHandler():
+    """
+    Module function to install an E5ErrorMessage dialog as the global
+    message handler.
+    """
+    global __msgHandlerDialog, __origMsgHandler
+    
+    if __msgHandlerDialog is None:
+        # Install an E5ErrorMessage dialog as the global message handler.
+        __msgHandlerDialog = E5ErrorMessage()
+        __origMsgHandler = qInstallMsgHandler(messageHandler)
+    
+    return __msgHandlerDialog
--- a/Toolbox/Startup.py	Fri May 31 10:47:48 2013 +0200
+++ b/Toolbox/Startup.py	Fri May 31 13:33:57 2013 +0200
@@ -185,7 +185,7 @@
 
 
 def simpleAppStartup(argv, appinfo, mwFactory, quitOnLastWindowClosed=True,
-    app=None, raiseIt=True):
+    app=None, raiseIt=True, installErrorHandler=False):
     """
     Module function to start up an application that doesn't need a specialized start up.
     
@@ -203,6 +203,8 @@
         if the last window was closed (boolean)
     @keyparam app reference to the application object (QApplication or None)
     @keyparam raiseIt flag indicating to raise the generated application window (boolean)
+    @keyparam installErrorHandler flag indicating to install an error
+        handler dialog (boolean)
     """
     handleArgs(argv, appinfo)
     if app is None:
@@ -228,4 +230,10 @@
     if raiseIt:
         w.raise_()
     
+    if installErrorHandler:
+        # generate a graphical error handler
+        from E5Gui import E5ErrorMessage
+        eMsg = E5ErrorMessage.qtHandler()
+        eMsg.setMinimumSize(600, 400)
+    
     return app.exec_()
--- a/changelog	Fri May 31 10:47:48 2013 +0200
+++ b/changelog	Fri May 31 13:33:57 2013 +0200
@@ -11,6 +11,7 @@
      if the QtHelp module could be imported
   -- changed code to be compatible with latest PyQt4 Windows installers
   -- introduced a configurable delay timer to get smoother sidebars behavior
+  -- added a specialized error message handler allowing to filter messages
 - Debugger
   -- Debug Viewer
      --- added a viewer for the call stack leading to the current line
--- a/eric5.e4p	Fri May 31 10:47:48 2013 +0200
+++ b/eric5.e4p	Fri May 31 13:33:57 2013 +0200
@@ -1077,6 +1077,7 @@
     <Source>Examples/modpython.py</Source>
     <Source>Examples/modpython_dbg.py</Source>
     <Source>Examples/rhallo.py</Source>
+    <Source>E5Gui/E5ErrorMessage.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/eric5.py	Fri May 31 10:47:48 2013 +0200
+++ b/eric5.py	Fri May 31 13:33:57 2013 +0200
@@ -19,7 +19,7 @@
 import logging
 
 from PyQt4.QtCore import qWarning, QLibraryInfo, QTimer
-from PyQt4.QtGui import QApplication, QErrorMessage
+from PyQt4.QtGui import QApplication
 
 # some global variables needed to start the application
 args = None
@@ -253,7 +253,8 @@
         QTimer.singleShot(0, uiStartUp)
         
         # generate a graphical error handler
-        eMsg = QErrorMessage.qtHandler()
+        from E5Gui import E5ErrorMessage
+        eMsg = E5ErrorMessage.qtHandler()
         eMsg.setMinimumSize(600, 400)
         
         # start the event loop
--- a/eric5_webbrowser.py	Fri May 31 10:47:48 2013 +0200
+++ b/eric5_webbrowser.py	Fri May 31 13:33:57 2013 +0200
@@ -78,7 +78,8 @@
     
     res = Startup.simpleAppStartup(sys.argv,
                                    appinfo,
-                                   createMainWidget)
+                                   createMainWidget,
+                                   installErrorHandler=True)
     sys.exit(res)
 
 if __name__ == '__main__':
--- a/i18n/eric5_cs.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_cs.ts	Fri May 31 13:33:57 2013 +0200
@@ -6892,6 +6892,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Varování</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">Kritický</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished">Závažná chyba</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -52634,7 +52677,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation></translation>
     </message>
@@ -52839,12 +52882,12 @@
         <translation>Příprava soupravy testu</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>Běží</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Zobrazit zdroj</translation>
     </message>
@@ -52859,27 +52902,27 @@
         <translation>Python3 soubory ({1});;Python2 soubory ({0});;Všechny soubory (*)</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze spustit test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation>Doběhl {0} test za {1:.3f}s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation>Doběhlo {0} testů za {1:.3f}s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Selhalo: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Chyby: {0}</translation>
     </message>
@@ -52914,17 +52957,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_de.ts	Fri May 31 13:33:57 2013 +0200
@@ -6580,6 +6580,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation>Debug Nachricht:</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation>Warnung:</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation>Kritischer Fehler:</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation>Fataler Fehler:</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation>Warnung</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation>Kritischer Fehler</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation>Fataler Fehler</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation>Debug Nachricht</translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -50452,7 +50495,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Modultest</translation>
     </message>
@@ -50467,12 +50510,12 @@
         <translation>Bereite Modultest vor</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Mißerfolge: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Fehler: {0}</translation>
     </message>
@@ -50487,12 +50530,12 @@
         <translation>^Fehler: </translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>Führe aus</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Modultest &lt;b&gt;{0}&lt;/b&gt; kann nicht ausgeführt werden.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</translation>
     </message>
@@ -50680,7 +50723,7 @@
         <translation>&lt;b&gt;Modultest anhalten&lt;/b&gt;&lt;p&gt;Dieser Knopf hält den laufenden Modultest an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Zeige Quelltext</translation>
     </message>
@@ -50695,12 +50738,12 @@
         <translation>Python3 Dateien ({1});;Python2 Dateien ({0});;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation>{0} Test in {1:.3f}s ausgeführt</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation>{0} Tests in {1:.3f}s ausgeführt</translation>
     </message>
@@ -50735,17 +50778,17 @@
         <translation>Anzahl der Tests, die unerwartet erfolgreich waren</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation>   Übersprungen: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation>    Erwarteter Mißerfolg</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation>    Unerwarteter Erfolg</translation>
     </message>
--- a/i18n/eric5_en.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_en.ts	Fri May 31 13:33:57 2013 +0200
@@ -6518,6 +6518,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -49992,7 +50035,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation type="unfinished"></translation>
     </message>
@@ -50203,37 +50246,37 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation type="unfinished"></translation>
     </message>
@@ -50268,17 +50311,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_es.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_es.ts	Fri May 31 13:33:57 2013 +0200
@@ -6578,6 +6578,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Advertencia</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -50411,7 +50454,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Test Unitario</translation>
     </message>
@@ -50618,12 +50661,12 @@
         <translation>Preparando Suite de Tests</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>Ejecutando</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Mostrar código fuente</translation>
     </message>
@@ -50638,27 +50681,27 @@
         <translation>Archivos Python3 ({1});;Archivos Python2 ({0});;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Imposible ejecutar el test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation>Se ha ejecutado {0} test en {1:.3f}s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation>Se han ejecutado {0} tests en {1:.3f}s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Fallido: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Error: {0}</translation>
     </message>
@@ -50693,17 +50736,17 @@
         <translation>Número de tests con éxito inesperado</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation>    Ignorados: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation>    Fallo Esperado</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation>    Éxito Inesperado</translation>
     </message>
--- a/i18n/eric5_fr.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_fr.ts	Fri May 31 13:33:57 2013 +0200
@@ -7421,6 +7421,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Warning</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">Critique</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished">Erreur critique</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -55815,7 +55858,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Tests unitaires</translation>
     </message>
@@ -55845,7 +55888,7 @@
         <translation>Préparation de Testsuite</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>En cours d&apos;execution</translation>
     </message>
@@ -56060,7 +56103,7 @@
         <translation>&lt;b&gt;Stopper le test&lt;/b&gt;&lt;p&gt;Stoppe le test unittest en cours.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Afficher les sources</translation>
     </message>
@@ -56075,27 +56118,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56130,17 +56173,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_it.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_it.ts	Fri May 31 13:33:57 2013 +0200
@@ -6786,6 +6786,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Attenzione</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">Critico</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -52792,7 +52835,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Unittest</translation>
     </message>
@@ -52817,7 +52860,7 @@
         <translation>Preparazione Testsuite</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>In esecuzione</translation>
     </message>
@@ -53009,7 +53052,7 @@
         <translation>&lt;b&gt;Ferma test&lt;/b&gt;&lt;p&gt;Questo pulsante ferma una unitttest in esecuzione.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Mostra sorgenti</translation>
     </message>
@@ -53024,27 +53067,27 @@
         <translation>File Python3 ({0});;File Python1({1});;Tutti i File (*)</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Impossibile eseguire test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation>Eseguiti {0} test in {1:.3f} s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation>Eseguiti {0} test in {1:.3f} s</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Fallimenti: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Errori: {0}</translation>
     </message>
@@ -53079,17 +53122,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_ru.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_ru.ts	Fri May 31 13:33:57 2013 +0200
@@ -6843,6 +6843,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Предупреждение</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">Ошибка</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -52899,7 +52942,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Unittest</translation>
     </message>
@@ -52914,12 +52957,12 @@
         <translation>Подготовка пакета тестов</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Неудача: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Ошибка: {0}</translation>
     </message>
@@ -52934,12 +52977,12 @@
         <translation>^Ошибка:</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>Выполяется</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить тест&lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</translation>
     </message>
@@ -53133,7 +53176,7 @@
         <translation>&lt;b&gt;Остановить&lt;/b&gt;&lt;p&gt;Остановить выполняющийся пакет тестов.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Показать исходник</translation>
     </message>
@@ -53148,12 +53191,12 @@
         <translation>Python3 файлы ({1});;Python2 файлы ({0});;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation>Тест {0} пройден за {1:.3f} секунд</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation>{0} Тестов пройдено за {1:.3f} секунд</translation>
     </message>
@@ -53188,17 +53231,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_tr.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_tr.ts	Fri May 31 13:33:57 2013 +0200
@@ -6900,6 +6900,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">Dikkat</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">Kritik</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished">Ölümcül Hata</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -52200,7 +52243,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>Birimtest</translation>
     </message>
@@ -52416,37 +52459,37 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>Çalışıyor</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation>Başarısızlık:{0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation>Hata: {0}</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>Kaynağı Göster</translation>
     </message>
@@ -52481,17 +52524,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_zh_CN.GB2312.ts	Fri May 31 10:47:48 2013 +0200
+++ b/i18n/eric5_zh_CN.GB2312.ts	Fri May 31 13:33:57 2013 +0200
@@ -7374,6 +7374,49 @@
     </message>
 </context>
 <context>
+    <name>E5ErrorMessage</name>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="77"/>
+        <source>Debug Message:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="79"/>
+        <source>Warning:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="81"/>
+        <source>Critical:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="83"/>
+        <source>Fatal Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="100"/>
+        <source>Warning</source>
+        <translation type="unfinished">警告</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="102"/>
+        <source>Critical</source>
+        <translation type="unfinished">危险</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="104"/>
+        <source>Fatal Error</source>
+        <translation type="unfinished">严重错误</translation>
+    </message>
+    <message>
+        <location filename="E5Gui/E5ErrorMessage.py" line="98"/>
+        <source>Debug Message</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>E5GraphicsView</name>
     <message>
         <location filename="E5Graphics/E5GraphicsView.py" line="54"/>
@@ -55754,7 +55797,7 @@
 <context>
     <name>UnittestDialog</name>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>Unittest</source>
         <translation>单元测试</translation>
     </message>
@@ -55975,7 +56018,7 @@
         <translation type="obsolete">&lt;p&gt;无法运行测试 &lt;b&gt;%1&lt;/b&gt; 。&lt;br&gt;%2&lt;br&gt;%3&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="439"/>
+        <location filename="PyUnit/UnittestDialog.py" line="441"/>
         <source>Running</source>
         <translation>正在运行</translation>
     </message>
@@ -56000,7 +56043,7 @@
         <translation type="obsolete">错误: %1</translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="601"/>
+        <location filename="PyUnit/UnittestDialog.py" line="603"/>
         <source>Show Source</source>
         <translation>显示源代码</translation>
     </message>
@@ -56015,27 +56058,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="374"/>
+        <location filename="PyUnit/UnittestDialog.py" line="376"/>
         <source>&lt;p&gt;Unable to run test &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;{1}&lt;br&gt;{2}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="463"/>
+        <location filename="PyUnit/UnittestDialog.py" line="465"/>
         <source>Ran {0} test in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="466"/>
+        <location filename="PyUnit/UnittestDialog.py" line="468"/>
         <source>Ran {0} tests in {1:.3f}s</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="482"/>
+        <location filename="PyUnit/UnittestDialog.py" line="484"/>
         <source>Failure: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="497"/>
+        <location filename="PyUnit/UnittestDialog.py" line="499"/>
         <source>Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56070,17 +56113,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="512"/>
+        <location filename="PyUnit/UnittestDialog.py" line="514"/>
         <source>    Skipped: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="526"/>
+        <location filename="PyUnit/UnittestDialog.py" line="528"/>
         <source>    Expected Failure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PyUnit/UnittestDialog.py" line="540"/>
+        <location filename="PyUnit/UnittestDialog.py" line="542"/>
         <source>    Unexpected Success</source>
         <translation type="unfinished"></translation>
     </message>

eric ide

mercurial