Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.

Mon, 03 Jan 2011 17:10:45 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 03 Jan 2011 17:10:45 +0100
changeset 802
e8882d16384c
parent 801
16f9875e278b
child 803
86f10944dc83

Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.

APIs/Python3/eric5.api 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.Preferences.ConfigurationPages.HelpDocumentationPage.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.QScintilla.Lexers.LexerPython.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.QScintilla.Shell.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.UI.UserInterface.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Utilities.__init__.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Utilities.py3flakes.checker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.UtilitiesPython2.Py2SyntaxChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.UtilitiesPython2.py2flakes.checker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.UtilitiesPython2.py2flakes.messages.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.UtilitiesPython2.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.UtilitiesPython2.py2flakes.html file | annotate | diff | comparison | revisions
Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py file | annotate | diff | comparison | revisions
Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpDocumentationPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpDocumentationPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ProjectPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ProjectPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/Py3FlakesPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/PythonPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
Project/ProjectSourcesBrowser.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
QScintilla/Lexers/LexerPython.py file | annotate | diff | comparison | revisions
QScintilla/Lexers/__init__.py file | annotate | diff | comparison | revisions
QScintilla/Shell.py file | annotate | diff | comparison | revisions
QScintilla/TypingCompleters/__init__.py file | annotate | diff | comparison | revisions
UI/Browser.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
UtilitiesPython2/Py2SyntaxChecker.py file | annotate | diff | comparison | revisions
UtilitiesPython2/py2flakes/__init__.py file | annotate | diff | comparison | revisions
UtilitiesPython2/py2flakes/checker.py file | annotate | diff | comparison | revisions
UtilitiesPython2/py2flakes/messages.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p 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	Sun Jan 02 12:01:37 2011 +0100
+++ b/APIs/Python3/eric5.api	Mon Jan 03 17:10:45 2011 +0100
@@ -4085,6 +4085,7 @@
 eric5.Preferences.ConfigurationPages.HelpAppearancePage.create?4(dlg)
 eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.on_pyqt4DocDirButton_clicked?4()
 eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.on_pysideDocDirButton_clicked?4()
+eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.on_python2DocDirButton_clicked?4()
 eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.on_pythonDocDirButton_clicked?4()
 eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.on_qt4DocDirButton_clicked?4()
 eric5.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.save?4()
@@ -5224,7 +5225,8 @@
 eric5.QScintilla.Lexers.LexerPython.LexerPython.initProperties?4()
 eric5.QScintilla.Lexers.LexerPython.LexerPython.isCommentStyle?4(style)
 eric5.QScintilla.Lexers.LexerPython.LexerPython.isStringStyle?4(style)
-eric5.QScintilla.Lexers.LexerPython.LexerPython?1(parent=None)
+eric5.QScintilla.Lexers.LexerPython.LexerPython.language?4()
+eric5.QScintilla.Lexers.LexerPython.LexerPython?1(variant = "", parent = None)
 eric5.QScintilla.Lexers.LexerRegistry?7
 eric5.QScintilla.Lexers.LexerRuby.LexerRuby.autoCompletionWordSeparators?4()
 eric5.QScintilla.Lexers.LexerRuby.LexerRuby.defaultKeywords?4(kwSet)
@@ -6145,7 +6147,7 @@
 eric5.Utilities.prepareQtMacBundle?4(toolname, version, args)
 eric5.Utilities.pwDecode?4(epw)
 eric5.Utilities.pwEncode?4(pw)
-eric5.Utilities.py2compile?4(file)
+eric5.Utilities.py2compile?4(file, checkFlakes = False)
 eric5.Utilities.py3flakes.checker.Binding?1(name, source)
 eric5.Utilities.py3flakes.checker.Checker.ASSIGN?4(node)
 eric5.Utilities.py3flakes.checker.Checker.ATTRIBUTES?7
@@ -6248,7 +6250,84 @@
 eric5.UtilitiesPython2.Py2SyntaxChecker.coding_regexps?7
 eric5.UtilitiesPython2.Py2SyntaxChecker.compile?4(file)
 eric5.UtilitiesPython2.Py2SyntaxChecker.decode?4(text)
+eric5.UtilitiesPython2.Py2SyntaxChecker.flakesCheck?4(fileName, codestring, ignoreStarImportWarnings)
 eric5.UtilitiesPython2.Py2SyntaxChecker.get_coding?4(text)
+eric5.UtilitiesPython2.py2flakes.checker.Binding?1(name, source)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.ASSIGN?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.ASSLIST?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.ASSNAME?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.AUGASSIGN?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.CLASS?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.CONST?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.FLOORDIV?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.FOR?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.FROM?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.FUNCTION?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.GENEXPRINNER?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.GLOBAL?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.IFEXP?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.IMPORT?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.LAMBDA?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.LISTCOMP?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.NAME?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.RETURN?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.RIGHTSHIFT?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.STMT?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.SUBSCRIPT?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.WITH?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker._runDeferred?5(deferred)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.addArgs?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.addBinding?4(lineno, value, reportRedef=True)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.checkUnusedAssignments?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.check_dead_scopes?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.collectLoopVars?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.deferAssignment?4(callable)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.deferFunction?4(callable)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.handleChildren?4(tree)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.handleNode?4(node, parent)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.ignore?4(node)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.nodeDepth?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.popScope?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.pushClassScope?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.pushFunctionScope?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.report?4(messageClass, *args, **kwargs)
+eric5.UtilitiesPython2.py2flakes.checker.Checker.runFunction?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.scope?4()
+eric5.UtilitiesPython2.py2flakes.checker.Checker.scope?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker.traceTree?7
+eric5.UtilitiesPython2.py2flakes.checker.Checker?1(module, filename='(none)')
+eric5.UtilitiesPython2.py2flakes.checker.ExportBinding.names?4()
+eric5.UtilitiesPython2.py2flakes.checker.FunctionScope?1()
+eric5.UtilitiesPython2.py2flakes.checker.Importation?1(name, source)
+eric5.UtilitiesPython2.py2flakes.checker.Scope.importStarred?7
+eric5.UtilitiesPython2.py2flakes.checker.Scope?1()
+eric5.UtilitiesPython2.py2flakes.checker._MAGIC_GLOBALS?8
+eric5.UtilitiesPython2.py2flakes.messages.DuplicateArgument.message?7
+eric5.UtilitiesPython2.py2flakes.messages.DuplicateArgument?1(filename, lineno, name)
+eric5.UtilitiesPython2.py2flakes.messages.ImportShadowedByLoopVar.message?7
+eric5.UtilitiesPython2.py2flakes.messages.ImportShadowedByLoopVar?1(filename, lineno, name, orig_lineno)
+eric5.UtilitiesPython2.py2flakes.messages.ImportStarUsed.message?7
+eric5.UtilitiesPython2.py2flakes.messages.ImportStarUsed?1(filename, lineno, modname)
+eric5.UtilitiesPython2.py2flakes.messages.LateFutureImport.message?7
+eric5.UtilitiesPython2.py2flakes.messages.LateFutureImport?1(filename, lineno, names)
+eric5.UtilitiesPython2.py2flakes.messages.Message.getMessageData?4()
+eric5.UtilitiesPython2.py2flakes.messages.Message.message?7
+eric5.UtilitiesPython2.py2flakes.messages.Message.message_args?7
+eric5.UtilitiesPython2.py2flakes.messages.Message?1(filename, lineno)
+eric5.UtilitiesPython2.py2flakes.messages.RedefinedFunction.message?7
+eric5.UtilitiesPython2.py2flakes.messages.RedefinedFunction?1(filename, lineno, name, orig_lineno)
+eric5.UtilitiesPython2.py2flakes.messages.RedefinedWhileUnused.message?7
+eric5.UtilitiesPython2.py2flakes.messages.RedefinedWhileUnused?1(filename, lineno, name, orig_lineno)
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedExport.message?7
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedExport?1(filename, lineno, name)
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedLocal.message?7
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedLocal?1(filename, lineno, name, orig_lineno)
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedName.message?7
+eric5.UtilitiesPython2.py2flakes.messages.UndefinedName?1(filename, lineno, name)
+eric5.UtilitiesPython2.py2flakes.messages.UnusedImport.message?7
+eric5.UtilitiesPython2.py2flakes.messages.UnusedImport?1(filename, lineno, name)
+eric5.UtilitiesPython2.py2flakes.messages.UnusedVariable.message?7
+eric5.UtilitiesPython2.py2flakes.messages.UnusedVariable?1(filename, lineno, names)
 eric5.VCS.CommandOptionsDialog.vcsCommandOptionsDialog.getOptions?4()
 eric5.VCS.CommandOptionsDialog.vcsCommandOptionsDialog?1(vcs, parent=None)
 eric5.VCS.ProjectBrowserHelper.VcsProjectBrowserHelper._VCSAdd?5()
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Help/source.qhp	Mon Jan 03 17:10:45 2011 +0100
@@ -732,6 +732,10 @@
             <section title="eric5.Utilities.uic" ref="eric5.Utilities.uic.html" />
           </section>
           <section title="eric5.UtilitiesPython2" ref="index-eric5.UtilitiesPython2.html">
+            <section title="eric5.UtilitiesPython2.py2flakes" ref="index-eric5.UtilitiesPython2.py2flakes.html">
+              <section title="eric5.UtilitiesPython2.py2flakes.checker" ref="eric5.UtilitiesPython2.py2flakes.checker.html" />
+              <section title="eric5.UtilitiesPython2.py2flakes.messages" ref="eric5.UtilitiesPython2.py2flakes.messages.html" />
+            </section>
             <section title="eric5.UtilitiesPython2.Py2SyntaxChecker" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html" />
           </section>
           <section title="eric5.VCS" ref="index-eric5.VCS.html">
@@ -3236,6 +3240,7 @@
       <keyword name="Py2SyntaxChecker (Module)" id="Py2SyntaxChecker (Module)" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html" />
       <keyword name="compile" id="compile" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html#compile" />
       <keyword name="decode" id="decode" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html#decode" />
+      <keyword name="flakesCheck" id="flakesCheck" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html#flakesCheck" />
       <keyword name="get_coding" id="get_coding" ref="eric5.UtilitiesPython2.Py2SyntaxChecker.html#get_coding" />
       <keyword name="ViewManager (Package)" id="ViewManager (Package)" ref="index-eric5.ViewManager.html" />
       <keyword name="factory" id="factory" ref="eric5.ViewManager.__init__.html#factory" />
@@ -3975,8 +3980,8 @@
       <keyword name="UserInterface.__initEricDocAction" id="UserInterface.__initEricDocAction" ref="eric5.UI.UserInterface.html#UserInterface.__initEricDocAction" />
       <keyword name="UserInterface.__initExternalToolsActions" id="UserInterface.__initExternalToolsActions" ref="eric5.UI.UserInterface.html#UserInterface.__initExternalToolsActions" />
       <keyword name="UserInterface.__initMenus" id="UserInterface.__initMenus" ref="eric5.UI.UserInterface.html#UserInterface.__initMenus" />
-      <keyword name="UserInterface.__initPySideDocActions" id="UserInterface.__initPySideDocActions" ref="eric5.UI.UserInterface.html#UserInterface.__initPySideDocActions" />
-      <keyword name="UserInterface.__initPythonDocAction" id="UserInterface.__initPythonDocAction" ref="eric5.UI.UserInterface.html#UserInterface.__initPythonDocAction" />
+      <keyword name="UserInterface.__initPySideDocAction" id="UserInterface.__initPySideDocAction" ref="eric5.UI.UserInterface.html#UserInterface.__initPySideDocAction" />
+      <keyword name="UserInterface.__initPythonDocActions" id="UserInterface.__initPythonDocActions" ref="eric5.UI.UserInterface.html#UserInterface.__initPythonDocActions" />
       <keyword name="UserInterface.__initQtDocActions" id="UserInterface.__initQtDocActions" ref="eric5.UI.UserInterface.html#UserInterface.__initQtDocActions" />
       <keyword name="UserInterface.__initStatusbar" id="UserInterface.__initStatusbar" ref="eric5.UI.UserInterface.html#UserInterface.__initStatusbar" />
       <keyword name="UserInterface.__initToolbars" id="UserInterface.__initToolbars" ref="eric5.UI.UserInterface.html#UserInterface.__initToolbars" />
@@ -4020,6 +4025,7 @@
       <keyword name="UserInterface.__showPrevious" id="UserInterface.__showPrevious" ref="eric5.UI.UserInterface.html#UserInterface.__showPrevious" />
       <keyword name="UserInterface.__showPyQt4Doc" id="UserInterface.__showPyQt4Doc" ref="eric5.UI.UserInterface.html#UserInterface.__showPyQt4Doc" />
       <keyword name="UserInterface.__showPySideDoc" id="UserInterface.__showPySideDoc" ref="eric5.UI.UserInterface.html#UserInterface.__showPySideDoc" />
+      <keyword name="UserInterface.__showPython2Doc" id="UserInterface.__showPython2Doc" ref="eric5.UI.UserInterface.html#UserInterface.__showPython2Doc" />
       <keyword name="UserInterface.__showPythonDoc" id="UserInterface.__showPythonDoc" ref="eric5.UI.UserInterface.html#UserInterface.__showPythonDoc" />
       <keyword name="UserInterface.__showQt4Doc" id="UserInterface.__showQt4Doc" ref="eric5.UI.UserInterface.html#UserInterface.__showQt4Doc" />
       <keyword name="UserInterface.__showSvg" id="UserInterface.__showSvg" ref="eric5.UI.UserInterface.html#UserInterface.__showSvg" />
@@ -7875,6 +7881,7 @@
       <keyword name="HelpDocumentationPage (Constructor)" id="HelpDocumentationPage (Constructor)" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.__init__" />
       <keyword name="HelpDocumentationPage.on_pyqt4DocDirButton_clicked" id="HelpDocumentationPage.on_pyqt4DocDirButton_clicked" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.on_pyqt4DocDirButton_clicked" />
       <keyword name="HelpDocumentationPage.on_pysideDocDirButton_clicked" id="HelpDocumentationPage.on_pysideDocDirButton_clicked" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.on_pysideDocDirButton_clicked" />
+      <keyword name="HelpDocumentationPage.on_python2DocDirButton_clicked" id="HelpDocumentationPage.on_python2DocDirButton_clicked" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.on_python2DocDirButton_clicked" />
       <keyword name="HelpDocumentationPage.on_pythonDocDirButton_clicked" id="HelpDocumentationPage.on_pythonDocDirButton_clicked" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.on_pythonDocDirButton_clicked" />
       <keyword name="HelpDocumentationPage.on_qt4DocDirButton_clicked" id="HelpDocumentationPage.on_qt4DocDirButton_clicked" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.on_qt4DocDirButton_clicked" />
       <keyword name="HelpDocumentationPage.save" id="HelpDocumentationPage.save" ref="eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.save" />
@@ -8006,6 +8013,85 @@
       <keyword name="IconsPage.on_showIconsButton_clicked" id="IconsPage.on_showIconsButton_clicked" ref="eric5.Preferences.ConfigurationPages.IconsPage.html#IconsPage.on_showIconsButton_clicked" />
       <keyword name="IconsPage.on_upButton_clicked" id="IconsPage.on_upButton_clicked" ref="eric5.Preferences.ConfigurationPages.IconsPage.html#IconsPage.on_upButton_clicked" />
       <keyword name="IconsPage.save" id="IconsPage.save" ref="eric5.Preferences.ConfigurationPages.IconsPage.html#IconsPage.save" />
+      <keyword name="py2flakes (Package)" id="py2flakes (Package)" ref="index-eric5.UtilitiesPython2.py2flakes.html" />
+      <keyword name="checker (Module)" id="checker (Module)" ref="eric5.UtilitiesPython2.py2flakes.checker.html" />
+      <keyword name="Argument" id="Argument" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Argument" />
+      <keyword name="Assignment" id="Assignment" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Assignment" />
+      <keyword name="Binding" id="Binding" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Binding" />
+      <keyword name="Checker" id="Checker" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker" />
+      <keyword name="ClassScope" id="ClassScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#ClassScope" />
+      <keyword name="ExportBinding" id="ExportBinding" ref="eric5.UtilitiesPython2.py2flakes.checker.html#ExportBinding" />
+      <keyword name="FunctionDefinition" id="FunctionDefinition" ref="eric5.UtilitiesPython2.py2flakes.checker.html#FunctionDefinition" />
+      <keyword name="FunctionScope" id="FunctionScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#FunctionScope" />
+      <keyword name="Importation" id="Importation" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Importation" />
+      <keyword name="ModuleScope" id="ModuleScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#ModuleScope" />
+      <keyword name="Scope" id="Scope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Scope" />
+      <keyword name="UnBinding" id="UnBinding" ref="eric5.UtilitiesPython2.py2flakes.checker.html#UnBinding" />
+      <keyword name="Binding (Constructor)" id="Binding (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Binding.__init__" />
+      <keyword name="Binding.__repr__" id="Binding.__repr__" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Binding.__repr__" />
+      <keyword name="Binding.__str__" id="Binding.__str__" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Binding.__str__" />
+      <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.__init__" />
+      <keyword name="Checker.ASSIGN" id="Checker.ASSIGN" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.ASSIGN" />
+      <keyword name="Checker.ASSNAME" id="Checker.ASSNAME" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.ASSNAME" />
+      <keyword name="Checker.CLASS" id="Checker.CLASS" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.CLASS" />
+      <keyword name="Checker.FOR" id="Checker.FOR" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.FOR" />
+      <keyword name="Checker.FROM" id="Checker.FROM" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.FROM" />
+      <keyword name="Checker.FUNCTION" id="Checker.FUNCTION" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.FUNCTION" />
+      <keyword name="Checker.GLOBAL" id="Checker.GLOBAL" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.GLOBAL" />
+      <keyword name="Checker.IMPORT" id="Checker.IMPORT" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.IMPORT" />
+      <keyword name="Checker.LAMBDA" id="Checker.LAMBDA" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.LAMBDA" />
+      <keyword name="Checker.LISTCOMP" id="Checker.LISTCOMP" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.LISTCOMP" />
+      <keyword name="Checker.NAME" id="Checker.NAME" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.NAME" />
+      <keyword name="Checker.WITH" id="Checker.WITH" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.WITH" />
+      <keyword name="Checker._runDeferred" id="Checker._runDeferred" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker._runDeferred" />
+      <keyword name="Checker.addArgs" id="Checker.addArgs" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.addArgs" />
+      <keyword name="Checker.addBinding" id="Checker.addBinding" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.addBinding" />
+      <keyword name="Checker.checkUnusedAssignments" id="Checker.checkUnusedAssignments" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.checkUnusedAssignments" />
+      <keyword name="Checker.check_dead_scopes" id="Checker.check_dead_scopes" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.check_dead_scopes" />
+      <keyword name="Checker.collectLoopVars" id="Checker.collectLoopVars" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.collectLoopVars" />
+      <keyword name="Checker.deferAssignment" id="Checker.deferAssignment" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.deferAssignment" />
+      <keyword name="Checker.deferFunction" id="Checker.deferFunction" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.deferFunction" />
+      <keyword name="Checker.handleChildren" id="Checker.handleChildren" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.handleChildren" />
+      <keyword name="Checker.handleNode" id="Checker.handleNode" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.handleNode" />
+      <keyword name="Checker.ignore" id="Checker.ignore" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.ignore" />
+      <keyword name="Checker.popScope" id="Checker.popScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.popScope" />
+      <keyword name="Checker.pushClassScope" id="Checker.pushClassScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.pushClassScope" />
+      <keyword name="Checker.pushFunctionScope" id="Checker.pushFunctionScope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.pushFunctionScope" />
+      <keyword name="Checker.report" id="Checker.report" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.report" />
+      <keyword name="Checker.runFunction" id="Checker.runFunction" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.runFunction" />
+      <keyword name="Checker.scope" id="Checker.scope" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Checker.scope" />
+      <keyword name="ExportBinding.names" id="ExportBinding.names" ref="eric5.UtilitiesPython2.py2flakes.checker.html#ExportBinding.names" />
+      <keyword name="FunctionScope (Constructor)" id="FunctionScope (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.checker.html#FunctionScope.__init__" />
+      <keyword name="Importation (Constructor)" id="Importation (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Importation.__init__" />
+      <keyword name="Scope (Constructor)" id="Scope (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Scope.__init__" />
+      <keyword name="Scope.__repr__" id="Scope.__repr__" ref="eric5.UtilitiesPython2.py2flakes.checker.html#Scope.__repr__" />
+      <keyword name="messages (Module)" id="messages (Module)" ref="eric5.UtilitiesPython2.py2flakes.messages.html" />
+      <keyword name="DuplicateArgument" id="DuplicateArgument" ref="eric5.UtilitiesPython2.py2flakes.messages.html#DuplicateArgument" />
+      <keyword name="ImportShadowedByLoopVar" id="ImportShadowedByLoopVar" ref="eric5.UtilitiesPython2.py2flakes.messages.html#ImportShadowedByLoopVar" />
+      <keyword name="ImportStarUsed" id="ImportStarUsed" ref="eric5.UtilitiesPython2.py2flakes.messages.html#ImportStarUsed" />
+      <keyword name="LateFutureImport" id="LateFutureImport" ref="eric5.UtilitiesPython2.py2flakes.messages.html#LateFutureImport" />
+      <keyword name="Message" id="Message" ref="eric5.UtilitiesPython2.py2flakes.messages.html#Message" />
+      <keyword name="RedefinedFunction" id="RedefinedFunction" ref="eric5.UtilitiesPython2.py2flakes.messages.html#RedefinedFunction" />
+      <keyword name="RedefinedWhileUnused" id="RedefinedWhileUnused" ref="eric5.UtilitiesPython2.py2flakes.messages.html#RedefinedWhileUnused" />
+      <keyword name="UndefinedExport" id="UndefinedExport" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedExport" />
+      <keyword name="UndefinedLocal" id="UndefinedLocal" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedLocal" />
+      <keyword name="UndefinedName" id="UndefinedName" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedName" />
+      <keyword name="UnusedImport" id="UnusedImport" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UnusedImport" />
+      <keyword name="UnusedVariable" id="UnusedVariable" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UnusedVariable" />
+      <keyword name="DuplicateArgument (Constructor)" id="DuplicateArgument (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#DuplicateArgument.__init__" />
+      <keyword name="ImportShadowedByLoopVar (Constructor)" id="ImportShadowedByLoopVar (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#ImportShadowedByLoopVar.__init__" />
+      <keyword name="ImportStarUsed (Constructor)" id="ImportStarUsed (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#ImportStarUsed.__init__" />
+      <keyword name="LateFutureImport (Constructor)" id="LateFutureImport (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#LateFutureImport.__init__" />
+      <keyword name="Message (Constructor)" id="Message (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#Message.__init__" />
+      <keyword name="Message.__str__" id="Message.__str__" ref="eric5.UtilitiesPython2.py2flakes.messages.html#Message.__str__" />
+      <keyword name="Message.getMessageData" id="Message.getMessageData" ref="eric5.UtilitiesPython2.py2flakes.messages.html#Message.getMessageData" />
+      <keyword name="RedefinedFunction (Constructor)" id="RedefinedFunction (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#RedefinedFunction.__init__" />
+      <keyword name="RedefinedWhileUnused (Constructor)" id="RedefinedWhileUnused (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#RedefinedWhileUnused.__init__" />
+      <keyword name="UndefinedExport (Constructor)" id="UndefinedExport (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedExport.__init__" />
+      <keyword name="UndefinedLocal (Constructor)" id="UndefinedLocal (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedLocal.__init__" />
+      <keyword name="UndefinedName (Constructor)" id="UndefinedName (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UndefinedName.__init__" />
+      <keyword name="UnusedImport (Constructor)" id="UnusedImport (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UnusedImport.__init__" />
+      <keyword name="UnusedVariable (Constructor)" id="UnusedVariable (Constructor)" ref="eric5.UtilitiesPython2.py2flakes.messages.html#UnusedVariable.__init__" />
       <keyword name="VcsPlugins (Package)" id="VcsPlugins (Package)" ref="index-eric5.Plugins.VcsPlugins.html" />
       <keyword name="AboutPlugin (Package)" id="AboutPlugin (Package)" ref="index-eric5.Plugins.AboutPlugin.html" />
       <keyword name="AboutDialog (Module)" id="AboutDialog (Module)" ref="eric5.Plugins.AboutPlugin.AboutDialog.html" />
@@ -9650,6 +9736,7 @@
       <keyword name="LexerPython.initProperties" id="LexerPython.initProperties" ref="eric5.QScintilla.Lexers.LexerPython.html#LexerPython.initProperties" />
       <keyword name="LexerPython.isCommentStyle" id="LexerPython.isCommentStyle" ref="eric5.QScintilla.Lexers.LexerPython.html#LexerPython.isCommentStyle" />
       <keyword name="LexerPython.isStringStyle" id="LexerPython.isStringStyle" ref="eric5.QScintilla.Lexers.LexerPython.html#LexerPython.isStringStyle" />
+      <keyword name="LexerPython.language" id="LexerPython.language" ref="eric5.QScintilla.Lexers.LexerPython.html#LexerPython.language" />
       <keyword name="LexerProperties (Module)" id="LexerProperties (Module)" ref="eric5.QScintilla.Lexers.LexerProperties.html" />
       <keyword name="LexerProperties" id="LexerProperties" ref="eric5.QScintilla.Lexers.LexerProperties.html#LexerProperties" />
       <keyword name="LexerProperties (Constructor)" id="LexerProperties (Constructor)" ref="eric5.QScintilla.Lexers.LexerProperties.html#LexerProperties.__init__" />
@@ -10449,6 +10536,8 @@
       <file>eric5.Utilities.py3flakes.messages.html</file>
       <file>eric5.Utilities.uic.html</file>
       <file>eric5.UtilitiesPython2.Py2SyntaxChecker.html</file>
+      <file>eric5.UtilitiesPython2.py2flakes.checker.html</file>
+      <file>eric5.UtilitiesPython2.py2flakes.messages.html</file>
       <file>eric5.VCS.CommandOptionsDialog.html</file>
       <file>eric5.VCS.ProjectBrowserHelper.html</file>
       <file>eric5.VCS.ProjectHelper.html</file>
@@ -10560,6 +10649,7 @@
       <file>index-eric5.Utilities.html</file>
       <file>index-eric5.Utilities.py3flakes.html</file>
       <file>index-eric5.UtilitiesPython2.html</file>
+      <file>index-eric5.UtilitiesPython2.py2flakes.html</file>
       <file>index-eric5.VCS.html</file>
       <file>index-eric5.ViewManager.html</file>
       <file>index-eric5.html</file>
--- a/Documentation/Source/eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.Preferences.ConfigurationPages.HelpDocumentationPage.html	Mon Jan 03 17:10:45 2011 +0100
@@ -66,8 +66,11 @@
 <td><a href="#HelpDocumentationPage.on_pysideDocDirButton_clicked">on_pysideDocDirButton_clicked</a></td>
 <td>Private slot to select the PySide documentation directory.</td>
 </tr><tr>
+<td><a href="#HelpDocumentationPage.on_python2DocDirButton_clicked">on_python2DocDirButton_clicked</a></td>
+<td>Private slot to select the Python 2 documentation directory.</td>
+</tr><tr>
 <td><a href="#HelpDocumentationPage.on_pythonDocDirButton_clicked">on_pythonDocDirButton_clicked</a></td>
-<td>Private slot to select the Python documentation directory.</td>
+<td>Private slot to select the Python 3 documentation directory.</td>
 </tr><tr>
 <td><a href="#HelpDocumentationPage.on_qt4DocDirButton_clicked">on_qt4DocDirButton_clicked</a></td>
 <td>Private slot to select the Qt4 documentation directory.</td>
@@ -91,11 +94,16 @@
 <b>on_pysideDocDirButton_clicked</b>(<i></i>)
 <p>
         Private slot to select the PySide documentation directory.
+</p><a NAME="HelpDocumentationPage.on_python2DocDirButton_clicked" ID="HelpDocumentationPage.on_python2DocDirButton_clicked"></a>
+<h4>HelpDocumentationPage.on_python2DocDirButton_clicked</h4>
+<b>on_python2DocDirButton_clicked</b>(<i></i>)
+<p>
+        Private slot to select the Python 2 documentation directory.
 </p><a NAME="HelpDocumentationPage.on_pythonDocDirButton_clicked" ID="HelpDocumentationPage.on_pythonDocDirButton_clicked"></a>
 <h4>HelpDocumentationPage.on_pythonDocDirButton_clicked</h4>
 <b>on_pythonDocDirButton_clicked</b>(<i></i>)
 <p>
-        Private slot to select the Python documentation directory.
+        Private slot to select the Python 3 documentation directory.
 </p><a NAME="HelpDocumentationPage.on_qt4DocDirButton_clicked" ID="HelpDocumentationPage.on_qt4DocDirButton_clicked"></a>
 <h4>HelpDocumentationPage.on_qt4DocDirButton_clicked</h4>
 <b>on_qt4DocDirButton_clicked</b>(<i></i>)
--- a/Documentation/Source/eric5.QScintilla.Lexers.LexerPython.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.QScintilla.Lexers.LexerPython.html	Mon Jan 03 17:10:45 2011 +0100
@@ -76,15 +76,21 @@
 </tr><tr>
 <td><a href="#LexerPython.isStringStyle">isStringStyle</a></td>
 <td>Public method to check, if a style is a string style.</td>
+</tr><tr>
+<td><a href="#LexerPython.language">language</a></td>
+<td>Public method to get the lexer language.</td>
 </tr>
 </table>
 <a NAME="LexerPython.__init__" ID="LexerPython.__init__"></a>
 <h4>LexerPython (Constructor)</h4>
-<b>LexerPython</b>(<i>parent=None</i>)
+<b>LexerPython</b>(<i>variant = "", parent = None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>parent</i></dt>
+<dt><i>variant</i></dt>
+<dd>
+name of the language variant (string)
+</dd><dt><i>parent</i></dt>
 <dd>
 parent widget of this lexer
 </dd>
@@ -156,7 +162,12 @@
 <dd>
 flag indicating a string style (boolean)
 </dd>
-</dl>
+</dl><a NAME="LexerPython.language" ID="LexerPython.language"></a>
+<h4>LexerPython.language</h4>
+<b>language</b>(<i></i>)
+<p>
+        Public method to get the lexer language.
+</p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.QScintilla.Shell.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.QScintilla.Shell.html	Mon Jan 03 17:10:45 2011 +0100
@@ -500,7 +500,7 @@
         Private method to handle the Cursor Word Right command.
 </p><a NAME="Shell.__bindLexer" ID="Shell.__bindLexer"></a>
 <h4>Shell.__bindLexer</h4>
-<b>__bindLexer</b>(<i>language = 'Python'</i>)
+<b>__bindLexer</b>(<i>language = 'Python3'</i>)
 <p>
         Private slot to set the lexer.
 </p><dl>
--- a/Documentation/Source/eric5.UI.UserInterface.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.UI.UserInterface.html	Mon Jan 03 17:10:45 2011 +0100
@@ -319,14 +319,14 @@
 <td><a href="#UserInterface.__initMenus">__initMenus</a></td>
 <td>Private slot to create the menus.</td>
 </tr><tr>
-<td><a href="#UserInterface.__initPySideDocActions">__initPySideDocActions</a></td>
-<td>Private slot to initilize the action to show the PySide documentation.</td>
+<td><a href="#UserInterface.__initPySideDocAction">__initPySideDocAction</a></td>
+<td>Private slot to initialize the action to show the PySide documentation.</td>
 </tr><tr>
-<td><a href="#UserInterface.__initPythonDocAction">__initPythonDocAction</a></td>
-<td>Private slot to initilize the action to show the Python documentation.</td>
+<td><a href="#UserInterface.__initPythonDocActions">__initPythonDocActions</a></td>
+<td>Private slot to initialize the actions to show the Python documentation.</td>
 </tr><tr>
 <td><a href="#UserInterface.__initQtDocActions">__initQtDocActions</a></td>
-<td>Private slot to initilize the action to show the Qt documentation.</td>
+<td>Private slot to initialize the action to show the Qt documentation.</td>
 </tr><tr>
 <td><a href="#UserInterface.__initStatusbar">__initStatusbar</a></td>
 <td>Private slot to set up the status bar.</td>
@@ -454,8 +454,11 @@
 <td><a href="#UserInterface.__showPySideDoc">__showPySideDoc</a></td>
 <td>Private slot to show the PySide documentation.</td>
 </tr><tr>
+<td><a href="#UserInterface.__showPython2Doc">__showPython2Doc</a></td>
+<td>Private slot to show the Python 2 documentation.</td>
+</tr><tr>
 <td><a href="#UserInterface.__showPythonDoc">__showPythonDoc</a></td>
-<td>Private slot to show the Python documentation.</td>
+<td>Private slot to show the Python 3 documentation.</td>
 </tr><tr>
 <td><a href="#UserInterface.__showQt4Doc">__showQt4Doc</a></td>
 <td>Private slot to show the Qt4 documentation.</td>
@@ -1100,21 +1103,21 @@
 <b>__initMenus</b>(<i></i>)
 <p>
         Private slot to create the menus.
-</p><a NAME="UserInterface.__initPySideDocActions" ID="UserInterface.__initPySideDocActions"></a>
-<h4>UserInterface.__initPySideDocActions</h4>
-<b>__initPySideDocActions</b>(<i></i>)
+</p><a NAME="UserInterface.__initPySideDocAction" ID="UserInterface.__initPySideDocAction"></a>
+<h4>UserInterface.__initPySideDocAction</h4>
+<b>__initPySideDocAction</b>(<i></i>)
 <p>
-        Private slot to initilize the action to show the PySide documentation.
-</p><a NAME="UserInterface.__initPythonDocAction" ID="UserInterface.__initPythonDocAction"></a>
-<h4>UserInterface.__initPythonDocAction</h4>
-<b>__initPythonDocAction</b>(<i></i>)
+        Private slot to initialize the action to show the PySide documentation.
+</p><a NAME="UserInterface.__initPythonDocActions" ID="UserInterface.__initPythonDocActions"></a>
+<h4>UserInterface.__initPythonDocActions</h4>
+<b>__initPythonDocActions</b>(<i></i>)
 <p>
-        Private slot to initilize the action to show the Python documentation.
+        Private slot to initialize the actions to show the Python documentation.
 </p><a NAME="UserInterface.__initQtDocActions" ID="UserInterface.__initQtDocActions"></a>
 <h4>UserInterface.__initQtDocActions</h4>
 <b>__initQtDocActions</b>(<i></i>)
 <p>
-        Private slot to initilize the action to show the Qt documentation.
+        Private slot to initialize the action to show the Qt documentation.
 </p><a NAME="UserInterface.__initStatusbar" ID="UserInterface.__initStatusbar"></a>
 <h4>UserInterface.__initStatusbar</h4>
 <b>__initStatusbar</b>(<i></i>)
@@ -1413,11 +1416,16 @@
 <b>__showPySideDoc</b>(<i></i>)
 <p>
         Private slot to show the PySide documentation.
+</p><a NAME="UserInterface.__showPython2Doc" ID="UserInterface.__showPython2Doc"></a>
+<h4>UserInterface.__showPython2Doc</h4>
+<b>__showPython2Doc</b>(<i></i>)
+<p>
+        Private slot to show the Python 2 documentation.
 </p><a NAME="UserInterface.__showPythonDoc" ID="UserInterface.__showPythonDoc"></a>
 <h4>UserInterface.__showPythonDoc</h4>
 <b>__showPythonDoc</b>(<i></i>)
 <p>
-        Private slot to show the Python documentation.
+        Private slot to show the Python 3 documentation.
 </p><a NAME="UserInterface.__showQt4Doc" ID="UserInterface.__showQt4Doc"></a>
 <h4>UserInterface.__showQt4Doc</h4>
 <b>__showQt4Doc</b>(<i></i>)
--- a/Documentation/Source/eric5.Utilities.__init__.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.Utilities.__init__.html	Mon Jan 03 17:10:45 2011 +0100
@@ -1232,21 +1232,27 @@
 <hr /><hr />
 <a NAME="py2compile" ID="py2compile"></a>
 <h2>py2compile</h2>
-<b>py2compile</b>(<i>file</i>)
+<b>py2compile</b>(<i>file, checkFlakes = False</i>)
 <p>
     Function to compile one Python 2 source file to Python 2 bytecode.
 </p><dl>
 <dt><i>file</i></dt>
 <dd>
 source filename (string)
+</dd><dt><i>checkFlakes=</i></dt>
+<dd>
+flag indicating to do a pyflakes check (boolean)
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
 A tuple indicating status (True = an error was found), the
-        filename, the linenumber, the code string and the error message
-        (boolean, string, string, string, string). The values are only
-        valid, if the status is True.
+        file name, the line number, the code string, the error message
+        and a list of tuples of pyflakes warnings indicating file name,
+        line number and message (boolean, string, string, string, string, 
+        list of (string, string, string)). The syntax error values are only
+        valid, if the status is True. The pyflakes list will be empty, if a
+        syntax error was detected by the syntax checker.
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/Documentation/Source/eric5.Utilities.py3flakes.checker.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.Utilities.py3flakes.checker.html	Mon Jan 03 17:10:45 2011 +0100
@@ -348,7 +348,7 @@
 <h4>Checker.addBinding</h4>
 <b>addBinding</b>(<i>lineno, value, reportRedef = True</i>)
 <p>
-Called when a binding is altered.
+        Called when a binding is altered.
 </p><dl>
 <dt><i>lineno</i></dt>
 <dd>
--- a/Documentation/Source/eric5.UtilitiesPython2.Py2SyntaxChecker.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/eric5.UtilitiesPython2.Py2SyntaxChecker.html	Mon Jan 03 17:10:45 2011 +0100
@@ -41,6 +41,9 @@
 <td><a href="#decode">decode</a></td>
 <td>Function to decode a text.</td>
 </tr><tr>
+<td><a href="#flakesCheck">flakesCheck</a></td>
+<td>Function to perform a pyflakes check.</td>
+</tr><tr>
 <td><a href="#get_coding">get_coding</a></td>
 <td>Function to get the coding of a text.</td>
 </tr>
@@ -60,9 +63,10 @@
 <dt>Returns:</dt>
 <dd>
 A tuple indicating status (1 = an error was found), the
-        filename, the linenumber, the code string and the error message
-        (boolean, string, string, string, string). The values are only
-        valid, if the status equals 1.
+        filename, the linenumber, the code string, the error message
+        and the full source code (boolean, string, string, string, 
+        string, string). The values are only valid, if the status 
+        equals 1.
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -85,6 +89,32 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="flakesCheck" ID="flakesCheck"></a>
+<h2>flakesCheck</h2>
+<b>flakesCheck</b>(<i>fileName, codestring, ignoreStarImportWarnings</i>)
+<p>
+    Function to perform a pyflakes check.
+</p><dl>
+<dt><i>fileName</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>codestring</i></dt>
+<dd>
+source code to be checked (string)
+</dd><dt><i>ignoreStarImportWarnings</i></dt>
+<dd>
+flag indicating to
+        ignore 'star import' warnings (boolean)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+list of strings containing the warnings
+        (marker, file name, line number, message)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="get_coding" ID="get_coding"></a>
 <h2>get_coding</h2>
 <b>get_coding</b>(<i>text</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.UtilitiesPython2.py2flakes.checker.html	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.UtilitiesPython2.py2flakes.checker</title>
+<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.UtilitiesPython2.py2flakes.checker</h1>
+
+<h3>Global Attributes</h3>
+<table>
+<tr><td>_MAGIC_GLOBALS</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#Argument">Argument</a></td>
+<td>Represents binding a name as an argument.</td>
+</tr><tr>
+<td><a href="#Assignment">Assignment</a></td>
+<td>Represents binding a name with an explicit assignment.</td>
+</tr><tr>
+<td><a href="#Binding">Binding</a></td>
+<td>Represents the binding of a value to a name.</td>
+</tr><tr>
+<td><a href="#Checker">Checker</a></td>
+<td>Class to check the cleanliness and sanity of Python code.</td>
+</tr><tr>
+<td><a href="#ClassScope">ClassScope</a></td>
+<td>Class representing a name scope for a class.</td>
+</tr><tr>
+<td><a href="#ExportBinding">ExportBinding</a></td>
+<td>A binding created by an __all__ assignment.</td>
+</tr><tr>
+<td><a href="#FunctionDefinition">FunctionDefinition</a></td>
+<td>Represents a function definition.</td>
+</tr><tr>
+<td><a href="#FunctionScope">FunctionScope</a></td>
+<td>Class representing a name scope for a function.</td>
+</tr><tr>
+<td><a href="#Importation">Importation</a></td>
+<td>A binding created by an import statement.</td>
+</tr><tr>
+<td><a href="#ModuleScope">ModuleScope</a></td>
+<td>Class representing a name scope for a module.</td>
+</tr><tr>
+<td><a href="#Scope">Scope</a></td>
+<td>Class defining the scope base class.</td>
+</tr><tr>
+<td><a href="#UnBinding">UnBinding</a></td>
+<td>Created by the 'del' operator.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="Argument" ID="Argument"></a>
+<h2>Argument</h2>
+<p>
+    Represents binding a name as an argument.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Assignment" ID="Assignment"></a>
+<h2>Assignment</h2>
+<p>
+    Represents binding a name with an explicit assignment.
+</p><p>
+    The checker will raise warnings for any Assignment that isn't used. Also,
+    the checker does not consider assignments in tuple/list unpacking to be
+    Assignments, rather it treats them as simple Bindings.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Binding" ID="Binding"></a>
+<h2>Binding</h2>
+<p>
+    Represents the binding of a value to a name.
+</p><p>
+    The checker uses this to keep track of which names have been bound and
+    which names have not. See L{Assignment} for a special type of binding that
+    is checked with stricter rules.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#Binding.__init__">Binding</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Binding.__repr__">__repr__</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Binding.__str__">__str__</a></td>
+<td></td>
+</tr>
+</table>
+<a NAME="Binding.__init__" ID="Binding.__init__"></a>
+<h4>Binding (Constructor)</h4>
+<b>Binding</b>(<i>name, source</i>)
+<a NAME="Binding.__repr__" ID="Binding.__repr__"></a>
+<h4>Binding.__repr__</h4>
+<b>__repr__</b>(<i></i>)
+<a NAME="Binding.__str__" ID="Binding.__str__"></a>
+<h4>Binding.__str__</h4>
+<b>__str__</b>(<i></i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Checker" ID="Checker"></a>
+<h2>Checker</h2>
+<p>
+    Class to check the cleanliness and sanity of Python code.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>ASSLIST</td></tr><tr><td>AUGASSIGN</td></tr><tr><td>CONST</td></tr><tr><td>FLOORDIV</td></tr><tr><td>GENEXPRINNER</td></tr><tr><td>IFEXP</td></tr><tr><td>RETURN</td></tr><tr><td>RIGHTSHIFT</td></tr><tr><td>STMT</td></tr><tr><td>SUBSCRIPT</td></tr><tr><td>nodeDepth</td></tr><tr><td>scope</td></tr><tr><td>traceTree</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#Checker.__init__">Checker</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#Checker.ASSIGN">ASSIGN</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.ASSNAME">ASSNAME</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.CLASS">CLASS</a></td>
+<td>Check names used in a class definition, including its decorators, base classes, and the body of its definition.</td>
+</tr><tr>
+<td><a href="#Checker.FOR">FOR</a></td>
+<td>Process bindings for loop variables.</td>
+</tr><tr>
+<td><a href="#Checker.FROM">FROM</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.FUNCTION">FUNCTION</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.GLOBAL">GLOBAL</a></td>
+<td>Keep track of globals declarations.</td>
+</tr><tr>
+<td><a href="#Checker.IMPORT">IMPORT</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.LAMBDA">LAMBDA</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.LISTCOMP">LISTCOMP</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.NAME">NAME</a></td>
+<td>Locate the name in locals / function / globals scopes.</td>
+</tr><tr>
+<td><a href="#Checker.WITH">WITH</a></td>
+<td>Handle 'with' by checking the target of the statement (which can be an identifier, a list or tuple of targets, an attribute, etc) for undefined names and defining any it adds to the scope and by continuing to process the suite within the statement.</td>
+</tr><tr>
+<td><a href="#Checker._runDeferred">_runDeferred</a></td>
+<td>Run the callables in C{deferred} using their associated scope stack.</td>
+</tr><tr>
+<td><a href="#Checker.addArgs">addArgs</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.addBinding">addBinding</a></td>
+<td>Called when a binding is altered.</td>
+</tr><tr>
+<td><a href="#Checker.checkUnusedAssignments">checkUnusedAssignments</a></td>
+<td>Check to see if any assignments have not been used.</td>
+</tr><tr>
+<td><a href="#Checker.check_dead_scopes">check_dead_scopes</a></td>
+<td>Look at scopes which have been fully examined and report names in them which were imported but unused.</td>
+</tr><tr>
+<td><a href="#Checker.collectLoopVars">collectLoopVars</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.deferAssignment">deferAssignment</a></td>
+<td>Schedule an assignment handler to be called just after deferred function handlers.</td>
+</tr><tr>
+<td><a href="#Checker.deferFunction">deferFunction</a></td>
+<td>Schedule a function handler to be called just before completion.</td>
+</tr><tr>
+<td><a href="#Checker.handleChildren">handleChildren</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.handleNode">handleNode</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.ignore">ignore</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.popScope">popScope</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.pushClassScope">pushClassScope</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.pushFunctionScope">pushFunctionScope</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.report">report</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.runFunction">runFunction</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Checker.scope">scope</a></td>
+<td></td>
+</tr>
+</table>
+<a NAME="Checker.__init__" ID="Checker.__init__"></a>
+<h4>Checker (Constructor)</h4>
+<b>Checker</b>(<i>module, filename='(none)'</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>module</i></dt>
+<dd>
+parsed module tree or module source code
+</dd><dt><i>filename</i></dt>
+<dd>
+name of the module file (string)
+</dd>
+</dl><a NAME="Checker.ASSIGN" ID="Checker.ASSIGN"></a>
+<h4>Checker.ASSIGN</h4>
+<b>ASSIGN</b>(<i>node</i>)
+<a NAME="Checker.ASSNAME" ID="Checker.ASSNAME"></a>
+<h4>Checker.ASSNAME</h4>
+<b>ASSNAME</b>(<i>node</i>)
+<a NAME="Checker.CLASS" ID="Checker.CLASS"></a>
+<h4>Checker.CLASS</h4>
+<b>CLASS</b>(<i>node</i>)
+<p>
+        Check names used in a class definition, including its decorators, base
+        classes, and the body of its definition.  Additionally, add its name to
+        the current scope.
+</p><a NAME="Checker.FOR" ID="Checker.FOR"></a>
+<h4>Checker.FOR</h4>
+<b>FOR</b>(<i>node</i>)
+<p>
+        Process bindings for loop variables.
+</p><a NAME="Checker.FROM" ID="Checker.FROM"></a>
+<h4>Checker.FROM</h4>
+<b>FROM</b>(<i>node</i>)
+<a NAME="Checker.FUNCTION" ID="Checker.FUNCTION"></a>
+<h4>Checker.FUNCTION</h4>
+<b>FUNCTION</b>(<i>node</i>)
+<a NAME="Checker.GLOBAL" ID="Checker.GLOBAL"></a>
+<h4>Checker.GLOBAL</h4>
+<b>GLOBAL</b>(<i>node</i>)
+<p>
+        Keep track of globals declarations.
+</p><a NAME="Checker.IMPORT" ID="Checker.IMPORT"></a>
+<h4>Checker.IMPORT</h4>
+<b>IMPORT</b>(<i>node</i>)
+<a NAME="Checker.LAMBDA" ID="Checker.LAMBDA"></a>
+<h4>Checker.LAMBDA</h4>
+<b>LAMBDA</b>(<i>node</i>)
+<a NAME="Checker.LISTCOMP" ID="Checker.LISTCOMP"></a>
+<h4>Checker.LISTCOMP</h4>
+<b>LISTCOMP</b>(<i>node</i>)
+<a NAME="Checker.NAME" ID="Checker.NAME"></a>
+<h4>Checker.NAME</h4>
+<b>NAME</b>(<i>node</i>)
+<p>
+        Locate the name in locals / function / globals scopes.
+</p><a NAME="Checker.WITH" ID="Checker.WITH"></a>
+<h4>Checker.WITH</h4>
+<b>WITH</b>(<i>node</i>)
+<p>
+        Handle 'with' by checking the target of the statement (which can be an
+        identifier, a list or tuple of targets, an attribute, etc) for
+        undefined names and defining any it adds to the scope and by continuing
+        to process the suite within the statement.
+</p><a NAME="Checker._runDeferred" ID="Checker._runDeferred"></a>
+<h4>Checker._runDeferred</h4>
+<b>_runDeferred</b>(<i>deferred</i>)
+<p>
+        Run the callables in C{deferred} using their associated scope stack.
+</p><a NAME="Checker.addArgs" ID="Checker.addArgs"></a>
+<h4>Checker.addArgs</h4>
+<b>addArgs</b>(<i></i>)
+<a NAME="Checker.addBinding" ID="Checker.addBinding"></a>
+<h4>Checker.addBinding</h4>
+<b>addBinding</b>(<i>lineno, value, reportRedef=True</i>)
+<p>
+        Called when a binding is altered.
+</p><dl>
+<dt><i>lineno</i></dt>
+<dd>
+line of the statement responsible for the change (integer)
+</dd><dt><i>value</i></dt>
+<dd>
+the optional new value, a Binding instance, associated
+            with the binding; if None, the binding is deleted if it exists
+</dd><dt><i>reportRedef</i></dt>
+<dd>
+flag indicating if rebinding while unused will be
+            reported (boolean)
+</dd>
+</dl><a NAME="Checker.checkUnusedAssignments" ID="Checker.checkUnusedAssignments"></a>
+<h4>Checker.checkUnusedAssignments</h4>
+<b>checkUnusedAssignments</b>(<i></i>)
+<p>
+                Check to see if any assignments have not been used.
+</p><a NAME="Checker.check_dead_scopes" ID="Checker.check_dead_scopes"></a>
+<h4>Checker.check_dead_scopes</h4>
+<b>check_dead_scopes</b>(<i></i>)
+<p>
+        Look at scopes which have been fully examined and report names in them
+        which were imported but unused.
+</p><a NAME="Checker.collectLoopVars" ID="Checker.collectLoopVars"></a>
+<h4>Checker.collectLoopVars</h4>
+<b>collectLoopVars</b>(<i></i>)
+<a NAME="Checker.deferAssignment" ID="Checker.deferAssignment"></a>
+<h4>Checker.deferAssignment</h4>
+<b>deferAssignment</b>(<i>callable</i>)
+<p>
+        Schedule an assignment handler to be called just after deferred
+        function handlers.
+</p><a NAME="Checker.deferFunction" ID="Checker.deferFunction"></a>
+<h4>Checker.deferFunction</h4>
+<b>deferFunction</b>(<i>callable</i>)
+<p>
+        Schedule a function handler to be called just before completion.
+</p><p>
+        This is used for handling function bodies, which must be deferred
+        because code later in the file might modify the global scope. When
+        `callable` is called, the scope at the time this is called will be
+        restored, however it will contain any new bindings added to it.
+</p><a NAME="Checker.handleChildren" ID="Checker.handleChildren"></a>
+<h4>Checker.handleChildren</h4>
+<b>handleChildren</b>(<i>tree</i>)
+<a NAME="Checker.handleNode" ID="Checker.handleNode"></a>
+<h4>Checker.handleNode</h4>
+<b>handleNode</b>(<i>node, parent</i>)
+<a NAME="Checker.ignore" ID="Checker.ignore"></a>
+<h4>Checker.ignore</h4>
+<b>ignore</b>(<i>node</i>)
+<a NAME="Checker.popScope" ID="Checker.popScope"></a>
+<h4>Checker.popScope</h4>
+<b>popScope</b>(<i></i>)
+<a NAME="Checker.pushClassScope" ID="Checker.pushClassScope"></a>
+<h4>Checker.pushClassScope</h4>
+<b>pushClassScope</b>(<i></i>)
+<a NAME="Checker.pushFunctionScope" ID="Checker.pushFunctionScope"></a>
+<h4>Checker.pushFunctionScope</h4>
+<b>pushFunctionScope</b>(<i></i>)
+<a NAME="Checker.report" ID="Checker.report"></a>
+<h4>Checker.report</h4>
+<b>report</b>(<i>messageClass, *args, **kwargs</i>)
+<a NAME="Checker.runFunction" ID="Checker.runFunction"></a>
+<h4>Checker.runFunction</h4>
+<b>runFunction</b>(<i></i>)
+<a NAME="Checker.scope" ID="Checker.scope"></a>
+<h4>Checker.scope</h4>
+<b>scope</b>(<i></i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="ClassScope" ID="ClassScope"></a>
+<h2>ClassScope</h2>
+<p>
+    Class representing a name scope for a class.
+</p>
+<h3>Derived from</h3>
+Scope
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="ExportBinding" ID="ExportBinding"></a>
+<h2>ExportBinding</h2>
+<p>
+    A binding created by an __all__ assignment.  If the names in the list
+    can be determined statically, they will be treated as names for export and
+    additional checking applied to them.
+</p><p>
+    The only __all__ assignment that can be recognized is one which takes
+    the value of a literal list containing literal strings.  For example::
+</p><p>
+        __all__ = ["foo", "bar"]
+</p><p>
+    Names which are imported and not otherwise used but appear in the value of
+    __all__ will not have an unused import warning reported for them.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#ExportBinding.names">names</a></td>
+<td>Return a list of the names referenced by this binding.</td>
+</tr>
+</table>
+<a NAME="ExportBinding.names" ID="ExportBinding.names"></a>
+<h4>ExportBinding.names</h4>
+<b>names</b>(<i></i>)
+<p>
+        Return a list of the names referenced by this binding.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="FunctionDefinition" ID="FunctionDefinition"></a>
+<h2>FunctionDefinition</h2>
+<p>
+    Represents a function definition.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="FunctionScope" ID="FunctionScope"></a>
+<h2>FunctionScope</h2>
+<p>
+    Class representing a name scope for a function.
+</p>
+<h3>Derived from</h3>
+Scope
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#FunctionScope.__init__">FunctionScope</a></td>
+<td></td>
+</tr>
+</table>
+<a NAME="FunctionScope.__init__" ID="FunctionScope.__init__"></a>
+<h4>FunctionScope (Constructor)</h4>
+<b>FunctionScope</b>(<i></i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Importation" ID="Importation"></a>
+<h2>Importation</h2>
+<p>
+    A binding created by an import statement.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#Importation.__init__">Importation</a></td>
+<td></td>
+</tr>
+</table>
+<a NAME="Importation.__init__" ID="Importation.__init__"></a>
+<h4>Importation (Constructor)</h4>
+<b>Importation</b>(<i>name, source</i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="ModuleScope" ID="ModuleScope"></a>
+<h2>ModuleScope</h2>
+<p>
+    Class representing a name scope for a module.
+</p>
+<h3>Derived from</h3>
+Scope
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Scope" ID="Scope"></a>
+<h2>Scope</h2>
+<p>
+    Class defining the scope base class.
+</p>
+<h3>Derived from</h3>
+dict
+<h3>Class Attributes</h3>
+<table>
+<tr><td>importStarred</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#Scope.__init__">Scope</a></td>
+<td></td>
+</tr><tr>
+<td><a href="#Scope.__repr__">__repr__</a></td>
+<td></td>
+</tr>
+</table>
+<a NAME="Scope.__init__" ID="Scope.__init__"></a>
+<h4>Scope (Constructor)</h4>
+<b>Scope</b>(<i></i>)
+<a NAME="Scope.__repr__" ID="Scope.__repr__"></a>
+<h4>Scope.__repr__</h4>
+<b>__repr__</b>(<i></i>)
+
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UnBinding" ID="UnBinding"></a>
+<h2>UnBinding</h2>
+<p>
+    Created by the 'del' operator.
+</p>
+<h3>Derived from</h3>
+Binding
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.UtilitiesPython2.py2flakes.messages.html	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,557 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.UtilitiesPython2.py2flakes.messages</title>
+<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.UtilitiesPython2.py2flakes.messages</h1>
+
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#DuplicateArgument">DuplicateArgument</a></td>
+<td>Class defining the "Duplicate Argument" message.</td>
+</tr><tr>
+<td><a href="#ImportShadowedByLoopVar">ImportShadowedByLoopVar</a></td>
+<td>Class defining the "Import Shadowed By Loop Var" message.</td>
+</tr><tr>
+<td><a href="#ImportStarUsed">ImportStarUsed</a></td>
+<td>Class defining the "Import Star Used" message.</td>
+</tr><tr>
+<td><a href="#LateFutureImport">LateFutureImport</a></td>
+<td>Class defining the "Late Future Import" message.</td>
+</tr><tr>
+<td><a href="#Message">Message</a></td>
+<td>Class defining the base for all specific message classes.</td>
+</tr><tr>
+<td><a href="#RedefinedFunction">RedefinedFunction</a></td>
+<td>Class defining the "Redefined Function" message.</td>
+</tr><tr>
+<td><a href="#RedefinedWhileUnused">RedefinedWhileUnused</a></td>
+<td>Class defining the "Redefined While Unused" message.</td>
+</tr><tr>
+<td><a href="#UndefinedExport">UndefinedExport</a></td>
+<td>Class defining the "Undefined Export" message.</td>
+</tr><tr>
+<td><a href="#UndefinedLocal">UndefinedLocal</a></td>
+<td>Class defining the "Undefined Local Variable" message.</td>
+</tr><tr>
+<td><a href="#UndefinedName">UndefinedName</a></td>
+<td>Class defining the "Undefined Name" message.</td>
+</tr><tr>
+<td><a href="#UnusedImport">UnusedImport</a></td>
+<td>Class defining the "Unused Import" message.</td>
+</tr><tr>
+<td><a href="#UnusedVariable">UnusedVariable</a></td>
+<td>Class defining the "Unused Variable" message.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="DuplicateArgument" ID="DuplicateArgument"></a>
+<h2>DuplicateArgument</h2>
+<p>
+    Class defining the "Duplicate Argument" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#DuplicateArgument.__init__">DuplicateArgument</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="DuplicateArgument.__init__" ID="DuplicateArgument.__init__"></a>
+<h4>DuplicateArgument (Constructor)</h4>
+<b>DuplicateArgument</b>(<i>filename, lineno, name</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the duplicate argument (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="ImportShadowedByLoopVar" ID="ImportShadowedByLoopVar"></a>
+<h2>ImportShadowedByLoopVar</h2>
+<p>
+    Class defining the "Import Shadowed By Loop Var" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#ImportShadowedByLoopVar.__init__">ImportShadowedByLoopVar</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="ImportShadowedByLoopVar.__init__" ID="ImportShadowedByLoopVar.__init__"></a>
+<h4>ImportShadowedByLoopVar (Constructor)</h4>
+<b>ImportShadowedByLoopVar</b>(<i>filename, lineno, name, orig_lineno</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the shadowed import (string)
+</dd><dt><i>orig_lineno</i></dt>
+<dd>
+line number of the import (integer)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="ImportStarUsed" ID="ImportStarUsed"></a>
+<h2>ImportStarUsed</h2>
+<p>
+    Class defining the "Import Star Used" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#ImportStarUsed.__init__">ImportStarUsed</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="ImportStarUsed.__init__" ID="ImportStarUsed.__init__"></a>
+<h4>ImportStarUsed (Constructor)</h4>
+<b>ImportStarUsed</b>(<i>filename, lineno, modname</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>modname</i></dt>
+<dd>
+name of the module imported using star import (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="LateFutureImport" ID="LateFutureImport"></a>
+<h2>LateFutureImport</h2>
+<p>
+    Class defining the "Late Future Import" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#LateFutureImport.__init__">LateFutureImport</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="LateFutureImport.__init__" ID="LateFutureImport.__init__"></a>
+<h4>LateFutureImport (Constructor)</h4>
+<b>LateFutureImport</b>(<i>filename, lineno, names</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>names</i></dt>
+<dd>
+names of the imported futures (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="Message" ID="Message"></a>
+<h2>Message</h2>
+<p>
+    Class defining the base for all specific message classes.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr><tr><td>message_args</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#Message.__init__">Message</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#Message.__str__">__str__</a></td>
+<td>Special method return a string representation of the instance object.</td>
+</tr><tr>
+<td><a href="#Message.getMessageData">getMessageData</a></td>
+<td>Public method to get the individual message data elements.</td>
+</tr>
+</table>
+<a NAME="Message.__init__" ID="Message.__init__"></a>
+<h4>Message (Constructor)</h4>
+<b>Message</b>(<i>filename, lineno</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd>
+</dl><a NAME="Message.__str__" ID="Message.__str__"></a>
+<h4>Message.__str__</h4>
+<b>__str__</b>(<i></i>)
+<p>
+        Special method return a string representation of the instance object.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+string representation of the object (string)
+</dd>
+</dl><a NAME="Message.getMessageData" ID="Message.getMessageData"></a>
+<h4>Message.getMessageData</h4>
+<b>getMessageData</b>(<i></i>)
+<p>
+        Public method to get the individual message data elements.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+tuple containing file name, line number and message
+            (string, integer, string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="RedefinedFunction" ID="RedefinedFunction"></a>
+<h2>RedefinedFunction</h2>
+<p>
+    Class defining the "Redefined Function" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#RedefinedFunction.__init__">RedefinedFunction</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="RedefinedFunction.__init__" ID="RedefinedFunction.__init__"></a>
+<h4>RedefinedFunction (Constructor)</h4>
+<b>RedefinedFunction</b>(<i>filename, lineno, name, orig_lineno</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the redefined function (string)
+</dd><dt><i>orig_lineno</i></dt>
+<dd>
+line number of the original definition (integer)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="RedefinedWhileUnused" ID="RedefinedWhileUnused"></a>
+<h2>RedefinedWhileUnused</h2>
+<p>
+    Class defining the "Redefined While Unused" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#RedefinedWhileUnused.__init__">RedefinedWhileUnused</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="RedefinedWhileUnused.__init__" ID="RedefinedWhileUnused.__init__"></a>
+<h4>RedefinedWhileUnused (Constructor)</h4>
+<b>RedefinedWhileUnused</b>(<i>filename, lineno, name, orig_lineno</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the redefined object (string)
+</dd><dt><i>orig_lineno</i></dt>
+<dd>
+line number of the original definition (integer)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UndefinedExport" ID="UndefinedExport"></a>
+<h2>UndefinedExport</h2>
+<p>
+    Class defining the "Undefined Export" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#UndefinedExport.__init__">UndefinedExport</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="UndefinedExport.__init__" ID="UndefinedExport.__init__"></a>
+<h4>UndefinedExport (Constructor)</h4>
+<b>UndefinedExport</b>(<i>filename, lineno, name</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+undefined exported name (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UndefinedLocal" ID="UndefinedLocal"></a>
+<h2>UndefinedLocal</h2>
+<p>
+    Class defining the "Undefined Local Variable" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#UndefinedLocal.__init__">UndefinedLocal</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="UndefinedLocal.__init__" ID="UndefinedLocal.__init__"></a>
+<h4>UndefinedLocal (Constructor)</h4>
+<b>UndefinedLocal</b>(<i>filename, lineno, name, orig_lineno</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the prematurely referenced variable (string)
+</dd><dt><i>orig_lineno</i></dt>
+<dd>
+line number of the variable definition (integer)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UndefinedName" ID="UndefinedName"></a>
+<h2>UndefinedName</h2>
+<p>
+    Class defining the "Undefined Name" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#UndefinedName.__init__">UndefinedName</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="UndefinedName.__init__" ID="UndefinedName.__init__"></a>
+<h4>UndefinedName (Constructor)</h4>
+<b>UndefinedName</b>(<i>filename, lineno, name</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+undefined name (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UnusedImport" ID="UnusedImport"></a>
+<h2>UnusedImport</h2>
+<p>
+    Class defining the "Unused Import" message.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#UnusedImport.__init__">UnusedImport</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="UnusedImport.__init__" ID="UnusedImport.__init__"></a>
+<h4>UnusedImport (Constructor)</h4>
+<b>UnusedImport</b>(<i>filename, lineno, name</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the unused import (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="UnusedVariable" ID="UnusedVariable"></a>
+<h2>UnusedVariable</h2>
+<p>
+    Class defining the "Unused Variable" message.
+</p><p>
+    Indicates that a variable has been explicitly assigned to but not actually
+    used.
+</p>
+<h3>Derived from</h3>
+Message
+<h3>Class Attributes</h3>
+<table>
+<tr><td>message</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#UnusedVariable.__init__">UnusedVariable</a></td>
+<td>Constructor</td>
+</tr>
+</table>
+<a NAME="UnusedVariable.__init__" ID="UnusedVariable.__init__"></a>
+<h4>UnusedVariable (Constructor)</h4>
+<b>UnusedVariable</b>(<i>filename, lineno, names</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>filename</i></dt>
+<dd>
+name of the file (string)
+</dd><dt><i>lineno</i></dt>
+<dd>
+line number (integer)
+</dd><dt><i>name</i></dt>
+<dd>
+name of the unused variable (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.UtilitiesPython2.html	Sun Jan 02 12:01:37 2011 +0100
+++ b/Documentation/Source/index-eric5.UtilitiesPython2.html	Mon Jan 03 17:10:45 2011 +0100
@@ -25,6 +25,13 @@
 This package implements some utilities and tools for Python2
 </p>
 
+<h3>Packages</h3>
+<table>
+<tr>
+<td><a href="index-eric5.UtilitiesPython2.py2flakes.html">py2flakes</a></td>
+<td>Package containg pyflakes for Python2.</td>
+</tr>
+</table>
 
 <h3>Modules</h3>
 <table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/index-eric5.UtilitiesPython2.py2flakes.html	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.UtilitiesPython2.py2flakes</title>
+<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>
+<h1>eric5.UtilitiesPython2.py2flakes</h1>
+<p>
+Package containg pyflakes for Python2.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+<tr>
+<td><a href="eric5.UtilitiesPython2.py2flakes.checker.html">checker</a></td>
+<td></td>
+</tr><tr>
+<td><a href="eric5.UtilitiesPython2.py2flakes.messages.html">messages</a></td>
+<td></td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Mon Jan 03 17:10:45 2011 +0100
@@ -125,6 +125,9 @@
         @param codestring string containing the code to be checked (string).
             If this is given, file must be a single file name.
         """
+        if self.__project is None:
+            self.__project = e5App().getObject("Project")
+        
         self.cancelled = False
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
@@ -179,10 +182,19 @@
                         continue
                 
                 flags = Utilities.extractFlags(source)
-                if ("FileType" in flags and flags["FileType"] != "Python3") or \
-                   file in py2files:
+                ext = os.path.splitext(file)[1]
+                if ("FileType" in flags and 
+                    flags["FileType"] in ["Python", "Python2"]) or \
+                   file in py2files or \
+                   (ext in [".py", ".pyw"] and \
+                    Preferences.getProject("DeterminePyFromProject") and \
+                    self.__project.isOpen() and \
+                    self.__project.isProjectFile(file) and \
+                    self.__project.getProjectLanguage() in ["Python", "Python2"]):
                     isPy3 = False
-                    nok, fname, line, code, error = Utilities.py2compile(file)
+                    nok, fname, line, code, error, warnings = \
+                        Utilities.py2compile(file, 
+                            checkFlakes = Preferences.getFlakes("IncludeInSyntaxCheck"))
                 else:
                     isPy3 = True
                     nok, fname, line, code, error = Utilities.compile(file, source)
@@ -190,27 +202,33 @@
                     self.noResults = False
                     self.__createResultItem(fname, line, error, code)
                 else:
-                    if Preferences.getFlakes("IncludeInSyntaxCheck") and isPy3:
-                        try:
-                            sourceLines = source.splitlines()
-                            warnings = Checker(source, file)
-                            warnings.messages.sort(key = lambda a: a.lineno)
-                            for warning in warnings.messages:
-                                if ignoreStarImportWarnings and \
-                                   isinstance(warning, ImportStarUsed):
-                                    continue
-                                fname, lineno, message = warning.getMessageData()
-                                if not sourceLines[lineno - 1].strip()\
-                                   .endswith("__IGNORE_WARNING__"):
-                                    self.noResults = False
-                                    self.__createResultItem(fname, lineno, message, "", 
-                                                            isWarning = True)
-                        except SyntaxError as err:
-                            if err.text.strip():
-                                msg = err.text.strip()
-                            else:
-                                msg = err.msg
-                            self.__createResultItem(err.filename, err.lineno, msg, "")
+                    if Preferences.getFlakes("IncludeInSyntaxCheck"):
+                        if isPy3:
+                            try:
+                                sourceLines = source.splitlines()
+                                warnings = Checker(source, file)
+                                warnings.messages.sort(key = lambda a: a.lineno)
+                                for warning in warnings.messages:
+                                    if ignoreStarImportWarnings and \
+                                       isinstance(warning, ImportStarUsed):
+                                        continue
+                                    fname, lineno, message = warning.getMessageData()
+                                    if not sourceLines[lineno - 1].strip()\
+                                       .endswith("__IGNORE_WARNING__"):
+                                        self.noResults = False
+                                        self.__createResultItem(fname, lineno, message, 
+                                                                "", isWarning = True)
+                            except SyntaxError as err:
+                                if err.text.strip():
+                                    msg = err.text.strip()
+                                else:
+                                    msg = err.msg
+                                self.__createResultItem(err.filename, err.lineno, msg, "")
+                        else:
+                            for warning in warnings:
+                                self.noResults = False
+                                self.__createResultItem(warning[0], int(warning[1]), 
+                                                        warning[2], "", isWarning = True)
                 progress += 1
             self.checkProgress.setValue(progress)
             QApplication.processEvents()
--- a/Plugins/PluginSyntaxChecker.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Plugins/PluginSyntaxChecker.py	Mon Jan 03 17:10:45 2011 +0100
@@ -141,7 +141,8 @@
         """
         if menuName == "Checks" and self.__projectAct is not None:
             self.__projectAct.setEnabled(
-                e5App().getObject("Project").getProjectLanguage() == "Python3")
+                e5App().getObject("Project").getProjectLanguage() in \
+                    ["Python3", "Python2", "Python"])
     
     def __projectBrowserShowMenu(self, menuName, menu):
         """
@@ -152,7 +153,8 @@
         @param menu reference to the menu (QMenu)
         """
         if menuName == "Checks" and \
-           e5App().getObject("Project").getProjectLanguage() == "Python3":
+           e5App().getObject("Project").getProjectLanguage() in \
+                ["Python3", "Python2", "Python"]:
             self.__projectBrowserMenu = menu
             if self.__projectBrowserAct is None:
                 self.__projectBrowserAct = E5Action(self.trUtf8('Check Syntax'),
@@ -176,7 +178,8 @@
         ppath = project.getProjectPath()
         files = [os.path.join(ppath, file) \
             for file in project.pdata["SOURCES"] \
-                if file.endswith(tuple(Preferences.getPython("Python3Extensions")))]
+                if file.endswith(tuple(Preferences.getPython("Python3Extensions")) +
+                                 tuple(Preferences.getPython("PythonExtensions")))]
         
         self.__projectSyntaxCheckerDialog = SyntaxCheckerDialog()
         self.__projectSyntaxCheckerDialog.show()
@@ -233,7 +236,7 @@
         if menuName == "Checks":
             if not self.__editorAct in menu.actions():
                 menu.addAction(self.__editorAct)
-            self.__editorAct.setEnabled(editor.isPy3File())
+            self.__editorAct.setEnabled(editor.isPy3File() or editor.isPy2File())
     
     def __editorSyntaxCheck(self):
         """
--- a/Preferences/ConfigurationDialog.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationDialog.py	Mon Jan 03 17:10:45 2011 +0100
@@ -131,7 +131,7 @@
                     [self.trUtf8("Printer"), "preferences-printer.png",
                     "PrinterPage", None, None],
                 "py3flakesPage" : \
-                    [self.trUtf8("Py3Flakes"), "warning.png",
+                    [self.trUtf8("PyFlakes"), "warning.png",
                     "Py3FlakesPage", None, None],
                 "pythonPage" : \
                     [self.trUtf8("Python"), "preferences-python.png",
@@ -430,10 +430,13 @@
         """
         self.lexers = {}
         for language in QScintilla.Lexers.getSupportedLanguages():
-            try:
-                self.lexers[language] = PreferencesLexer(language, self)
-            except PreferencesLexerLanguageError:
-                pass
+##            if language in ["Python2", "Python3"]:
+##                language = "Python"
+            if language not in self.lexers:
+                try:
+                    self.lexers[language] = PreferencesLexer(language, self)
+                except PreferencesLexerLanguageError:
+                    pass
         
     def __importConfigurationPage(self, name):
         """
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/HelpDocumentationPage.py	Mon Jan 03 17:10:45 2011 +0100
@@ -30,6 +30,7 @@
         self.setupUi(self)
         self.setObjectName("HelpDocumentationPage")
         
+        self.python2DocDirCompleter = E5FileCompleter(self.python2DocDirEdit)
         self.pythonDocDirCompleter = E5FileCompleter(self.pythonDocDirEdit)
         self.qt4DocDirCompleter = E5FileCompleter(self.qt4DocDirEdit)
         self.pyqt4DocDirCompleter = E5FileCompleter(self.pyqt4DocDirEdit)
@@ -43,6 +44,8 @@
             self.pysideGroup.setEnabled(False)
         
         # set initial values
+        self.python2DocDirEdit.setText(
+            Preferences.getHelp("Python2DocDir"))
         self.pythonDocDirEdit.setText(
             Preferences.getHelp("PythonDocDir"))
         self.qt4DocDirEdit.setText(
@@ -56,6 +59,8 @@
         """
         Public slot to save the Help Documentation configuration.
         """
+        Preferences.setHelp("Python2DocDir",
+            self.python2DocDirEdit.text())
         Preferences.setHelp("PythonDocDir",
             self.pythonDocDirEdit.text())
         Preferences.setHelp("Qt4DocDir",
@@ -66,13 +71,29 @@
             self.pysideDocDirEdit.text())
         
     @pyqtSlot()
-    def on_pythonDocDirButton_clicked(self):
+    def on_python2DocDirButton_clicked(self):
         """
-        Private slot to select the Python documentation directory.
+        Private slot to select the Python 2 documentation directory.
         """
         entry = QFileDialog.getOpenFileName(
             self,
-            self.trUtf8("Select Python documentation entry"),
+            self.trUtf8("Select Python 2 documentation entry"),
+            QUrl(self.python2DocDirEdit.text()).path(),
+            self.trUtf8("HTML Files (*.html *.htm);;"
+                "Compressed Help Files (*.chm);;"
+                "All Files (*)"))
+        
+        if entry:
+            self.python2DocDirEdit.setText(Utilities.toNativeSeparators(entry))
+        
+    @pyqtSlot()
+    def on_pythonDocDirButton_clicked(self):
+        """
+        Private slot to select the Python 3 documentation directory.
+        """
+        entry = QFileDialog.getOpenFileName(
+            self,
+            self.trUtf8("Select Python 3 documentation entry"),
             QUrl(self.pythonDocDirEdit.text()).path(),
             self.trUtf8("HTML Files (*.html *.htm);;"
                 "Compressed Help Files (*.chm);;"
@@ -130,4 +151,4 @@
     @param dlg reference to the configuration dialog
     """
     page = HelpDocumentationPage()
-    return page
\ No newline at end of file
+    return page
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.ui	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/HelpDocumentationPage.ui	Mon Jan 03 17:10:45 2011 +0100
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>526</width>
-    <height>594</height>
+    <height>674</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
@@ -32,15 +32,51 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="groupBox_5">
+     <property name="title">
+      <string>Python 2 Documentation</string>
+     </property>
+     <layout class="QGridLayout" name="_2">
+      <item row="0" column="1">
+       <widget class="QPushButton" name="python2DocDirButton">
+        <property name="toolTip">
+         <string>Press to select the Python 2 documentation directory via a dialog</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLineEdit" name="python2DocDirEdit">
+        <property name="toolTip">
+         <string>Enter the Python 2 documentation directory</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="2">
+       <widget class="QLabel" name="textLabel1_8_3">
+        <property name="text">
+         <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHON2DOCDIR environment variable, if set.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="groupBox_4">
      <property name="title">
-      <string>Python Documentation</string>
+      <string>Python 3 Documentation</string>
      </property>
      <layout class="QGridLayout">
       <item row="0" column="1">
        <widget class="QPushButton" name="pythonDocDirButton">
         <property name="toolTip">
-         <string>Press to select the Python documentation directory via a dialog</string>
+         <string>Press to select the Python 3 documentation directory via a dialog</string>
         </property>
         <property name="text">
          <string>...</string>
@@ -50,14 +86,17 @@
       <item row="0" column="0">
        <widget class="QLineEdit" name="pythonDocDirEdit">
         <property name="toolTip">
-         <string>Enter the Python documentation directory</string>
+         <string>Enter the Python 3 documentation directory</string>
         </property>
        </widget>
       </item>
       <item row="1" column="0" colspan="2">
        <widget class="QLabel" name="textLabel1_8_2">
         <property name="text">
-         <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHONDOCDIR environment variable, if set.</string>
+         <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHON3DOCDIR environment variable, if set.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
         </property>
        </widget>
       </item>
@@ -92,6 +131,9 @@
         <property name="text">
          <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the QT4DOCDIR environment variable, if set.</string>
         </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
      </layout>
@@ -125,6 +167,9 @@
         <property name="text">
          <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYQT4DOCDIR environment variable, if set.</string>
         </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
      </layout>
@@ -158,6 +203,9 @@
         <property name="text">
          <string>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYSIDEDOCDIR environment variable, if set.</string>
         </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
      </layout>
@@ -179,6 +227,8 @@
   </layout>
  </widget>
  <tabstops>
+  <tabstop>python2DocDirEdit</tabstop>
+  <tabstop>python2DocDirButton</tabstop>
   <tabstop>pythonDocDirEdit</tabstop>
   <tabstop>pythonDocDirButton</tabstop>
   <tabstop>qt4DocDirEdit</tabstop>
--- a/Preferences/ConfigurationPages/ProjectPage.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/ProjectPage.py	Mon Jan 03 17:10:45 2011 +0100
@@ -49,6 +49,8 @@
             Preferences.getProject("XMLTimestamp"))
         self.projectRecentSpinBox.setValue(
             Preferences.getProject("RecentNumber"))
+        self.pythonVariantCheckBox.setChecked(
+            Preferences.getProject("DeterminePyFromProject"))
         
     def save(self):
         """
@@ -78,6 +80,8 @@
             self.projectTimestampCheckBox.isChecked())
         Preferences.setProject("RecentNumber", 
             self.projectRecentSpinBox.value())
+        Preferences.setProject("DeterminePyFromProject",
+            self.pythonVariantCheckBox.isChecked())
     
 def create(dlg):
     """
--- a/Preferences/ConfigurationPages/ProjectPage.ui	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/ProjectPage.ui	Mon Jan 03 17:10:45 2011 +0100
@@ -7,10 +7,10 @@
     <x>0</x>
     <y>0</y>
     <width>602</width>
-    <height>624</height>
+    <height>623</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
@@ -187,6 +187,25 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Python Variant</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QCheckBox" name="pythonVariantCheckBox">
+        <property name="toolTip">
+         <string>Select to determine the Python variant from the project language</string>
+        </property>
+        <property name="text">
+         <string>Determine Python variant from project language</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="groupBox_7">
      <property name="title">
       <string>Recent Projects</string>
@@ -258,6 +277,7 @@
   <tabstop>projectSessionAllBpCheckBox</tabstop>
   <tabstop>projectAutoCompileFormsCheckBox</tabstop>
   <tabstop>projectAutoCompileResourcesCheckBox</tabstop>
+  <tabstop>pythonVariantCheckBox</tabstop>
   <tabstop>projectRecentSpinBox</tabstop>
  </tabstops>
  <resources/>
--- a/Preferences/ConfigurationPages/Py3FlakesPage.ui	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/Py3FlakesPage.ui	Mon Jan 03 17:10:45 2011 +0100
@@ -14,7 +14,7 @@
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
-      <string>&lt;b&gt;Configure Py3Flakes Behavior&lt;/b&gt;</string>
+      <string>&lt;b&gt;Configure PyFlakes Behavior&lt;/b&gt;</string>
      </property>
     </widget>
    </item>
@@ -37,7 +37,7 @@
       <string>Select to include a py3flakes check after the syntax check</string>
      </property>
      <property name="text">
-      <string>Include Py3Flakes Checks</string>
+      <string>Include PyFlakes Checks</string>
      </property>
     </widget>
    </item>
--- a/Preferences/ConfigurationPages/PythonPage.ui	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/ConfigurationPages/PythonPage.ui	Mon Jan 03 17:10:45 2011 +0100
@@ -10,7 +10,7 @@
     <height>473</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
@@ -120,6 +120,25 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
+      <string>Python 2 Interpreter</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Please configure the Python 2 interpreter on the 'Python 2 Debugger' page.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
--- a/Preferences/__init__.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Preferences/__init__.py	Mon Jan 03 17:10:45 2011 +0100
@@ -494,6 +494,8 @@
         "HideGeneratedForms" : False,
         "FollowEditor" : True, 
         "RecentNumber" : 9, 
+        "DeterminePyFromProject" : True,
+        # TODO: add this to config dialog
     }
     
     # defaults for the multi project settings
@@ -565,6 +567,7 @@
         "HelpViewerType" : 1,      # this coresponds with the radio button id
         "CustomViewer" : "",
         "PythonDocDir" : "",
+        "Python2DocDir" : "", 
         "QtDocDir" : "",
         "Qt4DocDir" : "",
         "PyQt4DocDir" : "",
--- a/Project/ProjectSourcesBrowser.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Project/ProjectSourcesBrowser.py	Mon Jan 03 17:10:45 2011 +0100
@@ -529,9 +529,11 @@
         for itm in itmList:
             if isinstance(itm, BrowserFileItem):
                 if itm.isPython2File():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python2")
+##                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python2")
+                    self.sourceFile[str, int].emit(itm.fileName(), 1)
                 elif itm.isPython3File():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3")
+##                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3")
+                    self.sourceFile[str, int].emit(itm.fileName(), 1)
                 elif itm.isRubyFile():
                     self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby")
                 elif itm.isDFile():
--- a/QScintilla/Editor.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/QScintilla/Editor.py	Mon Jan 03 17:10:45 2011 +0100
@@ -1149,6 +1149,8 @@
             language = act.data()
             if language:
                 self.setLanguage(self.supportedLanguages[language][1])
+                self.filetype = language
+                self.__autoSyntaxCheck()
         
     def __languageChanged(self, language, propagate = True):
         """
@@ -1166,6 +1168,8 @@
             self.setLanguage("dummy.pygments", pyname = pyname)
         else:
             self.setLanguage(self.supportedLanguages[language][1], propagate = propagate)
+            self.filetype = language
+            self.__autoSyntaxCheck()
         
     def __resetLanguage(self, propagate = True):
         """
@@ -1343,8 +1347,23 @@
         if self.project.isOpen() and self.project.isProjectFile(filename):
             language = self.project.getEditorLexerAssoc(os.path.basename(filename))
         if not language:
-            filename = os.path.basename(filename)
-            language = Preferences.getEditorLexerAssoc(filename)
+            ext = os.path.splitext(filename)[1]
+            if ext in [".py", ".pyw"]  and \
+               Preferences.getProject("DeterminePyFromProject")and \
+               self.project.isOpen() and \
+               self.project.isProjectFile(self.fileName):
+                if self.project.getProjectLanguage() in ["Python", "Python2"]:
+                    language = "Python2"
+                else:
+                    language = "Python3"
+            else:
+                filename = os.path.basename(filename)
+                language = Preferences.getEditorLexerAssoc(filename)
+                if language == "Python":
+                    if self.isPy2File():
+                        language = "Python2"
+                    else:
+                        language = "Python3"
         if language.startswith("Pygments|"):
             pyname = language.split("|", 1)[1]
             language = ""
@@ -1569,10 +1588,25 @@
         
         @return flag indicating a Python file (boolean)
         """
-        return self.filetype in ["Python", "Python2"] or \
-            (self.filetype == "" and \
-             self.fileName is not None and \
-             os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python2'))
+        if self.filetype in ["Python", "Python2"]:
+            return True
+        
+        if self.filetype == "" and self.fileName is not None:
+            ext = os.path.splitext(self.fileName)[1]
+            if ext in [".py", ".pyw"] and \
+               Preferences.getProject("DeterminePyFromProject") and \
+               self.project.isOpen() and \
+               self.project.isProjectFile(self.fileName):
+                return self.project.getProjectLanguage() in ["Python", "Python2"]
+            
+            if ext in self.dbs.getExtensions('Python2'):
+                return True
+        
+        return False
+##        return self.filetype in ["Python", "Python2"] or \
+##            (self.filetype == "" and \
+##             self.fileName is not None and \
+##             os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python2'))
 
     def isPy3File(self):
         """
@@ -1580,10 +1614,25 @@
         
         @return flag indicating a Python3 file (boolean)
         """
-        return self.filetype == "Python3" or \
-            (self.filetype == "" and \
-             self.fileName is not None and \
-             os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python3'))
+        if self.filetype in ["Python3"]:
+            return True
+        
+        if self.filetype == "" and self.fileName is not None:
+            ext = os.path.splitext(self.fileName)[1]
+            if ext in [".py", ".pyw"] and \
+               Preferences.getProject("DeterminePyFromProject") and \
+               self.project.isOpen() and \
+               self.project.isProjectFile(self.fileName):
+                return self.project.getProjectLanguage() in ["Python3"]
+            
+            if ext in self.dbs.getExtensions('Python3'):
+                return True
+        
+        return False
+##        return self.filetype == "Python3" or \
+##            (self.filetype == "" and \
+##             self.fileName is not None and \
+##             os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python3'))
 
     def isRubyFile(self):
         """
@@ -4174,10 +4223,15 @@
                                 msg = err.msg
                             self.toggleSyntaxError(err.lineno, True, msg)
             elif self.isPy2File():
-                syntaxError, _fn, errorline, _code, _error = \
-                    Utilities.py2compile(self.fileName)
+                syntaxError, _fn, errorline, _code, _error, warnings = \
+                    Utilities.py2compile(
+                        self.fileName, 
+                        checkFlakes = Preferences.getFlakes("IncludeInSyntaxCheck"))
                 if syntaxError:
                     self.toggleSyntaxError(int(errorline), True, _error)
+                else:
+                    for warning in warnings:
+                        self.toggleFlakesWarning(int(warning[1]), True, warning[2])
         
     def __showCodeMetrics(self):
         """
--- a/QScintilla/Lexers/LexerPython.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/QScintilla/Lexers/LexerPython.py	Mon Jan 03 17:10:45 2011 +0100
@@ -18,17 +18,28 @@
     """ 
     Subclass to implement some additional lexer dependant methods.
     """
-    def __init__(self, parent=None):
+    def __init__(self, variant = "", parent = None):
         """
         Constructor
         
+        @param variant name of the language variant (string)
         @param parent parent widget of this lexer
         """
         QsciLexerPython.__init__(self, parent)
         Lexer.__init__(self)
         
+        self.variant = variant
         self.commentString = "#"
-
+    
+    def language(self):
+        """
+        Public method to get the lexer language.
+        """
+        if not self.variant:
+            return QsciLexerPython.language(self)
+        else:
+            return self.variant
+    
     def initProperties(self):
         """
         Public slot to initialize the properties.
--- a/QScintilla/Lexers/__init__.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/QScintilla/Lexers/__init__.py	Mon Jan 03 17:10:45 2011 +0100
@@ -88,7 +88,8 @@
         "PostScript" : [QApplication.translate('Lexers', "PostScript"),   'dummy.ps'], 
         "Povray"     : [QApplication.translate('Lexers', "Povray"),       'dummy.pov'],
         "Properties" : [QApplication.translate('Lexers', "Properties"),   'dummy.ini'],
-        "Python"     : [QApplication.translate('Lexers', "Python"),       'dummy.py'], 
+        "Python2"    : [QApplication.translate('Lexers', "Python2"),      'dummy.py'], 
+        "Python3"    : [QApplication.translate('Lexers', "Python3"),      'dummy.py'], 
         "Ruby"       : [QApplication.translate('Lexers', "Ruby"),         'dummy.rb'],
         "SQL"        : [QApplication.translate('Lexers', "SQL"),          'dummy.sql'],
         "TCL"        : [QApplication.translate('Lexers', "TCL"),          'dummy.tcl'], 
@@ -119,7 +120,7 @@
         try:
             if language in ["Python", "Python2", "Python3"]:
                 from .LexerPython import LexerPython
-                return LexerPython(parent)
+                return LexerPython(language, parent)
             elif language == "C++":
                 from .LexerCPP import LexerCPP
                 return LexerCPP(parent, 
--- a/QScintilla/Shell.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/QScintilla/Shell.py	Mon Jan 03 17:10:45 2011 +0100
@@ -220,7 +220,7 @@
         for key in list(self.historyLists.keys()):
             self.saveHistory(key)
         
-    def __bindLexer(self, language = 'Python'):
+    def __bindLexer(self, language = 'Python3'):
         """
         Private slot to set the lexer.
         
@@ -1429,4 +1429,4 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("shellPage")
\ No newline at end of file
+        e5App().getObject("UserInterface").showPreferences("shellPage")
--- a/QScintilla/TypingCompleters/__init__.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/QScintilla/TypingCompleters/__init__.py	Mon Jan 03 17:10:45 2011 +0100
@@ -17,7 +17,7 @@
     @return reference to the instanciated lexer object (QsciLexer)
     """
     try:
-        if language == "Python":
+        if language in ["Python", "Python2", "Python3"]:
             from .CompleterPython import CompleterPython
             return CompleterPython(editor, parent)
         elif language == "Ruby":
--- a/UI/Browser.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/UI/Browser.py	Mon Jan 03 17:10:45 2011 +0100
@@ -324,9 +324,11 @@
         for itm in itmList:
             if isinstance(itm, BrowserFileItem):
                 if itm.isPython2File():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python")
+##                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python")
+                    self.sourceFile[str, int].emit(itm.fileName(), 1)
                 elif itm.isPython3File():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3")
+##                    self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3")
+                    self.sourceFile[str, int].emit(itm.fileName(), 1)
                 elif itm.isRubyFile():
                     self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby")
                 elif itm.isDFile():
--- a/UI/UserInterface.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/UI/UserInterface.py	Mon Jan 03 17:10:45 2011 +0100
@@ -1674,9 +1674,9 @@
         self.actions.append(self.helpviewerAct)
         
         self.__initQtDocActions()
-        self.__initPythonDocAction()
+        self.__initPythonDocActions()
         self.__initEricDocAction()
-        self.__initPySideDocActions()
+        self.__initPySideDocAction()
       
         self.versionAct = E5Action(self.trUtf8('Show Versions'),
                 self.trUtf8('Show &Versions'), 0, 0, self, 'show_versions')
@@ -2127,7 +2127,7 @@
     
     def __initQtDocActions(self):
         """
-        Private slot to initilize the action to show the Qt documentation.
+        Private slot to initialize the action to show the Qt documentation.
         """
         self.qt4DocAct = E5Action(self.trUtf8('Qt4 Documentation'),
                 self.trUtf8('Qt&4 Documentation'), 0, 0, self, 'qt4_documentation')
@@ -2153,25 +2153,42 @@
         self.pyqt4DocAct.triggered[()].connect(self.__showPyQt4Doc)
         self.actions.append(self.pyqt4DocAct)
         
-    def __initPythonDocAction(self):
-        """
-        Private slot to initilize the action to show the Python documentation.
-        """
-        self.pythonDocAct = E5Action(self.trUtf8('Python Documentation'),
-            self.trUtf8('&Python Documentation'), 0, 0, self, 'python_documentation')
-        self.pythonDocAct.setStatusTip(self.trUtf8('Open Python Documentation'))
+    def __initPythonDocActions(self):
+        """
+        Private slot to initialize the actions to show the Python documentation.
+        """
+        self.pythonDocAct = E5Action(self.trUtf8('Python 3 Documentation'),
+            self.trUtf8('Python &3 Documentation'), 0, 0, self, 'python3_documentation')
+        self.pythonDocAct.setStatusTip(self.trUtf8('Open Python 3 Documentation'))
         self.pythonDocAct.setWhatsThis(self.trUtf8(
-                """<b>Python Documentation</b>"""
-                """<p>Display the python documentation."""
+                """<b>Python 3 Documentation</b>"""
+                """<p>Display the Python 3 documentation."""
                 """ If no documentation directory is configured,"""
-                """ the location of the python documentation is assumed to be the doc"""
-                """ directory underneath the location of the python executable on"""
+                """ the location of the Python 3 documentation is assumed to be the doc"""
+                """ directory underneath the location of the Python 3 executable on"""
                 """ Windows and <i>/usr/share/doc/packages/python/html</i> on Unix."""
-                """ Set PYTHONDOCDIR in your environment to override this. </p>"""
+                """ Set PYTHON3DOCDIR in your environment to override this. </p>"""
         ))
         self.pythonDocAct.triggered[()].connect(self.__showPythonDoc)
         self.actions.append(self.pythonDocAct)
         
+        self.python2DocAct = E5Action(self.trUtf8('Python 2 Documentation'),
+            self.trUtf8('Python &2 Documentation'), 0, 0, self, 'python2_documentation')
+        self.python2DocAct.setStatusTip(self.trUtf8('Open Python 2 Documentation'))
+        self.python2DocAct.setWhatsThis(self.trUtf8(
+                """<b>Python 2 Documentation</b>"""
+                """<p>Display the Python 2 documentation."""
+                """ If no documentation directory is configured,"""
+                """ the location of the Python 2 documentation is assumed to be the doc"""
+                """ directory underneath the location of the configured Python 2"""
+                """ executable on Windows and"""
+                """ <i>/usr/share/doc/packages/python/html/python-docs-html</i>"""
+                """ on Unix. Set PYTHON2DOCDIR in your environment to override"""
+                """ this. </p>"""
+        ))
+        self.python2DocAct.triggered[()].connect(self.__showPython2Doc)
+        self.actions.append(self.python2DocAct)
+        
     def __initEricDocAction(self):
         """
         Private slot to initialize the action to show the eric5 documentation.
@@ -2188,9 +2205,9 @@
         self.ericDocAct.triggered[()].connect(self.__showEricDoc)
         self.actions.append(self.ericDocAct)
         
-    def __initPySideDocActions(self):
-        """
-        Private slot to initilize the action to show the PySide documentation.
+    def __initPySideDocAction(self):
+        """
+        Private slot to initialize the action to show the PySide documentation.
         """
         try:
             import PySide
@@ -2324,6 +2341,7 @@
         self.__menus["help"].addSeparator()
         self.__menus["help"].addAction(self.ericDocAct)
         self.__menus["help"].addAction(self.pythonDocAct)
+        self.__menus["help"].addAction(self.python2DocAct)
         self.__menus["help"].addAction(self.qt4DocAct)
         self.__menus["help"].addAction(self.pyqt4DocAct)
         if self.pysideDocAct is not None:
@@ -4481,15 +4499,15 @@
     
     def __showPythonDoc(self):
         """
-        Private slot to show the Python documentation.
+        Private slot to show the Python 3 documentation.
         """
         pythonDocDir = Preferences.getHelp("PythonDocDir")
         if not pythonDocDir:
             if Utilities.isWindowsPlatform():
-                pythonDocDir = Utilities.getEnvironmentEntry("PYTHONDOCDIR", 
+                pythonDocDir = Utilities.getEnvironmentEntry("PYTHON3DOCDIR", 
                     os.path.join(os.path.dirname(sys.executable), "doc"))
             else:
-                pythonDocDir = Utilities.getEnvironmentEntry("PYTHONDOCDIR", 
+                pythonDocDir = Utilities.getEnvironmentEntry("PYTHON3DOCDIR", 
                     '/usr/share/doc/packages/python/html')
         if not pythonDocDir.startswith("http://") and \
            not pythonDocDir.startswith("https://"):
@@ -4534,6 +4552,60 @@
             else:
                 self.__customViewer(home)
 
+    def __showPython2Doc(self):
+        """
+        Private slot to show the Python 2 documentation.
+        """
+        pythonDocDir = Preferences.getHelp("Python2DocDir")
+        executable = Preferences.getDebugger("PythonInterpreter")
+        if not pythonDocDir:
+            if Utilities.isWindowsPlatform():
+                if executable:
+                    default = os.path.join(os.path.dirname(executable), "doc")
+                else:
+                    default = ""
+                pythonDocDir = Utilities.getEnvironmentEntry("PYTHON2DOCDIR", default)
+            else:
+                pythonDocDir = Utilities.getEnvironmentEntry("PYTHON3DOCDIR", 
+                    '/usr/share/doc/packages/python/html/python-docs-html')
+        if not pythonDocDir.startswith("http://") and \
+           not pythonDocDir.startswith("https://"):
+            if pythonDocDir.startswith("file://"):
+                pythonDocDir = pythonDocDir[7:]
+            if not os.path.splitext(pythonDocDir)[1]:
+                home = Utilities.normjoinpath(pythonDocDir, 'index.html')
+            else:
+                home = pythonDocDir
+            
+            if not os.path.exists(home):
+                E5MessageBox.warning(self,
+                    self.trUtf8("Documentation Missing"),
+                    self.trUtf8("""<p>The documentation starting point"""
+                                """ "<b>{0}</b>" could not be found.</p>""")\
+                        .format(home))
+                return
+            
+            if not home.endswith(".chm"):
+                if Utilities.isWindowsPlatform():
+                    home = "file:///" + Utilities.fromNativeSeparators(home)
+                else:
+                    home = "file://" + home
+        else:
+            home = pythonDocDir
+        
+        if home.endswith(".chm"):
+            self.__chmViewer(home)
+        else:
+            hvType = Preferences.getHelp("HelpViewerType")
+            if hvType == 1:
+                self.launchHelpViewer(home)
+            elif hvType == 2:
+                self.__assistant(home, version = 4)
+            elif hvType == 3:
+                self.__webBrowser(home)
+            else:
+                self.__customViewer(home)
+
     def __showQt4Doc(self):
         """
         Private slot to show the Qt4 documentation.
--- a/Utilities/__init__.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/Utilities/__init__.py	Mon Jan 03 17:10:45 2011 +0100
@@ -1109,15 +1109,19 @@
     
     return (False, None, None, None, None)
 
-def py2compile(file):
+def py2compile(file, checkFlakes = False):
     """
     Function to compile one Python 2 source file to Python 2 bytecode.
     
     @param file source filename (string)
+    @keyparam checkFlakes flag indicating to do a pyflakes check (boolean)
     @return A tuple indicating status (True = an error was found), the
-        filename, the linenumber, the code string and the error message
-        (boolean, string, string, string, string). The values are only
-        valid, if the status is True.
+        file name, the line number, the code string, the error message
+        and a list of tuples of pyflakes warnings indicating file name,
+        line number and message (boolean, string, string, string, string, 
+        list of (string, string, string)). The syntax error values are only
+        valid, if the status is True. The pyflakes list will be empty, if a
+        syntax error was detected by the syntax checker.
     """
     interpreter = Preferences.getDebugger("PythonInterpreter")
     if interpreter == "" or not isExecutable(interpreter):
@@ -1127,9 +1131,16 @@
     
     syntaxChecker = os.path.join(getConfig('ericDir'), 
                                  "UtilitiesPython2", "Py2SyntaxChecker.py")
+    args = [syntaxChecker]
+    if checkFlakes:
+        if Preferences.getFlakes("IgnoreStarImportWarnings"):
+            args.append("-fi")
+        else:
+            args.append("-fs")
+    args.append(file)
     proc = QProcess()
     proc.setProcessChannelMode(QProcess.MergedChannels)
-    proc.start(interpreter, [syntaxChecker, file])
+    proc.start(interpreter, args)
     finished = proc.waitForFinished(30000)
     if finished:
         output = \
@@ -1137,15 +1148,26 @@
                     Preferences.getSystem("IOEncoding"), 
                     'replace').splitlines()
         
-        res = output[0] == "ERROR"
-        if res:
+        syntaxerror = output[0] == "ERROR"
+        if syntaxerror:
             fn = output[1]
             line = output[2]
             code = output[3]
             error = output[4]
-            return (True, fn, line, code, error)
+            return (True, fn, line, code, error, [])
         else:
-            return (False, None, None, None, None)
+            index = 5
+            warnings = []
+            while index < len(output):
+                if output[index] == "FLAKES_ERROR":
+                    return (True, output[index + 1], output[index + 2], "", 
+                            output[index + 3], [])
+                else:
+                    warnings.append((output[index + 1], output[index + 2], 
+                                     output[index + 3]))
+                index += 4
+            
+            return (False, None, None, None, None, warnings)
     
     return (True, file, "1", "", 
         QCoreApplication.translate("Utilities",
--- a/UtilitiesPython2/Py2SyntaxChecker.py	Sun Jan 02 12:01:37 2011 +0100
+++ b/UtilitiesPython2/Py2SyntaxChecker.py	Mon Jan 03 17:10:45 2011 +0100
@@ -12,6 +12,9 @@
 import traceback
 from codecs import BOM_UTF8, BOM_UTF16, BOM_UTF32
 
+from py2flakes.checker import Checker
+from py2flakes.messages import ImportStarUsed
+
 coding_regexps = [
     (2, re.compile(r'''coding[:=]\s*([-\w_.]+)''')), 
     (1, re.compile(r'''<\?xml.*\bencoding\s*=\s*['"]([-\w_.]+)['"]\?>''')), 
@@ -72,9 +75,10 @@
     
     @param file source filename (string)
     @return A tuple indicating status (1 = an error was found), the
-        filename, the linenumber, the code string and the error message
-        (boolean, string, string, string, string). The values are only
-        valid, if the status equals 1.
+        filename, the linenumber, the code string, the error message
+        and the full source code (boolean, string, string, string, 
+        string, string). The values are only valid, if the status 
+        equals 1.
     """
     import __builtin__
     try:
@@ -82,7 +86,7 @@
         codestring, encoding = decode(f.read())
         f.close()
     except IOError, msg:
-        return (1, file, "1", "", "I/O Error: %s" % unicode(msg))
+        return (1, file, "1", "", "I/O Error: %s" % unicode(msg), "")
 
     if type(codestring) == type(u""):
         codestring = codestring.encode('utf-8')
@@ -103,9 +107,8 @@
                 return (0, None, None, None, None)
             template = quixote.ptl_compile.Template(codestring, file)
             template.compile()
-            codeobject = template.code
         else:
-            codeobject = __builtin__.compile(codestring, file, 'exec')
+            __builtin__.compile(codestring, file, 'exec')
     except SyntaxError, detail:
         lines = traceback.format_exception_only(SyntaxError, detail)
         match = re.match('\s*File "(.+)", line (\d+)', 
@@ -126,7 +129,7 @@
             line = detail.lineno and detail.lineno or 1
             code = ""
             error = detail.msg
-        return (1, fn, line, code, error)
+        return (1, fn, line, code, error, codestring)
     except ValueError, detail:
         try:
             fn = detail.filename
@@ -137,31 +140,67 @@
             line = 1
             error = unicode(detail)
         code = ""
-        return (1, fn, line, code, error)
+        return (1, fn, line, code, error, codestring)
     except StandardError, detail:
         try:
             fn = detail.filename
             line = detail.lineno
             code = ""
             error = detail.msg
-            return (1, fn, line, code, error)
+            return (1, fn, line, code, error, codestring)
         except:         # this catchall is intentional
             pass
     
-    return (0, None, None, None, None)
+    return (0, None, None, None, None, codestring)
+
+def flakesCheck(fileName, codestring, ignoreStarImportWarnings):
+    """
+    Function to perform a pyflakes check.
+    
+    @param fileName name of the file (string)
+    @param codestring source code to be checked (string)
+    @param ignoreStarImportWarnings flag indicating to 
+        ignore 'star import' warnings (boolean)
+    @return list of strings containing the warnings
+        (marker, file name, line number, message)
+    """
+    strings = []
+    lines = codestring.splitlines()
+    try:
+        warnings = Checker(codestring, fileName)
+        warnings.messages.sort(key = lambda a: a.lineno)
+        for warning in warnings.messages:
+            if ignoreStarImportWarnings and \
+               isinstance(warning, ImportStarUsed):
+                continue
+            
+            _fn, lineno, message = warning.getMessageData()
+            if not lines[lineno - 1].strip()\
+               .endswith("__IGNORE_WARNING__"):
+                strings.extend(["FLAKES_WARNING", _fn, lineno, message])
+    except SyntaxError as err:
+        if err.text.strip():
+            msg = err.text.strip()
+        else:
+            msg = err.msg
+        strings.extend(["FLAKES_ERROR", fileName, err.lineno, msg])
+    
+    return strings
 
 if __name__ == "__main__":
-    if len(sys.argv) != 2:
+    if len(sys.argv) < 2 or \
+       len(sys.argv) > 3 or \
+       (len(sys.argv) == 3 and sys.argv[1] not in ["-fi", "-fs"]):
         print "ERROR"
         print ""
         print ""
         print ""
         print "No file name given."
     else:
-        filename = sys.argv[1]
-        res, fname, line, code, error = compile(filename)
+        filename = sys.argv[-1]
+        syntaxerror, fname, line, code, error, codestring = compile(filename)
         
-        if res:
+        if syntaxerror:
             print "ERROR"
         else:
             print "NO_ERROR"
@@ -169,6 +208,12 @@
         print line
         print code
         print error
+        
+        if not syntaxerror and sys.argv[1] in ["-fi", "-fs"]:
+            # do pyflakes check
+            warningLines = flakesCheck(filename, codestring, sys.argv[1] == "-fi")
+            for warningLine in warningLines:
+                print warningLine
     
     sys.exit(0)
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UtilitiesPython2/py2flakes/__init__.py	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,13 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package containg pyflakes for Python2.
+"""
+
+__version__ = '0.4.0'
+    
+#
+# eflag: FileType = Python2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UtilitiesPython2/py2flakes/checker.py	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,535 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+# Original (c) 2005-2008 Divmod, Inc.
+#
+# This module is based on pyflakes for Python2 but was heavily hacked to
+# work within eric5
+
+import __builtin__
+import os.path
+import compiler
+from compiler import ast
+
+from py2flakes import messages
+
+class Binding(object):
+    """
+    Represents the binding of a value to a name.
+
+    The checker uses this to keep track of which names have been bound and
+    which names have not. See L{Assignment} for a special type of binding that
+    is checked with stricter rules.
+    """
+    def __init__(self, name, source):
+        self.name = name
+        self.source = source
+        self.used = False
+
+    def __str__(self):
+        return self.name
+
+    def __repr__(self):
+        return '<%s object %r from line %r at 0x%x>' % (
+            self.__class__.__name__,
+            self.name,
+            self.source.lineno,
+            id(self))
+
+class UnBinding(Binding):
+    '''
+    Created by the 'del' operator.
+    '''
+
+class Importation(Binding):
+    """
+    A binding created by an import statement.
+    """
+    def __init__(self, name, source):
+        self.fullName = name
+        name = name.split('.')[0]
+        super(Importation, self).__init__(name, source)
+
+class Argument(Binding):
+    """
+    Represents binding a name as an argument.
+    """
+
+class Assignment(Binding):
+    """
+    Represents binding a name with an explicit assignment.
+
+    The checker will raise warnings for any Assignment that isn't used. Also,
+    the checker does not consider assignments in tuple/list unpacking to be
+    Assignments, rather it treats them as simple Bindings.
+    """
+
+class FunctionDefinition(Binding):
+    """
+    Represents a function definition.
+    """
+    pass
+
+class ExportBinding(Binding):
+    """
+    A binding created by an __all__ assignment.  If the names in the list
+    can be determined statically, they will be treated as names for export and
+    additional checking applied to them.
+
+    The only __all__ assignment that can be recognized is one which takes
+    the value of a literal list containing literal strings.  For example::
+
+        __all__ = ["foo", "bar"]
+
+    Names which are imported and not otherwise used but appear in the value of
+    __all__ will not have an unused import warning reported for them.
+    """
+    def names(self):
+        """
+        Return a list of the names referenced by this binding.
+        """
+        names = []
+        if isinstance(self.source, ast.List):
+            for node in self.source.nodes:
+                if isinstance(node, ast.Const):
+                    names.append(node.value)
+        return names
+
+class Scope(dict):
+    """
+    Class defining the scope base class.
+    """
+    importStarred = False       # set to True when import * is found
+
+    def __repr__(self):
+        return '<%s at 0x%x %s>' % (self.__class__.__name__, id(self), dict.__repr__(self))
+
+    def __init__(self):
+        super(Scope, self).__init__()
+
+class ClassScope(Scope):
+    """
+    Class representing a name scope for a class.
+    """
+    pass
+
+class FunctionScope(Scope):
+    """
+    Class representing a name scope for a function.
+    """
+    def __init__(self):
+        super(FunctionScope, self).__init__()
+        self.globals = {}
+
+class ModuleScope(Scope):
+    """
+    Class representing a name scope for a module.
+    """
+    pass
+
+# Globally defined names which are not attributes of the __builtin__ module.
+_MAGIC_GLOBALS = ['__file__', '__builtins__']
+
+class Checker(object):
+    """
+    Class to check the cleanliness and sanity of Python code.
+    """
+    nodeDepth = 0
+    traceTree = False
+
+    def __init__(self, module, filename='(none)'):
+        """
+        Constructor
+        
+        @param module parsed module tree or module source code
+        @param filename name of the module file (string)
+        """
+        self._deferredFunctions = []
+        self._deferredAssignments = []
+        self.dead_scopes = []
+        self.messages = []
+        self.filename = filename
+        self.scopeStack = [ModuleScope()]
+        self.futuresAllowed = True
+        
+        if isinstance(module, str):
+            module = compiler.parse(module)
+        self.handleChildren(module)
+        self._runDeferred(self._deferredFunctions)
+        # Set _deferredFunctions to None so that deferFunction will fail
+        # noisily if called after we've run through the deferred functions.
+        self._deferredFunctions = None
+        self._runDeferred(self._deferredAssignments)
+        # Set _deferredAssignments to None so that deferAssignment will fail
+        # noisly if called after we've run through the deferred assignments.
+        self._deferredAssignments = None
+        del self.scopeStack[1:]
+        self.popScope()
+        self.check_dead_scopes()
+
+    def deferFunction(self, callable):
+        '''
+        Schedule a function handler to be called just before completion.
+
+        This is used for handling function bodies, which must be deferred
+        because code later in the file might modify the global scope. When
+        `callable` is called, the scope at the time this is called will be
+        restored, however it will contain any new bindings added to it.
+        '''
+        self._deferredFunctions.append((callable, self.scopeStack[:]))
+
+    def deferAssignment(self, callable):
+        """
+        Schedule an assignment handler to be called just after deferred
+        function handlers.
+        """
+        self._deferredAssignments.append((callable, self.scopeStack[:]))
+
+    def _runDeferred(self, deferred):
+        """
+        Run the callables in C{deferred} using their associated scope stack.
+        """
+        for handler, scope in deferred:
+            self.scopeStack = scope
+            handler()
+
+    def scope(self):
+        return self.scopeStack[-1]
+    scope = property(scope)
+
+    def popScope(self):
+        self.dead_scopes.append(self.scopeStack.pop())
+
+    def check_dead_scopes(self):
+        """
+        Look at scopes which have been fully examined and report names in them
+        which were imported but unused.
+        """
+        for scope in self.dead_scopes:
+            export = isinstance(scope.get('__all__'), ExportBinding)
+            if export:
+                all = scope['__all__'].names()
+                if os.path.split(self.filename)[1] != '__init__.py':
+                    # Look for possible mistakes in the export list
+                    undefined = set(all) - set(scope)
+                    for name in undefined:
+                        self.report(
+                            messages.UndefinedExport,
+                            scope['__all__'].source.lineno,
+                            name)
+            else:
+                all = []
+
+            # Look for imported names that aren't used.
+            for importation in scope.itervalues():
+                if isinstance(importation, Importation):
+                    if not importation.used and importation.name not in all:
+                        self.report(
+                            messages.UnusedImport,
+                            importation.source.lineno,
+                            importation.name)
+
+    def pushFunctionScope(self):
+        self.scopeStack.append(FunctionScope())
+
+    def pushClassScope(self):
+        self.scopeStack.append(ClassScope())
+
+    def report(self, messageClass, *args, **kwargs):
+        self.messages.append(messageClass(self.filename, *args, **kwargs))
+
+    def handleChildren(self, tree):
+        for node in tree.getChildNodes():
+            self.handleNode(node, tree)
+
+    def handleNode(self, node, parent):
+        node.parent = parent
+        if self.traceTree:
+            print '  ' * self.nodeDepth + node.__class__.__name__
+        self.nodeDepth += 1
+        nodeType = node.__class__.__name__.upper()
+        if nodeType not in ('STMT', 'FROM'):
+            self.futuresAllowed = False
+        try:
+            handler = getattr(self, nodeType)
+            handler(node)
+        finally:
+            self.nodeDepth -= 1
+        if self.traceTree:
+            print '  ' * self.nodeDepth + 'end ' + node.__class__.__name__
+
+    def ignore(self, node):
+        pass
+
+    STMT = PRINT = PRINTNL = TUPLE = LIST = ASSTUPLE = ASSATTR = \
+    ASSLIST = GETATTR = SLICE = SLICEOBJ = IF = CALLFUNC = DISCARD = \
+    RETURN = ADD = MOD = SUB = NOT = UNARYSUB = INVERT = ASSERT = COMPARE = \
+    SUBSCRIPT = AND = OR = TRYEXCEPT = RAISE = YIELD = DICT = LEFTSHIFT = \
+    RIGHTSHIFT = KEYWORD = TRYFINALLY = WHILE = EXEC = MUL = DIV = POWER = \
+    FLOORDIV = BITAND = BITOR = BITXOR = LISTCOMPFOR = LISTCOMPIF = \
+    AUGASSIGN = BACKQUOTE = UNARYADD = GENEXPR = GENEXPRFOR = GENEXPRIF = \
+    IFEXP = handleChildren
+
+    CONST = PASS = CONTINUE = BREAK = ELLIPSIS = ignore
+
+    def addBinding(self, lineno, value, reportRedef=True):
+        '''
+        Called when a binding is altered.
+
+        @param lineno line of the statement responsible for the change (integer)
+        @param value the optional new value, a Binding instance, associated
+            with the binding; if None, the binding is deleted if it exists
+        @param reportRedef flag indicating if rebinding while unused will be
+            reported (boolean)
+        '''
+        if (isinstance(self.scope.get(value.name), FunctionDefinition)
+                    and isinstance(value, FunctionDefinition)):
+            self.report(messages.RedefinedFunction,
+                        lineno, value.name, self.scope[value.name].source.lineno)
+
+        if not isinstance(self.scope, ClassScope):
+            for scope in self.scopeStack[::-1]:
+                existing = scope.get(value.name)
+                if (isinstance(existing, Importation)
+                        and not existing.used
+                        and (not isinstance(value, Importation) or value.fullName == existing.fullName)
+                        and reportRedef):
+
+                    self.report(messages.RedefinedWhileUnused,
+                                lineno, value.name, scope[value.name].source.lineno)
+
+        if isinstance(value, UnBinding):
+            try:
+                del self.scope[value.name]
+            except KeyError:
+                self.report(messages.UndefinedName, lineno, value.name)
+        else:
+            self.scope[value.name] = value
+
+    def WITH(self, node):
+        """
+        Handle 'with' by checking the target of the statement (which can be an
+        identifier, a list or tuple of targets, an attribute, etc) for
+        undefined names and defining any it adds to the scope and by continuing
+        to process the suite within the statement.
+        """
+        # Check the "foo" part of a "with foo as bar" statement.  Do this no
+        # matter what, since there's always a "foo" part.
+        self.handleNode(node.expr, node)
+
+        if node.vars is not None:
+            self.handleNode(node.vars, node)
+
+        self.handleChildren(node.body)
+
+
+    def GLOBAL(self, node):
+        """
+        Keep track of globals declarations.
+        """
+        if isinstance(self.scope, FunctionScope):
+            self.scope.globals.update(dict.fromkeys(node.names))
+
+    def LISTCOMP(self, node):
+        for qual in node.quals:
+            self.handleNode(qual, node)
+        self.handleNode(node.expr, node)
+
+    GENEXPRINNER = LISTCOMP
+
+    def FOR(self, node):
+        """
+        Process bindings for loop variables.
+        """
+        vars = []
+        def collectLoopVars(n):
+            if hasattr(n, 'name'):
+                vars.append(n.name)
+            else:
+                for c in n.getChildNodes():
+                    collectLoopVars(c)
+
+        collectLoopVars(node.assign)
+        for varn in vars:
+            if (isinstance(self.scope.get(varn), Importation)
+                    # unused ones will get an unused import warning
+                    and self.scope[varn].used):
+                self.report(messages.ImportShadowedByLoopVar,
+                            node.lineno, varn, self.scope[varn].source.lineno)
+
+        self.handleChildren(node)
+
+    def NAME(self, node):
+        """
+        Locate the name in locals / function / globals scopes.
+        """
+        # try local scope
+        importStarred = self.scope.importStarred
+        try:
+            self.scope[node.name].used = (self.scope, node.lineno)
+        except KeyError:
+            pass
+        else:
+            return
+
+        # try enclosing function scopes
+
+        for scope in self.scopeStack[-2:0:-1]:
+            importStarred = importStarred or scope.importStarred
+            if not isinstance(scope, FunctionScope):
+                continue
+            try:
+                scope[node.name].used = (self.scope, node.lineno)
+            except KeyError:
+                pass
+            else:
+                return
+
+        # try global scope
+
+        importStarred = importStarred or self.scopeStack[0].importStarred
+        try:
+            self.scopeStack[0][node.name].used = (self.scope, node.lineno)
+        except KeyError:
+            if ((not hasattr(__builtin__, node.name))
+                    and node.name not in _MAGIC_GLOBALS
+                    and not importStarred):
+                if (os.path.basename(self.filename) == '__init__.py' and
+                    node.name == '__path__'):
+                    # the special name __path__ is valid only in packages
+                    pass
+                else:
+                    self.report(messages.UndefinedName, node.lineno, node.name)
+
+
+    def FUNCTION(self, node):
+        if getattr(node, "decorators", None) is not None:
+            self.handleChildren(node.decorators)
+        self.addBinding(node.lineno, FunctionDefinition(node.name, node))
+        self.LAMBDA(node)
+
+    def LAMBDA(self, node):
+        for default in node.defaults:
+            self.handleNode(default, node)
+
+        def runFunction():
+            args = []
+
+            def addArgs(arglist):
+                for arg in arglist:
+                    if isinstance(arg, tuple):
+                        addArgs(arg)
+                    else:
+                        if arg in args:
+                            self.report(messages.DuplicateArgument, node.lineno, arg)
+                        args.append(arg)
+
+            self.pushFunctionScope()
+            addArgs(node.argnames)
+            for name in args:
+                self.addBinding(node.lineno, Argument(name, node), reportRedef=False)
+            self.handleNode(node.code, node)
+            def checkUnusedAssignments():
+                """
+                Check to see if any assignments have not been used.
+                """
+                for name, binding in self.scope.iteritems():
+                    if (not binding.used and not name in self.scope.globals
+                        and isinstance(binding, Assignment)):
+                        self.report(messages.UnusedVariable,
+                                    binding.source.lineno, name)
+            self.deferAssignment(checkUnusedAssignments)
+            self.popScope()
+
+        self.deferFunction(runFunction)
+
+
+    def CLASS(self, node):
+        """
+        Check names used in a class definition, including its decorators, base
+        classes, and the body of its definition.  Additionally, add its name to
+        the current scope.
+        """
+        if getattr(node, "decorators", None) is not None:
+            self.handleChildren(node.decorators)
+        for baseNode in node.bases:
+            self.handleNode(baseNode, node)
+        self.addBinding(node.lineno, Binding(node.name, node))
+        self.pushClassScope()
+        self.handleChildren(node.code)
+        self.popScope()
+
+
+    def ASSNAME(self, node):
+        if node.flags == 'OP_DELETE':
+            if isinstance(self.scope, FunctionScope) and node.name in self.scope.globals:
+                del self.scope.globals[node.name]
+            else:
+                self.addBinding(node.lineno, UnBinding(node.name, node))
+        else:
+            # if the name hasn't already been defined in the current scope
+            if isinstance(self.scope, FunctionScope) and node.name not in self.scope:
+                # for each function or module scope above us
+                for scope in self.scopeStack[:-1]:
+                    if not isinstance(scope, (FunctionScope, ModuleScope)):
+                        continue
+                    # if the name was defined in that scope, and the name has
+                    # been accessed already in the current scope, and hasn't
+                    # been declared global
+                    if (node.name in scope
+                            and scope[node.name].used
+                            and scope[node.name].used[0] is self.scope
+                            and node.name not in self.scope.globals):
+                        # then it's probably a mistake
+                        self.report(messages.UndefinedLocal,
+                                    scope[node.name].used[1],
+                                    node.name,
+                                    scope[node.name].source.lineno)
+                        break
+
+            if isinstance(node.parent,
+                          (ast.For, ast.ListCompFor, ast.GenExprFor,
+                           ast.AssTuple, ast.AssList)):
+                binding = Binding(node.name, node)
+            elif (node.name == '__all__' and
+                  isinstance(self.scope, ModuleScope) and
+                  isinstance(node.parent, ast.Assign)):
+                binding = ExportBinding(node.name, node.parent.expr)
+            else:
+                binding = Assignment(node.name, node)
+            if node.name in self.scope:
+                binding.used = self.scope[node.name].used
+            self.addBinding(node.lineno, binding)
+
+    def ASSIGN(self, node):
+        self.handleNode(node.expr, node)
+        for subnode in node.nodes[::-1]:
+            self.handleNode(subnode, node)
+
+    def IMPORT(self, node):
+        for name, alias in node.names:
+            name = alias or name
+            importation = Importation(name, node)
+            self.addBinding(node.lineno, importation)
+
+    def FROM(self, node):
+        if node.modname == '__future__':
+            if not self.futuresAllowed:
+                self.report(messages.LateFutureImport, node.lineno, [n[0] for n in node.names])
+        else:
+            self.futuresAllowed = False
+
+        for name, alias in node.names:
+            if name == '*':
+                self.scope.importStarred = True
+                self.report(messages.ImportStarUsed, node.lineno, node.modname)
+                continue
+            name = alias or name
+            importation = Importation(name, node)
+            if node.modname == '__future__':
+                importation.used = (self.scope, node.lineno)
+            self.addBinding(node.lineno, importation)
+    
+#
+# eflag: FileType = Python2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UtilitiesPython2/py2flakes/messages.py	Mon Jan 03 17:10:45 2011 +0100
@@ -0,0 +1,241 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2011 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+# Original (c) 2005 Divmod, Inc.  See LICENSE file for details
+#
+# This module is based on pyflakes for Python2 but was heavily hacked to
+# work within eric5
+
+class Message(object):
+    """
+    Class defining the base for all specific message classes.
+    """
+    message = ''
+    message_args = ()
+    
+    def __init__(self, filename, lineno):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        """
+        self.filename = filename
+        self.lineno = lineno
+    
+    def __str__(self):
+        """
+        Special method return a string representation of the instance object.
+        
+        @return string representation of the object (string)
+        """
+        return '%s:%s: %s' % (
+            self.filename, self.lineno, self.message % self.message_args)
+    
+    def getMessageData(self):
+        """
+        Public method to get the individual message data elements.
+        
+        @return tuple containing file name, line number and message 
+            (string, integer, string)
+        """
+        return (self.filename, self.lineno, self.message % self.message_args)
+
+class UnusedImport(Message):
+    """
+    Class defining the "Unused Import" message.
+    """
+    message = '%r imported but unused'
+    
+    def __init__(self, filename, lineno, name):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the unused import (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name,)
+
+class RedefinedWhileUnused(Message):
+    """
+    Class defining the "Redefined While Unused" message.
+    """
+    message = 'redefinition of unused %r from line %r'
+    
+    def __init__(self, filename, lineno, name, orig_lineno):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the redefined object (string)
+        @param orig_lineno line number of the original definition (integer)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name, orig_lineno)
+
+class ImportShadowedByLoopVar(Message):
+    """
+    Class defining the "Import Shadowed By Loop Var" message.
+    """
+    message = 'import %r from line %r shadowed by loop variable'
+    
+    def __init__(self, filename, lineno, name, orig_lineno):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the shadowed import (string)
+        @param orig_lineno line number of the import (integer)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name, orig_lineno)
+
+class ImportStarUsed(Message):
+    """
+    Class defining the "Import Star Used" message.
+    """
+    message = "'from %s import *' used; unable to detect undefined names"
+    
+    def __init__(self, filename, lineno, modname):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param modname name of the module imported using star import (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (modname,)
+
+class UndefinedName(Message):
+    """
+    Class defining the "Undefined Name" message.
+    """
+    message = 'undefined name %r'
+    
+    def __init__(self, filename, lineno, name):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name undefined name (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name,)
+
+class UndefinedExport(Message):
+    """
+    Class defining the "Undefined Export" message.
+    """
+    message = 'undefined name %r in __all__'
+    
+    def __init__(self, filename, lineno, name):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name undefined exported name (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name,)
+
+class UndefinedLocal(Message):
+    """
+    Class defining the "Undefined Local Variable" message.
+    """
+    message = "local variable %r (defined in enclosing scope on line %r)" \
+              " referenced before assignment"
+    
+    def __init__(self, filename, lineno, name, orig_lineno):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the prematurely referenced variable (string)
+        @param orig_lineno line number of the variable definition (integer)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name, orig_lineno)
+
+class DuplicateArgument(Message):
+    """
+    Class defining the "Duplicate Argument" message.
+    """
+    message = 'duplicate argument %r in function definition'
+    
+    def __init__(self, filename, lineno, name):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the duplicate argument (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name,)
+
+class RedefinedFunction(Message):
+    """
+    Class defining the "Redefined Function" message.
+    """
+    message = 'redefinition of function %r from line %r'
+    
+    def __init__(self, filename, lineno, name, orig_lineno):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the redefined function (string)
+        @param orig_lineno line number of the original definition (integer)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (name, orig_lineno)
+
+class LateFutureImport(Message):
+    """
+    Class defining the "Late Future Import" message.
+    """
+    message = 'future import(s) %r after other statements'
+    
+    def __init__(self, filename, lineno, names):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param names names of the imported futures (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (names,)
+
+class UnusedVariable(Message):
+    """
+    Class defining the "Unused Variable" message.
+    
+    Indicates that a variable has been explicitly assigned to but not actually
+    used.
+    """
+    message = 'local variable %r is assigned to but never used'
+    
+    def __init__(self, filename, lineno, names):
+        """
+        Constructor
+        
+        @param filename name of the file (string)
+        @param lineno line number (integer)
+        @param name name of the unused variable (string)
+        """
+        Message.__init__(self, filename, lineno)
+        self.message_args = (names,)
+    
+#
+# eflag: FileType = Python2
--- a/changelog	Sun Jan 02 12:01:37 2011 +0100
+++ b/changelog	Mon Jan 03 17:10:45 2011 +0100
@@ -13,6 +13,7 @@
   The only flag supported is 'FileType' to overwrite the filetype detection
   mechanism.
 - added a syntax checker function for Python 2 files
+- added a pyflakes checker function for Python 2 files
 
 Version 5.1-snapshot-20101029:
 - bug fixes
--- a/eric5.e4p	Sun Jan 02 12:01:37 2011 +0100
+++ b/eric5.e4p	Mon Jan 03 17:10:45 2011 +0100
@@ -836,6 +836,9 @@
     <Source>Helpviewer/SslCertificatesDialog.py</Source>
     <Source>UtilitiesPython2/__init__.py</Source>
     <Source>UtilitiesPython2/Py2SyntaxChecker.py</Source>
+    <Source>UtilitiesPython2/py2flakes/__init__.py</Source>
+    <Source>UtilitiesPython2/py2flakes/checker.py</Source>
+    <Source>UtilitiesPython2/py2flakes/messages.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts	Sun Jan 02 12:01:37 2011 +0100
+++ b/i18n/eric5_cs.ts	Mon Jan 03 17:10:45 2011 +0100
@@ -1779,7 +1779,7 @@
         <translation>Hledat v tomto adresáři</translation>
     </message>
     <message>
-        <location filename="UI/Browser.py" line="415"/>
+        <location filename="UI/Browser.py" line="417"/>
         <source>New toplevel directory</source>
         <translation>Nový toplevel adresář</translation>
     </message>
@@ -2797,7 +2797,7 @@
         <translation>Viewmanager</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationDialog.py" line="453"/>
+        <location filename="Preferences/ConfigurationDialog.py" line="456"/>
         <source>Configuration Page Error</source>
         <translation>Chyba na straně konfigurace</translation>
     </message>
@@ -2868,14 +2868,14 @@
         <translation>Eric web prohlížeč</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationDialog.py" line="453"/>
+        <location filename="Preferences/ConfigurationDialog.py" line="456"/>
         <source>&lt;p&gt;The configuration page &lt;b&gt;{0}&lt;/b&gt; could not be loaded.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Konfigurační stranu &lt;b&gt;{0}&lt;/b&gt; nelze načíst.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationDialog.py" line="134"/>
         <source>Py3Flakes</source>
-        <translation>Py3Flakes</translation>
+        <translation type="obsolete">Py3Flakes</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationDialog.py" line="230"/>
@@ -2892,6 +2892,11 @@
         <source>Tray Starter</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationDialog.py" line="134"/>
+        <source>PyFlakes</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Connection</name>
@@ -6549,7 +6554,7 @@
 <context>
     <name>Editor</name>
     <message>
-        <location filename="QScintilla/Editor.py" line="2277"/>
+        <location filename="QScintilla/Editor.py" line="2326"/>
         <source>Open File</source>
         <translation>Otevřít soubor</translation>
     </message>
@@ -6819,7 +6824,7 @@
         <translation>Editovat breakpoint...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3952"/>
+        <location filename="QScintilla/Editor.py" line="4001"/>
         <source>Enable breakpoint</source>
         <translation>Aktivovat breakpoint</translation>
     </message>
@@ -6869,242 +6874,242 @@
         <translation>LMB přepínač breakpointů</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="1494"/>
+        <location filename="QScintilla/Editor.py" line="1513"/>
         <source>Modification of Read Only file</source>
         <translation>Modifikace souboru otevřeného jen pro čtení</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="1494"/>
+        <location filename="QScintilla/Editor.py" line="1513"/>
         <source>You are attempting to change a read only file. Please save to a different file first.</source>
         <translation>Pokoušíte se změnit soubor, který je otevřen jen pro čtení. Prosím, uložte jej nejdříve do jiného souboru.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2056"/>
+        <location filename="QScintilla/Editor.py" line="2105"/>
         <source>Printing...</source>
         <translation>Tisk...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2073"/>
+        <location filename="QScintilla/Editor.py" line="2122"/>
         <source>Printing completed</source>
         <translation>Tisk je hotov</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2075"/>
+        <location filename="QScintilla/Editor.py" line="2124"/>
         <source>Error while printing</source>
         <translation>Chyba během tisku</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2078"/>
+        <location filename="QScintilla/Editor.py" line="2127"/>
         <source>Printing aborted</source>
         <translation>Tisk byl zrušen</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2421"/>
+        <location filename="QScintilla/Editor.py" line="2470"/>
         <source>Save File</source>
         <translation>Uložit soubor</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2229"/>
+        <location filename="QScintilla/Editor.py" line="2278"/>
         <source>File Modified</source>
         <translation>Soubor je modifikován</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3489"/>
+        <location filename="QScintilla/Editor.py" line="3538"/>
         <source>Autocompletion</source>
         <translation>Autodoplňování</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3489"/>
+        <location filename="QScintilla/Editor.py" line="3538"/>
         <source>Autocompletion is not available because there is no autocompletion source set.</source>
         <translation>Autodoplňování není dostupné protože zdrojová část autodoplňování nebyla nalezena.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3955"/>
+        <location filename="QScintilla/Editor.py" line="4004"/>
         <source>Disable breakpoint</source>
         <translation>Deaktivovat breakpoint</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4233"/>
+        <location filename="QScintilla/Editor.py" line="4287"/>
         <source>Code Coverage</source>
         <translation>Pokrytí kódu</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4233"/>
+        <location filename="QScintilla/Editor.py" line="4287"/>
         <source>Please select a coverage file</source>
         <translation>Prosím, vyberte soubor s pokrytím kódu</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4279"/>
+        <location filename="QScintilla/Editor.py" line="4333"/>
         <source>Show Code Coverage Annotations</source>
         <translation>Zobrazit poznámky pokrytí kódu</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4275"/>
+        <location filename="QScintilla/Editor.py" line="4329"/>
         <source>All lines have been covered.</source>
         <translation>Všechny řádky byly pokryty.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4279"/>
+        <location filename="QScintilla/Editor.py" line="4333"/>
         <source>There is no coverage file available.</source>
         <translation>Soubor s pokrytím není dostupný.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4371"/>
+        <location filename="QScintilla/Editor.py" line="4425"/>
         <source>Profile Data</source>
         <translation>Profilovat data</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4371"/>
+        <location filename="QScintilla/Editor.py" line="4425"/>
         <source>Please select a profile file</source>
         <translation>Prosím, vyberte soubor s profilem</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4489"/>
+        <location filename="QScintilla/Editor.py" line="4543"/>
         <source>Syntax Error</source>
         <translation>Chyba syntaxe</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4489"/>
+        <location filename="QScintilla/Editor.py" line="4543"/>
         <source>No syntax error message available.</source>
         <translation>Hlášení syntaktické chyby není dostupné.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4711"/>
+        <location filename="QScintilla/Editor.py" line="4765"/>
         <source>Macro Name</source>
         <translation>Název makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4711"/>
+        <location filename="QScintilla/Editor.py" line="4765"/>
         <source>Select a macro name:</source>
         <translation>Vyberte název makra:</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4739"/>
+        <location filename="QScintilla/Editor.py" line="4793"/>
         <source>Load macro file</source>
         <translation>Načíst soubor makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4779"/>
+        <location filename="QScintilla/Editor.py" line="4833"/>
         <source>Macro files (*.macro)</source>
         <translation>Macro soubory (*.macro)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4760"/>
+        <location filename="QScintilla/Editor.py" line="4814"/>
         <source>Error loading macro</source>
         <translation>Chyba při načítání makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4779"/>
+        <location filename="QScintilla/Editor.py" line="4833"/>
         <source>Save macro file</source>
         <translation>Uložit soubor s makrem</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4796"/>
+        <location filename="QScintilla/Editor.py" line="4850"/>
         <source>Save macro</source>
         <translation>Uložit makro</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4811"/>
+        <location filename="QScintilla/Editor.py" line="4865"/>
         <source>Error saving macro</source>
         <translation>Chyba při ukládání makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4822"/>
+        <location filename="QScintilla/Editor.py" line="4876"/>
         <source>Start Macro Recording</source>
         <translation>Spustit záznam makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4822"/>
+        <location filename="QScintilla/Editor.py" line="4876"/>
         <source>Macro recording is already active. Start new?</source>
         <translation>Nahrávání makra již probíhá. Spustit nové?</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4847"/>
+        <location filename="QScintilla/Editor.py" line="4901"/>
         <source>Macro Recording</source>
         <translation>Záznam makra</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4847"/>
+        <location filename="QScintilla/Editor.py" line="4901"/>
         <source>Enter name of the macro:</source>
         <translation>Vložte název makra:</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4965"/>
+        <location filename="QScintilla/Editor.py" line="5019"/>
         <source>&lt;br&gt;&lt;b&gt;Warning:&lt;/b&gt; You will loose your changes upon reopening it.</source>
         <translation>&lt;br&gt;&lt;b&gt;Pozor:&lt;/b&gt; Ztratíte všechny změny pokud jej znovu otevřete.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4969"/>
+        <location filename="QScintilla/Editor.py" line="5023"/>
         <source>File changed</source>
         <translation>Soubor změněn</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5165"/>
+        <location filename="QScintilla/Editor.py" line="5219"/>
         <source>Drop Error</source>
         <translation>Zahodit chybu</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5183"/>
+        <location filename="QScintilla/Editor.py" line="5237"/>
         <source>Resources</source>
         <translation>Zdroje</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5185"/>
+        <location filename="QScintilla/Editor.py" line="5239"/>
         <source>Add file...</source>
         <translation>Přidat soubor...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5187"/>
+        <location filename="QScintilla/Editor.py" line="5241"/>
         <source>Add files...</source>
         <translation>Přidat soubory...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5189"/>
+        <location filename="QScintilla/Editor.py" line="5243"/>
         <source>Add aliased file...</source>
         <translation>Přidat zástupce souboru...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5191"/>
+        <location filename="QScintilla/Editor.py" line="5245"/>
         <source>Add localized resource...</source>
         <translation>Přidat lokalizované resource...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5194"/>
+        <location filename="QScintilla/Editor.py" line="5248"/>
         <source>Add resource frame</source>
         <translation>Přidat resource frame</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5212"/>
+        <location filename="QScintilla/Editor.py" line="5266"/>
         <source>Add file resource</source>
         <translation>Přidat soubor resource</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5228"/>
+        <location filename="QScintilla/Editor.py" line="5282"/>
         <source>Add file resources</source>
         <translation>Přidat soubory resource</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5255"/>
+        <location filename="QScintilla/Editor.py" line="5309"/>
         <source>Add aliased file resource</source>
         <translation>Přidat zástupce souboru resource</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5316"/>
+        <location filename="QScintilla/Editor.py" line="5370"/>
         <source>Package Diagram</source>
         <translation>Diagram balíčku</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5316"/>
+        <location filename="QScintilla/Editor.py" line="5370"/>
         <source>Include class attributes?</source>
         <translation>Včetně atributů třídy?</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5345"/>
+        <location filename="QScintilla/Editor.py" line="5399"/>
         <source>Application Diagram</source>
         <translation>Diagram aplikace</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5345"/>
+        <location filename="QScintilla/Editor.py" line="5399"/>
         <source>Include module names?</source>
         <translation>Včetně jmen modulů?</translation>
     </message>
@@ -7124,12 +7129,12 @@
         <translation>Nebyl zadán forám exportu. Zrušeno....</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5333"/>
+        <location filename="QScintilla/Editor.py" line="5387"/>
         <source>Imports Diagram</source>
         <translation>Importovat diagram</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5333"/>
+        <location filename="QScintilla/Editor.py" line="5387"/>
         <source>Include imports from external modules?</source>
         <translation>Zahrnout importy z externích modulů?</translation>
     </message>
@@ -7204,7 +7209,7 @@
         <translation>Použít Pygments lexer.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5577"/>
+        <location filename="QScintilla/Editor.py" line="5631"/>
         <source>Check spelling...</source>
         <translation>Zatrhnout kontrolu...</translation>
     </message>
@@ -7214,12 +7219,12 @@
         <translation>Zatrhnout výběr kontroly...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5579"/>
+        <location filename="QScintilla/Editor.py" line="5633"/>
         <source>Add to dictionary</source>
         <translation>Přidat do slovníku</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5581"/>
+        <location filename="QScintilla/Editor.py" line="5635"/>
         <source>Ignore All</source>
         <translation>Ignorovat vše</translation>
     </message>
@@ -7244,17 +7249,17 @@
         <translation>Alternativy ({0})</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2229"/>
+        <location filename="QScintilla/Editor.py" line="2278"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; has unsaved changes.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; obsahuje neuložené změny.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2277"/>
+        <location filename="QScintilla/Editor.py" line="2326"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be opened.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; nemůže být přejmenován.&lt;br /&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2378"/>
+        <location filename="QScintilla/Editor.py" line="2427"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be saved.&lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; nemůže být přejmenován.&lt;br /&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
@@ -7264,12 +7269,12 @@
         <translation type="obsolete">&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; již existuje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4753"/>
+        <location filename="QScintilla/Editor.py" line="4807"/>
         <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor s makrem &lt;b&gt;{0}&lt;/b&gt; nelze načíst.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4760"/>
+        <location filename="QScintilla/Editor.py" line="4814"/>
         <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; is corrupt.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor s makrem &lt;b&gt;{0}&lt;/b&gt; je poškozen.&lt;/p&gt;</translation>
     </message>
@@ -7279,27 +7284,27 @@
         <translation type="obsolete">&lt;p&gt;Soubor s makrem &lt;b&gt;{0}&lt;/b&gt; již existuje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4811"/>
+        <location filename="QScintilla/Editor.py" line="4865"/>
         <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;So souboru s makrem &lt;b&gt;{0}&lt;/b&gt; nelze zapisovat.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4960"/>
+        <location filename="QScintilla/Editor.py" line="5014"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; has been changed while it was opened in eric5. Reread it?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; byl změněn po té co již byl načten do eric5. Znovu načíst?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5048"/>
+        <location filename="QScintilla/Editor.py" line="5102"/>
         <source>{0} (ro)</source>
         <translation>{0} (ro)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5165"/>
+        <location filename="QScintilla/Editor.py" line="5219"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; není soubor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5255"/>
+        <location filename="QScintilla/Editor.py" line="5309"/>
         <source>Alias for file &lt;b&gt;{0}&lt;/b&gt;:</source>
         <translation>Zástupce pro soubor &lt;b&gt;{0}&lt;/b&gt;:</translation>
     </message>
@@ -7324,32 +7329,32 @@
         <translation>Vyčistit varování</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4613"/>
+        <location filename="QScintilla/Editor.py" line="4667"/>
         <source>py3flakes Warning</source>
         <translation>py3flakes varování</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4613"/>
+        <location filename="QScintilla/Editor.py" line="4667"/>
         <source>No py3flakes warning message available.</source>
         <translation>Varování py3flakes není dostupné.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2421"/>
+        <location filename="QScintilla/Editor.py" line="2470"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; již existuje.&lt;/p&gt;&lt;p&gt;Má se přepsat?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4796"/>
+        <location filename="QScintilla/Editor.py" line="4850"/>
         <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4656"/>
+        <location filename="QScintilla/Editor.py" line="4710"/>
         <source>Warning: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4662"/>
+        <location filename="QScintilla/Editor.py" line="4716"/>
         <source>Error: {0}</source>
         <translation type="unfinished">Chyby: {0}</translation>
     </message>
@@ -12276,118 +12281,168 @@
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="37"/>
         <source>Python Documentation</source>
-        <translation>Python dokumentace</translation>
+        <translation type="obsolete">Python dokumentace</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="43"/>
         <source>Press to select the Python documentation directory via a dialog</source>
-        <translation>Stisknout pro výběr Python dokumentace přes dialog výběru</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="145"/>
+        <translation type="obsolete">Stisknout pro výběr Python dokumentace přes dialog výběru</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="190"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="53"/>
         <source>Enter the Python documentation directory</source>
-        <translation>Zadejte adresář Python dokumentace</translation>
+        <translation type="obsolete">Zadejte adresář Python dokumentace</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="60"/>
         <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHONDOCDIR environment variable, if set.</source>
-        <translation>&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí PYTHONDOCDIR, je-li nastavena.</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="70"/>
-        <source>Qt4 Documentation</source>
-        <translation>Qt4 dokumentace</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="76"/>
-        <source>Press to select the Qt4 documentation directory via a dialog</source>
-        <translation>Stisknout pro výběr Qt4 dokumentace přes dialog výběru</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="86"/>
-        <source>Enter the Qt4 documentation directory</source>
-        <translation>Zadejte adresář Qt4 dokumentace</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="93"/>
-        <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the QT4DOCDIR environment variable, if set.</source>
-        <translation>&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí QT4DOCDIR, je-li nastavena.</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="103"/>
-        <source>PyQt4 Documentation</source>
-        <translation>PyQt4 dokumentace</translation>
+        <translation type="obsolete">&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí PYTHONDOCDIR, je-li nastavena.</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="109"/>
+        <source>Qt4 Documentation</source>
+        <translation>Qt4 dokumentace</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="115"/>
+        <source>Press to select the Qt4 documentation directory via a dialog</source>
+        <translation>Stisknout pro výběr Qt4 dokumentace přes dialog výběru</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="125"/>
+        <source>Enter the Qt4 documentation directory</source>
+        <translation>Zadejte adresář Qt4 dokumentace</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="132"/>
+        <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the QT4DOCDIR environment variable, if set.</source>
+        <translation>&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí QT4DOCDIR, je-li nastavena.</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="145"/>
+        <source>PyQt4 Documentation</source>
+        <translation>PyQt4 dokumentace</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="151"/>
         <source>Press to select the PyQt4 documentation directory via a dialog</source>
         <translation>Stisknout pro výběr PyQt4 dokumentace přes dialog výběru</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="119"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="161"/>
         <source>Enter the PyQt4 documentation directory</source>
         <translation>Zadejte adresář PyQt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="126"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="168"/>
         <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYQT4DOCDIR environment variable, if set.</source>
         <translation>&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí PYQT4DOCDIR, je-li nastavena.</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="136"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="181"/>
         <source>PySide Documentation</source>
         <translation>PySide dokumentace</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="142"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="187"/>
         <source>Press to select the PySide documentation directory via a dialog</source>
         <translation>Stisknout pro výběr adresáře PySide dokumentace přes dialog</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="152"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="197"/>
         <source>Enter the PySide documentation directory</source>
         <translation>Zadejte adresář pro PySide dokumentaci</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="159"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="204"/>
         <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYSIDEDOCDIR environment variable, if set.</source>
         <translation>&lt;b&gt;Poznámka&lt;/b&gt;: Ponechte prázdné má-li se použít proměnná prostředí PYSIDEDOCDIR, je-li nastavena.</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="73"/>
         <source>Select Python documentation entry</source>
-        <translation>Vyberte pro vstup do Python dokumentace</translation>
-    </message>
-    <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="117"/>
+        <translation type="obsolete">Vyberte pro vstup do Python dokumentace</translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="138"/>
         <source>HTML Files (*.html *.htm);;All Files (*)</source>
         <translation>HTML soubory (*.html *.htm);;Všechny soubory (*)</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="89"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="110"/>
         <source>Select Qt4 documentation entry</source>
         <translation>Vyberte pro vstup do Qt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="103"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="124"/>
         <source>Select PyQt4 documentation entry</source>
         <translation>Vyberte pro vstup do PyQt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="117"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="138"/>
         <source>Select PySide documentation entry</source>
         <translation>Vyberte pro vstup do PySide dokumentace</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="73"/>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="94"/>
         <source>HTML Files (*.html *.htm);;Compressed Help Files (*.chm);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="37"/>
+        <source>Python 2 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="43"/>
+        <source>Press to select the Python 2 documentation directory via a dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="53"/>
+        <source>Enter the Python 2 documentation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="60"/>
+        <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHON2DOCDIR environment variable, if set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="73"/>
+        <source>Python 3 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="79"/>
+        <source>Press to select the Python 3 documentation directory via a dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="89"/>
+        <source>Enter the Python 3 documentation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="96"/>
+        <source>&lt;b&gt;Note&lt;/b&gt;: Leave empty to use the PYTHON3DOCDIR environment variable, if set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="78"/>
+        <source>Select Python 2 documentation entry</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/HelpDocumentationPage.py" line="94"/>
+        <source>Select Python 3 documentation entry</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HelpIndexWidget</name>
@@ -20271,305 +20326,305 @@
     <message>
         <location filename="QScintilla/Lexers/__init__.py" line="91"/>
         <source>Python</source>
-        <translation>Python</translation>
-    </message>
-    <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="92"/>
-        <source>Ruby</source>
-        <translation>Ruby</translation>
+        <translation type="obsolete">Python</translation>
     </message>
     <message>
         <location filename="QScintilla/Lexers/__init__.py" line="93"/>
+        <source>Ruby</source>
+        <translation>Ruby</translation>
+    </message>
+    <message>
+        <location filename="QScintilla/Lexers/__init__.py" line="94"/>
         <source>SQL</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="95"/>
-        <source>TeX</source>
-        <translation></translation>
-    </message>
-    <message>
         <location filename="QScintilla/Lexers/__init__.py" line="96"/>
+        <source>TeX</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="QScintilla/Lexers/__init__.py" line="97"/>
         <source>VHDL</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="359"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="360"/>
         <source>Pyrex Files (*.pyx)</source>
         <translation>Pyrex soubory (*.pyx)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="361"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="362"/>
         <source>Quixote Template Files (*.ptl)</source>
         <translation>Quixote Template soubory (*.ptl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="363"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="364"/>
         <source>Ruby Files (*.rb)</source>
         <translation>Ruby soubory (*.rb)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="365"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="366"/>
         <source>IDL Files (*.idl)</source>
         <translation>IDL soubory (*.idl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="259"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="260"/>
         <source>C Files (*.h *.c)</source>
         <translation>C soubory (*.h *.c)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="261"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="262"/>
         <source>C++ Files (*.h *.hpp *.hh *.cxx *.cpp *.cc)</source>
         <translation>C++ soubory (*.h *.hpp *.hh *.cxx *.cpp *.cc)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="373"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="374"/>
         <source>C# Files (*.cs)</source>
         <translation>C# soubory (*.cs)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="265"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="266"/>
         <source>HTML Files (*.html *.htm *.asp *.shtml)</source>
         <translation>HTML soubory (*.html *.htm *.asp *.shtml)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="381"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="382"/>
         <source>CSS Files (*.css)</source>
         <translation>CSS soubory (*.css)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="383"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="384"/>
         <source>QSS Files (*.qss)</source>
         <translation>QSS soubory (*.qss)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="271"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="272"/>
         <source>PHP Files (*.php *.php3 *.php4 *.php5 *.phtml)</source>
         <translation>PHP soubory (*.php *.php3 *.php4 *.php5 *.phtml)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="391"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="392"/>
         <source>Qt Resource Files (*.qrc)</source>
         <translation>Qt Resource soubory (*.qrc)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="277"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="278"/>
         <source>D Files (*.d *.di)</source>
         <translation>D soubory (*.d *.di)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="397"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="398"/>
         <source>Java Files (*.java)</source>
         <translation>Java soubory (*.java)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="399"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="400"/>
         <source>JavaScript Files (*.js)</source>
         <translation>JavaScript soubory (*.js)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="401"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="402"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL soubory (*.sql)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="403"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="404"/>
         <source>Docbook Files (*.docbook)</source>
         <translation>Docbook soubory (*.docbook)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="287"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="288"/>
         <source>Perl Files (*.pl *.pm *.ph)</source>
         <translation>Perl soubory (*.pl *.pm *.ph)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="409"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="410"/>
         <source>Lua Files (*.lua)</source>
         <translation>Lua soubory (*.lua)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="291"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="292"/>
         <source>Tex Files (*.tex *.sty *.aux *.toc *.idx)</source>
         <translation>Tex soubory (*.tex *.sty *.aux *.toc *.idx)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="411"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="412"/>
         <source>Shell Files (*.sh)</source>
         <translation>Shell soubory (*.sh)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="295"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="296"/>
         <source>Batch Files (*.bat *.cmd)</source>
         <translation>Batch soubory (*.bat *.cmd)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="297"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="298"/>
         <source>Diff Files (*.diff *.patch)</source>
         <translation>Diff soubory (*.diff *.patch)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="299"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="300"/>
         <source>Makefiles (*.mak)</source>
         <translation>Makefiles (*.mak)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="301"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="302"/>
         <source>Properties Files (*.properties *.ini *.inf *.reg *.cfg *.cnf *.rc)</source>
         <translation>Properties soubory (*.properties *.ini *.inf *.reg *.cfg *.cnf *.rc)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="427"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="428"/>
         <source>Povray Files (*.pov)</source>
         <translation>Povray soubory (*.pov)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="305"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="306"/>
         <source>CMake Files (CMakeLists.txt *.cmake *.ctest)</source>
         <translation>CMake soubory (CMakeLists.txt *.cmake *.ctest)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="307"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="308"/>
         <source>VHDL Files (*.vhd *.vhdl)</source>
         <translation>VHDL soubory (*.vhd *.vhdl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="460"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="461"/>
         <source>All Files (*)</source>
         <translation>Všechny soubory (*)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="94"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="95"/>
         <source>TCL</source>
         <translation>TCL</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="309"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="310"/>
         <source>TCL/Tk Files (*.tcl *.tk)</source>
         <translation>TCL/Tk soubory (*.tcl *.tk)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="367"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="368"/>
         <source>C Files (*.c)</source>
         <translation>C soubory (*.c)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="369"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="370"/>
         <source>C++ Files (*.cpp)</source>
         <translation>C++ soubory (*.cpp)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="371"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="372"/>
         <source>C++/C Header Files (*.h)</source>
         <translation>C++/C hlavičkové soubory (*.h)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="375"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="376"/>
         <source>HTML Files (*.html)</source>
         <translation>HTML soubory (*.html)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="377"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="378"/>
         <source>PHP Files (*.php)</source>
         <translation>PHP soubory (*.php)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="379"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="380"/>
         <source>ASP Files (*.asp)</source>
         <translation>ASP soubory (*.asp)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="385"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="386"/>
         <source>XML Files (*.xml)</source>
         <translation>XML soubory (*.xml)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="387"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="388"/>
         <source>XSL Files (*.xsl)</source>
         <translation>XSL soubory (*.xsl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="389"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="390"/>
         <source>DTD Files (*.dtd)</source>
         <translation>DTD soubory (*.dtd)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="393"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="394"/>
         <source>D Files (*.d)</source>
         <translation>D soubory (*.d)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="395"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="396"/>
         <source>D Interface Files (*.di)</source>
         <translation>D Interface soubory (*.di)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="405"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="406"/>
         <source>Perl Files (*.pl)</source>
         <translation>Perl soubory (*.pl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="407"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="408"/>
         <source>Perl Module Files (*.pm)</source>
         <translation>Perl Module soubory (*.pm)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="413"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="414"/>
         <source>Batch Files (*.bat)</source>
         <translation>Batch soubory (*.bat)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="415"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="416"/>
         <source>TeX Files (*.tex)</source>
         <translation>TeX soubory (*.tex)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="417"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="418"/>
         <source>TeX Template Files (*.sty)</source>
         <translation>TeX Template soubory (*.sty)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="419"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="420"/>
         <source>Diff Files (*.diff)</source>
         <translation>Diff soubory (*.diff)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="421"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="422"/>
         <source>Make Files (*.mak)</source>
         <translation>Make soubory (*.mak)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="423"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="424"/>
         <source>Properties Files (*.ini)</source>
         <translation>Properties soubory (*.ini)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="425"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="426"/>
         <source>Configuration Files (*.cfg)</source>
         <translation>Konfigurační soubory (*.cfg)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="429"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="430"/>
         <source>CMake Files (CMakeLists.txt)</source>
         <translation>CMake soubory (CMakeLists.txt)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="431"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="432"/>
         <source>CMake Macro Files (*.cmake)</source>
         <translation>CMake makro soubory (*.cmake)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="433"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="434"/>
         <source>VHDL Files (*.vhd)</source>
         <translation>VHDL soubory (*.vhd)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="435"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="436"/>
         <source>TCL Files (*.tcl)</source>
         <translation>TCL soubory (*.tcl)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="437"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="438"/>
         <source>Tk Files (*.tk)</source>
         <translation>Tk soubory (*.tk)</translation>
     </message>
@@ -20589,32 +20644,32 @@
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="311"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="312"/>
         <source>Fortran Files (*.f90 *.f95 *.f2k)</source>
         <translation>Fortran soubory (*.f90 *.f95 *.f2k)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="313"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="314"/>
         <source>Fortran77 Files (*.f *.for)</source>
         <translation>Fortran77 soubory (*.f *.for)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="315"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="316"/>
         <source>Pascal Files (*.dpr *.dpk *.pas *.dfm *.inc *.pp)</source>
         <translation>Pascal soubory (*.dpr *.dpk *.pas *.dfm *.inc *.pp)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="439"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="440"/>
         <source>Fortran Files (*.f95)</source>
         <translation>Fortran soubory (*.f95)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="441"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="442"/>
         <source>Fortran77 Files (*.f)</source>
         <translation>Fortran77 soubory (*.f)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="443"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="444"/>
         <source>Pascal Files (*.pas)</source>
         <translation>Pascal soubory (*.pas)</translation>
     </message>
@@ -20624,47 +20679,47 @@
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="97"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="98"/>
         <source>XML</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="98"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="99"/>
         <source>YAML</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="273"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="274"/>
         <source>XML Files (*.xml *.xsl *.xslt *.dtd *.svg *.xul *.xsd)</source>
         <translation>XML soubory (*.xml *.xsl *.xslt *.dtd *.svg *.xul *.xsd)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="445"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="446"/>
         <source>PostScript Files (*.ps)</source>
         <translation>PostScript soubory (*.ps)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="319"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="320"/>
         <source>YAML Files (*.yaml *.yml)</source>
         <translation>YAML soubory (*.yaml *.yml)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="447"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="448"/>
         <source>YAML Files (*.yml)</source>
         <translation>YAML soubory (*.yml)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="105"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="106"/>
         <source>Pygments</source>
         <translation>Pygments</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="247"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="248"/>
         <source>Python Files (*.py *.py2 *.py3)</source>
         <translation>Python soubory (*.py *.py2 *.py3)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="249"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="250"/>
         <source>Python GUI Files (*.pyw *.pyw2 *.pyw3)</source>
         <translation>Python GUI soubory (*.pyw *.pyw2 *.pyw3)</translation>
     </message>
@@ -20674,7 +20729,7 @@
         <translation type="obsolete">Python soubory (*.py2)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="353"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="354"/>
         <source>Python3 Files (*.py)</source>
         <translation>Python3 soubory (*.py)</translation>
     </message>
@@ -20684,20 +20739,30 @@
         <translation type="obsolete">Python GUI soubory (*.pyw2)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="357"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="358"/>
         <source>Python3 GUI Files (*.pyw)</source>
         <translation>Python3 GUI soubory (*.pyw)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="351"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="352"/>
         <source>Python2 Files (*.py2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="QScintilla/Lexers/__init__.py" line="355"/>
+        <location filename="QScintilla/Lexers/__init__.py" line="356"/>
         <source>Python2 GUI Files (*.pyw2)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="QScintilla/Lexers/__init__.py" line="91"/>
+        <source>Python2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="QScintilla/Lexers/__init__.py" line="92"/>
+        <source>Python3</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Listspace</name>
@@ -23709,74 +23774,74 @@
 <context>
     <name>PluginRepositoryWidget</name>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="57"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="62"/>
         <source>Update</source>
         <translation>Obnovit</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="59"/>
-        <source>Download</source>
-        <translation>Download</translation>
-    </message>
-    <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="62"/>
-        <source>Cancel</source>
-        <translation>Zrušit</translation>
-    </message>
-    <message>
         <location filename="PluginManager/PluginRepositoryDialog.py" line="64"/>
+        <source>Download</source>
+        <translation>Download</translation>
+    </message>
+    <message>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="67"/>
+        <source>Cancel</source>
+        <translation>Zrušit</translation>
+    </message>
+    <message>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="69"/>
         <source>Close &amp;&amp; Install</source>
         <translation>Zavřít &amp;&amp; Instalovat</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="229"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="235"/>
         <source>Download Plugin Files</source>
         <translation>Download plugin soubory</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="229"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="235"/>
         <source>The requested plugins were downloaded.</source>
         <translation>Požadované pluginy byly staženy.</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="267"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="273"/>
         <source>Read plugins repository file</source>
         <translation>Číst soubor repozitáře pluginů</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="274"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="280"/>
         <source>No plugin repository file available.
 Select Update.</source>
         <translation>Soubor repozitáře pluginů není k dispozici.
 Vyberte Obnovit.</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="321"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="327"/>
         <source>Error downloading file</source>
         <translation>Chyba při stahování souboru</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="389"/>
-        <source>Stable</source>
-        <translation>Stabilní</translation>
-    </message>
-    <message>
         <location filename="PluginManager/PluginRepositoryDialog.py" line="395"/>
-        <source>Unstable</source>
-        <translation>Nestabilní</translation>
+        <source>Stable</source>
+        <translation>Stabilní</translation>
     </message>
     <message>
         <location filename="PluginManager/PluginRepositoryDialog.py" line="401"/>
+        <source>Unstable</source>
+        <translation>Nestabilní</translation>
+    </message>
+    <message>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="407"/>
         <source>Unknown</source>
         <translation>Neznámý</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="455"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="461"/>
         <source>SSL Errors</source>
         <translation>SSL chyby</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="267"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="273"/>
         <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor repozitáře pluginů &lt;b&gt;{0}&lt;/b&gt; nelze přečíst. Vyberte Obnovit&lt;/p&gt;</translation>
     </message>
@@ -23786,12 +23851,12 @@
         <translation type="obsolete">&lt;p&gt;Soubor repozitáře pluginů &lt;b&gt;{0}&lt;/b&gt; má nepodporovaný formát.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="321"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="327"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze stáhnout požadovaný soubor z {0}.&lt;/p&gt;&lt;p&gt;Chyba: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="455"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="461"/>
         <source>&lt;p&gt;SSL Errors:&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;SSL chyby:&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;&lt;p&gt;Chcete tyto chyby ignorovat?&lt;/p&gt;</translation>
     </message>
@@ -23799,17 +23864,17 @@
 <context>
     <name>PluginRepositoryWindow</name>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="548"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="554"/>
         <source>Process Generation Error</source>
         <translation>Chyba v procesu generování</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="548"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="554"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="PluginManager/PluginRepositoryDialog.py" line="548"/>
+        <location filename="PluginManager/PluginRepositoryDialog.py" line="554"/>
         <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit zveřejnění.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
@@ -23883,17 +23948,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="893"/>
+        <location filename="Preferences/__init__.py" line="896"/>
         <source>Export Preferences</source>
         <translation>Předvolby exportu</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="919"/>
+        <location filename="Preferences/__init__.py" line="922"/>
         <source>Import Preferences</source>
         <translation>Předvolby importu</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="919"/>
+        <location filename="Preferences/__init__.py" line="922"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -26066,17 +26131,17 @@
         <translation>Vyhledávat nové rekurzivně</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="192"/>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="211"/>
         <source>Recent Projects</source>
         <translation>Poslední projekty</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="198"/>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="217"/>
         <source>Number of recent projects:</source>
         <translation>Počet nedávných projektů:</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="205"/>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="224"/>
         <source>Enter the number of recent projects to remember</source>
         <translation>Zadejte počet nedávných projektů k zapamatování</translation>
     </message>
@@ -26095,6 +26160,21 @@
         <source>changed resources</source>
         <translation>změněných resources</translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="192"/>
+        <source>Python Variant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="198"/>
+        <source>Select to determine the Python variant from the project language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/ProjectPage.ui" line="201"/>
+        <source>Determine Python variant from project language</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectResourcesBrowser</name>
@@ -26362,57 +26442,57 @@
         <translation>Složit všechny adresáře</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="650"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="652"/>
         <source>Delete files</source>
         <translation>Smazat soubory</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="650"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="652"/>
         <source>Do you really want to delete these files from the project?</source>
         <translation>Opravdu chcete odebrat tyto soubory z projektu?</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="721"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="723"/>
         <source>Code Coverage</source>
         <translation>Pokrytí kódu</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="721"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="723"/>
         <source>Please select a coverage file</source>
         <translation>Prosím, vyberte soubor s pokrytím kódu</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="774"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="776"/>
         <source>Profile Data</source>
         <translation>Profilovat data</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="774"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="776"/>
         <source>Please select a profile file</source>
         <translation>Prosím, vyberte soubor s profilem</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="810"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="812"/>
         <source>Class Diagram</source>
         <translation>Diagram třídy</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="844"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="846"/>
         <source>Include class attributes?</source>
         <translation>Včetně atributů třídy?</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="844"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="846"/>
         <source>Package Diagram</source>
         <translation>Diagram balíčku</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="855"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="857"/>
         <source>Application Diagram</source>
         <translation>Diagram aplikace</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="855"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="857"/>
         <source>Include module names?</source>
         <translation>Včetně jmen modulů?</translation>
     </message>
@@ -26422,17 +26502,17 @@
         <translation>Nový balíček...</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="593"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="595"/>
         <source>Add new Python package</source>
         <translation>Přidat nový Python balíček</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="827"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="829"/>
         <source>Imports Diagram</source>
         <translation>Importovat diagram</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="827"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="829"/>
         <source>Include imports from external modules?</source>
         <translation>Zahrnout importy z externích modulů?</translation>
     </message>
@@ -26447,12 +26527,12 @@
         <translation>Kopírovat cestu do schránky</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="580"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="582"/>
         <source>&lt;p&gt;The package directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Adresář balíčku &lt;b&gt;{0}&lt;/b&gt; nelze vytvořit. Zrušeno...&lt;/p&gt;&lt;p&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Project/ProjectSourcesBrowser.py" line="593"/>
+        <location filename="Project/ProjectSourcesBrowser.py" line="595"/>
         <source>&lt;p&gt;The package file &lt;b&gt;{0}&lt;/b&gt; could not be created. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor balíčku &lt;b&gt;{0}&lt;/b&gt; nelze vytvořit. Zrušeno...&lt;/p&gt;&lt;p&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
@@ -26953,7 +27033,7 @@
     <message>
         <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="17"/>
         <source>&lt;b&gt;Configure Py3Flakes Behavior&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Konfigurovat chování Py3Flakes&lt;/b&gt;</translation>
+        <translation type="obsolete">&lt;b&gt;Konfigurovat chování Py3Flakes&lt;/b&gt;</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="37"/>
@@ -26963,7 +27043,7 @@
     <message>
         <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="40"/>
         <source>Include Py3Flakes Checks</source>
-        <translation>Zahrnout kotrolu Py3Flakes</translation>
+        <translation type="obsolete">Zahrnout kotrolu Py3Flakes</translation>
     </message>
     <message>
         <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="47"/>
@@ -26975,6 +27055,16 @@
         <source>Suppress star import warnings</source>
         <translation>Potlačit varovné hvězdy importu</translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="17"/>
+        <source>&lt;b&gt;Configure PyFlakes Behavior&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/Py3FlakesPage.ui" line="40"/>
+        <source>Include PyFlakes Checks</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PyCoverageDialog</name>
@@ -28056,6 +28146,16 @@
         <source>Python 3:</source>
         <translation>Python 3:</translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/PythonPage.ui" line="125"/>
+        <source>Python 2 Interpreter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Preferences/ConfigurationPages/PythonPage.ui" line="131"/>
+        <source>Please configure the Python 2 interpreter on the &apos;Python 2 Debugger&apos; page.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QRegExpWizard</name>
@@ -35408,7 +35508,7 @@
         <translation>Stisknout pro zobrazení všech souborů, které obsahují problém</translation>
     </message>
     <message>
-        <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="233"/>
+        <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="251"/>
         <source>No issues found.</source>
         <translation>Žádné problémy nenalezeny.</translation>
     </message>
@@ -35441,12 +35541,12 @@
 <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-        <location filename="Plugins/PluginSyntaxChecker.py" line="158"/>
+        <location filename="Plugins/PluginSyntaxChecker.py" line="160"/>
         <source>Check Syntax</source>
         <translation>Kontrola syntaxe</translation>
     </message>
     <message>
-        <location filename="Plugins/PluginSyntaxChecker.py" line="158"/>
+        <location filename="Plugins/PluginSyntaxChecker.py" line="160"/>
         <source>&amp;Syntax...</source>
         <translation>&amp;Syntaxe...</translation>
     </message>
@@ -35456,7 +35556,7 @@
         <translation>Kontrola syntaxe.</translation>
     </message>
     <message>
-        <location filename="Plugins/PluginSyntaxChecker.py" line="161"/>
+        <location filename="Plugins/PluginSyntaxChecker.py" line="163"/>
         <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Kontrola Syntaxe...&lt;/b&gt;&lt;p&gt;Zkontroluje všechny Python soubory na syntaktické chyby.&lt;/p&gt;</translation>
     </message>
@@ -38543,12 +38643,12 @@
 <context>
     <name>UrlBar</name>
     <message>
-        <location filename="Helpviewer/UrlBar/UrlBar.py" line="40"/>
+        <location filename="Helpviewer/UrlBar/UrlBar.py" line="43"/>
         <source>Enter the location here.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/UrlBar/UrlBar.py" line="151"/>
+        <location filename="Helpviewer/UrlBar/UrlBar.py" line="156"/>
         <source>Unknown</source>
         <translation type="unfinished">Neznámý</translation>
     </message>
@@ -38589,1717 +38689,1717 @@
 <context>
     <name>UserInterface</name>
     <message>
-        <location filename="UI/UserInterface.py" line="248"/>
+        <location filename="UI/UserInterface.py" line="253"/>
         <source>Generating Main User Interface...</source>
         <translation>Generování hlavního uživatelského rozhraní...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="274"/>
+        <location filename="UI/UserInterface.py" line="279"/>
         <source>Setting up connections...</source>
         <translation>Nastavení připojení...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="468"/>
+        <location filename="UI/UserInterface.py" line="473"/>
         <source>Initializing Tools...</source>
         <translation>Inicializace nástrojů...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="477"/>
+        <location filename="UI/UserInterface.py" line="482"/>
         <source>Registering Objects...</source>
         <translation>Registrování objektů...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="499"/>
+        <location filename="UI/UserInterface.py" line="504"/>
         <source>Initializing Actions...</source>
         <translation>Inicializace akcí...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="501"/>
+        <location filename="UI/UserInterface.py" line="506"/>
         <source>Initializing Menus...</source>
         <translation>Inicializace menu...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="503"/>
+        <location filename="UI/UserInterface.py" line="508"/>
         <source>Initializing Toolbars...</source>
         <translation>Inicializace nástrojových lišt...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="505"/>
+        <location filename="UI/UserInterface.py" line="510"/>
         <source>Initializing Statusbar...</source>
         <translation>Inicializace statusbaru...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="529"/>
+        <location filename="UI/UserInterface.py" line="534"/>
         <source>Initializing Single Application Server...</source>
         <translation>Inicializace jednouživatelského aplikačního serveru...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="600"/>
+        <location filename="UI/UserInterface.py" line="606"/>
         <source>Loading Style Sheet</source>
         <translation>Načtení kaskádového stylu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1339"/>
+        <location filename="UI/UserInterface.py" line="1345"/>
         <source>Project-Viewer</source>
         <translation>Prohlížeč projektu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1380"/>
+        <location filename="UI/UserInterface.py" line="1386"/>
         <source>Debug-Viewer</source>
         <translation>Prohlížeč debugeru</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1462"/>
+        <location filename="UI/UserInterface.py" line="1468"/>
         <source>Log-Viewer</source>
         <translation>Prohlížeč logu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1482"/>
+        <location filename="UI/UserInterface.py" line="1488"/>
         <source>Task-Viewer</source>
         <translation>Prohlížeč úloh</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1502"/>
+        <location filename="UI/UserInterface.py" line="1508"/>
         <source>Template-Viewer</source>
         <translation>Prohlížeč šablon</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1400"/>
+        <location filename="UI/UserInterface.py" line="1406"/>
         <source>Shell</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1441"/>
+        <location filename="UI/UserInterface.py" line="1447"/>
         <source>File-Browser</source>
         <translation>Browser souborů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1291"/>
-        <source>Quit</source>
-        <translation>Konec</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1291"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Konec</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1291"/>
-        <source>Ctrl+Q</source>
-        <comment>File|Quit</comment>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1296"/>
-        <source>Quit the IDE</source>
-        <translation>Ukončit IDE</translation>
-    </message>
-    <message>
         <location filename="UI/UserInterface.py" line="1297"/>
+        <source>Quit</source>
+        <translation>Konec</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1297"/>
+        <source>&amp;Quit</source>
+        <translation>&amp;Konec</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1297"/>
+        <source>Ctrl+Q</source>
+        <comment>File|Quit</comment>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1302"/>
+        <source>Quit the IDE</source>
+        <translation>Ukončit IDE</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1303"/>
         <source>&lt;b&gt;Quit the IDE&lt;/b&gt;&lt;p&gt;This quits the IDE. Any unsaved changes may be saved first. Any Python program being debugged will be stopped and the preferences will be written to disc.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ukončit IDE&lt;/b&gt;&lt;p&gt;Ukončí se IDE. Nejdříve by se měly uložit neuložené změny. Python programy běžící v debug procesu budou ukončeny a nastavení budou uložena.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1308"/>
-        <source>Edit Profile</source>
-        <translation>Editační profil</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1313"/>
-        <source>Activate the edit view profile</source>
-        <translation>Aktivovat profil editace</translation>
-    </message>
-    <message>
         <location filename="UI/UserInterface.py" line="1314"/>
+        <source>Edit Profile</source>
+        <translation>Editační profil</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1319"/>
+        <source>Activate the edit view profile</source>
+        <translation>Aktivovat profil editace</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1320"/>
         <source>&lt;b&gt;Edit Profile&lt;/b&gt;&lt;p&gt;Activate the &quot;Edit View Profile&quot;. Windows being shown, if this profile is active, may be configured with the &quot;View Profile Configuration&quot; dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Editační profil&lt;/b&gt;&lt;p&gt;Aktivování skupiny &apos;Editační profil&apos;. Okna, která se v tomto profilu zobrazí lze nastavit v dialogu &apos;Konfigurace profilu pohledů&apos;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1323"/>
+        <location filename="UI/UserInterface.py" line="1329"/>
         <source>Debug Profile</source>
         <translation>Debugovací profil</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1328"/>
+        <location filename="UI/UserInterface.py" line="1334"/>
         <source>Activate the debug view profile</source>
         <translation>Aktivovat debugovací profil</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1330"/>
+        <location filename="UI/UserInterface.py" line="1336"/>
         <source>&lt;b&gt;Debug Profile&lt;/b&gt;&lt;p&gt;Activate the &quot;Debug View Profile&quot;. Windows being shown, if this profile is active, may be configured with the &quot;View Profile Configuration&quot; dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Debugovací profil&lt;/b&gt;&lt;p&gt;Aktivování skupiny &apos;Debugovací profil&apos;. Okna, která se v tomto profilu zobrazí lze nastavit v dialogu &apos;Konfigurace profilu pohledů&apos;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1339"/>
+        <location filename="UI/UserInterface.py" line="1345"/>
         <source>&amp;Project-Viewer</source>
         <translation>Prohlížeč &amp;projektu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1341"/>
+        <location filename="UI/UserInterface.py" line="1347"/>
         <source>Toggle the Project-Viewer window</source>
         <translation>Přepnout okno Prohlížeč projektu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1342"/>
+        <location filename="UI/UserInterface.py" line="1348"/>
         <source>&lt;b&gt;Toggle the Project-Viewer window&lt;/b&gt;&lt;p&gt;If the Project-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přepnout okno Prohlížeč projektu&lt;/b&gt;&lt;p&gt;Pokud bylo okno skryto, tak se zobrazí. Pokud se zobrazovalo, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1350"/>
+        <location filename="UI/UserInterface.py" line="1356"/>
         <source>Activate Project-Viewer</source>
         <translation>Aktivovat prohlížeč projektu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1350"/>
+        <location filename="UI/UserInterface.py" line="1356"/>
         <source>Alt+Shift+P</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1391"/>
+        <location filename="UI/UserInterface.py" line="1397"/>
         <source>Alt+Shift+D</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1400"/>
+        <location filename="UI/UserInterface.py" line="1406"/>
         <source>&amp;Shell</source>
         <translation>&amp;Shell</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1402"/>
+        <location filename="UI/UserInterface.py" line="1408"/>
         <source>Toggle the Shell window</source>
         <translation>Zobrazit/skrýt Shell okno</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1403"/>
+        <location filename="UI/UserInterface.py" line="1409"/>
         <source>&lt;b&gt;Toggle the Shell window&lt;/b&gt;&lt;p&gt;If the Shell window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt Shell okno&lt;/b&gt;&lt;p&gt;Pokud je shell okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1412"/>
+        <location filename="UI/UserInterface.py" line="1418"/>
         <source>Activate Shell</source>
         <translation>Aktivovat Shell</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1412"/>
+        <location filename="UI/UserInterface.py" line="1418"/>
         <source>Alt+Shift+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1441"/>
+        <location filename="UI/UserInterface.py" line="1447"/>
         <source>File-&amp;Browser</source>
         <translation>&amp;Browser souborů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1443"/>
+        <location filename="UI/UserInterface.py" line="1449"/>
         <source>Toggle the File-Browser window</source>
         <translation>Zobrazit/skrýt browser souborů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1444"/>
+        <location filename="UI/UserInterface.py" line="1450"/>
         <source>&lt;b&gt;Toggle the File-Browser window&lt;/b&gt;&lt;p&gt;If the File-Browser window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt browser souborů&lt;/b&gt;&lt;p&gt;Pokud je okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1453"/>
+        <location filename="UI/UserInterface.py" line="1459"/>
         <source>Activate File-Browser</source>
         <translation>Aktivovat Browser souborů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1453"/>
+        <location filename="UI/UserInterface.py" line="1459"/>
         <source>Alt+Shift+F</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1462"/>
+        <location filename="UI/UserInterface.py" line="1468"/>
         <source>&amp;Log-Viewer</source>
         <translation>&amp;Log prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1464"/>
+        <location filename="UI/UserInterface.py" line="1470"/>
         <source>Toggle the Log-Viewer window</source>
         <translation>Zobrazit/skrýt Log prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1465"/>
+        <location filename="UI/UserInterface.py" line="1471"/>
         <source>&lt;b&gt;Toggle the Log-Viewer window&lt;/b&gt;&lt;p&gt;If the Log-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt Log prohlížeč&lt;/b&gt;&lt;p&gt;Pokud je okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1473"/>
+        <location filename="UI/UserInterface.py" line="1479"/>
         <source>Activate Log-Viewer</source>
         <translation>Aktivovat Log prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1473"/>
+        <location filename="UI/UserInterface.py" line="1479"/>
         <source>Alt+Shift+G</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1482"/>
+        <location filename="UI/UserInterface.py" line="1488"/>
         <source>T&amp;ask-Viewer</source>
         <translation>Pr&amp;ohlížeč úloh</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1484"/>
+        <location filename="UI/UserInterface.py" line="1490"/>
         <source>Toggle the Task-Viewer window</source>
         <translation>Zobrazit/skrýt prohlížeč úloh</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1485"/>
+        <location filename="UI/UserInterface.py" line="1491"/>
         <source>&lt;b&gt;Toggle the Task-Viewer window&lt;/b&gt;&lt;p&gt;If the Task-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt prohlížeč úloh&lt;/b&gt;&lt;p&gt;Pokud je okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1493"/>
+        <location filename="UI/UserInterface.py" line="1499"/>
         <source>Activate Task-Viewer</source>
         <translation>Aktivovat prohlížeč úloh</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1493"/>
+        <location filename="UI/UserInterface.py" line="1499"/>
         <source>Alt+Shift+T</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1504"/>
+        <location filename="UI/UserInterface.py" line="1510"/>
         <source>Toggle the Template-Viewer window</source>
         <translation>Zobrazit/skrýt prohlížeč šablon</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1506"/>
+        <location filename="UI/UserInterface.py" line="1512"/>
         <source>&lt;b&gt;Toggle the Template-Viewer window&lt;/b&gt;&lt;p&gt;If the Template-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt prohlížeč šablon&lt;/b&gt;&lt;p&gt;Pokud je okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1514"/>
+        <location filename="UI/UserInterface.py" line="1520"/>
         <source>Activate Template-Viewer</source>
         <translation>Aktivovat prohlížeč šablon</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1371"/>
+        <location filename="UI/UserInterface.py" line="1377"/>
         <source>Alt+Shift+M</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1635"/>
+        <location filename="UI/UserInterface.py" line="1641"/>
         <source>What&apos;s This?</source>
         <translation>Co je to?</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1635"/>
+        <location filename="UI/UserInterface.py" line="1641"/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Co je to?</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1635"/>
-        <source>Shift+F1</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1640"/>
-        <source>Context sensitive help</source>
-        <translation>Kontextově senzitivní nápověda</translation>
-    </message>
-    <message>
         <location filename="UI/UserInterface.py" line="1641"/>
+        <source>Shift+F1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1646"/>
+        <source>Context sensitive help</source>
+        <translation>Kontextově senzitivní nápověda</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1647"/>
         <source>&lt;b&gt;Display context sensitive help&lt;/b&gt;&lt;p&gt;In What&apos;s This? mode, the mouse cursor shows an arrow with a question mark, and you can click on the interface elements to get a short description of what they do and how to use them. In dialogs, this feature can be accessed using the context help button in the titlebar.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit kontextově senzitivní nápovědu&lt;/b&gt;&lt;p&gt;V režimu &quot;Co je to?&quot; se nad různými prvky aplikace u kurzoru zobrazí otazník. Když pak kliknete na tyto prvky, zobrazí se krátký popis co daný prvek znamená a jak jej použít. V dialogových oknech se tato funkce spustí tlačítkem kontextové nápovědy na horní liště.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1652"/>
+        <location filename="UI/UserInterface.py" line="1658"/>
         <source>Helpviewer</source>
         <translation>Prohlížeč nápovědy</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1652"/>
+        <location filename="UI/UserInterface.py" line="1658"/>
         <source>&amp;Helpviewer...</source>
         <translation>Pro&amp;hlížeč nápovědy...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1652"/>
+        <location filename="UI/UserInterface.py" line="1658"/>
         <source>F1</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1657"/>
+        <location filename="UI/UserInterface.py" line="1663"/>
         <source>Open the helpviewer window</source>
         <translation>Otevřít okno prohlížeče nápovědy</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1675"/>
+        <location filename="UI/UserInterface.py" line="1681"/>
         <source>Show Versions</source>
         <translation>Zobrazit verze</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1675"/>
+        <location filename="UI/UserInterface.py" line="1681"/>
         <source>Show &amp;Versions</source>
         <translation>Zobrazit &amp;verze</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1677"/>
+        <location filename="UI/UserInterface.py" line="1683"/>
         <source>Display version information</source>
         <translation>Zobrazit informace o verzích</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1678"/>
+        <location filename="UI/UserInterface.py" line="1684"/>
         <source>&lt;b&gt;Show Versions&lt;/b&gt;&lt;p&gt;Display version information.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit verze&lt;/b&gt;&lt;p&gt;Zobrazí informace o verzích.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1687"/>
+        <location filename="UI/UserInterface.py" line="1693"/>
         <source>Check for Updates</source>
         <translation>Zjistit aktualizace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1685"/>
+        <location filename="UI/UserInterface.py" line="1691"/>
         <source>Check for &amp;Updates...</source>
         <translation>Zjistit akt&amp;ualizace...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2729"/>
+        <location filename="UI/UserInterface.py" line="2753"/>
         <source>Report Bug</source>
         <translation>Reportovat Bugy</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1708"/>
+        <location filename="UI/UserInterface.py" line="1714"/>
         <source>Report &amp;Bug...</source>
         <translation>Reportovat &amp;Bugy...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1710"/>
+        <location filename="UI/UserInterface.py" line="1716"/>
         <source>Report a bug</source>
         <translation>Reportovat bug</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1711"/>
+        <location filename="UI/UserInterface.py" line="1717"/>
         <source>&lt;b&gt;Report Bug...&lt;/b&gt;&lt;p&gt;Opens a dialog to report a bug.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Reportovat bug...&lt;/b&gt;&lt;p&gt;Otevře se dialog pro reportování bugu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2380"/>
+        <location filename="UI/UserInterface.py" line="2404"/>
         <source>Unittest</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1730"/>
+        <location filename="UI/UserInterface.py" line="1736"/>
         <source>&amp;Unittest...</source>
         <translation>&amp;Unittest...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1734"/>
+        <location filename="UI/UserInterface.py" line="1740"/>
         <source>Start unittest dialog</source>
         <translation>Otevřít dialog unittestu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1735"/>
+        <location filename="UI/UserInterface.py" line="1741"/>
         <source>&lt;b&gt;Unittest&lt;/b&gt;&lt;p&gt;Perform unit tests. The dialog gives you the ability to select and run a unittest suite.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Unittest&lt;/b&gt;&lt;p&gt;Provést unittesty. V dialogovém okně se nastaví který test se má provést.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1743"/>
+        <location filename="UI/UserInterface.py" line="1749"/>
         <source>Unittest Restart</source>
         <translation>Restart unittestu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1743"/>
+        <location filename="UI/UserInterface.py" line="1749"/>
         <source>&amp;Restart Unittest...</source>
         <translation>&amp;Restart unittestu...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1747"/>
+        <location filename="UI/UserInterface.py" line="1753"/>
         <source>Restart last unittest</source>
         <translation>Restart posledního unittestu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1748"/>
+        <location filename="UI/UserInterface.py" line="1754"/>
         <source>&lt;b&gt;Restart Unittest&lt;/b&gt;&lt;p&gt;Restart the unittest performed last.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Restart unittestu&lt;/b&gt;&lt;p&gt;Restartuje se poslední provedený unittest.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1756"/>
+        <location filename="UI/UserInterface.py" line="1762"/>
         <source>Unittest Script</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1756"/>
+        <location filename="UI/UserInterface.py" line="1762"/>
         <source>Unittest &amp;Script...</source>
         <translation>Unittest &amp;Script...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1760"/>
+        <location filename="UI/UserInterface.py" line="1766"/>
         <source>Run unittest with current script</source>
         <translation>Spustit unittest s aktuálním skriptem</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1761"/>
+        <location filename="UI/UserInterface.py" line="1767"/>
         <source>&lt;b&gt;Unittest Script&lt;/b&gt;&lt;p&gt;Run unittest with current script.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Unittest Script&lt;/b&gt;&lt;p&gt;Spustit unittest s aktuálním skriptem.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="3943"/>
+        <location filename="UI/UserInterface.py" line="3967"/>
         <source>Unittest Project</source>
         <translation>Unittest Projekt</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1769"/>
+        <location filename="UI/UserInterface.py" line="1775"/>
         <source>Unittest &amp;Project...</source>
         <translation>Unittest &amp;Projekt...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1773"/>
+        <location filename="UI/UserInterface.py" line="1779"/>
         <source>Run unittest with current project</source>
         <translation>Spustit unittest s aktuálním projektem</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1774"/>
+        <location filename="UI/UserInterface.py" line="1780"/>
         <source>&lt;b&gt;Unittest Project&lt;/b&gt;&lt;p&gt;Run unittest with current project.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Unittest projekt&lt;/b&gt;&lt;p&gt;Spustit unittest s aktuálním projektem.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1787"/>
+        <location filename="UI/UserInterface.py" line="1793"/>
         <source>Qt-Designer 4</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1790"/>
+        <location filename="UI/UserInterface.py" line="1796"/>
         <source>Start Qt-Designer 4</source>
         <translation>Spustit Qt-Designer 4</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1791"/>
+        <location filename="UI/UserInterface.py" line="1797"/>
         <source>&lt;b&gt;Qt-Designer 4&lt;/b&gt;&lt;p&gt;Start Qt-Designer 4.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Qt-Designer 4&lt;/b&gt;&lt;p&gt;Spustit Qt-Designer 4.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1804"/>
+        <location filename="UI/UserInterface.py" line="1810"/>
         <source>Qt-Linguist 4</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1807"/>
+        <location filename="UI/UserInterface.py" line="1813"/>
         <source>Start Qt-Linguist 4</source>
         <translation>Spustit Qt-Linguist 4</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1808"/>
+        <location filename="UI/UserInterface.py" line="1814"/>
         <source>&lt;b&gt;Qt-Linguist 4&lt;/b&gt;&lt;p&gt;Start Qt-Linguist 4.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Qt-Linguist 4&lt;/b&gt;&lt;p&gt;Spustit Qt-Linguist 4.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1817"/>
+        <location filename="UI/UserInterface.py" line="1823"/>
         <source>UI Previewer</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1817"/>
+        <location filename="UI/UserInterface.py" line="1823"/>
         <source>&amp;UI Previewer...</source>
         <translation>&amp;UI Previewer...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1820"/>
+        <location filename="UI/UserInterface.py" line="1826"/>
         <source>Start the UI Previewer</source>
         <translation>Spustit UI Previewer</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1821"/>
+        <location filename="UI/UserInterface.py" line="1827"/>
         <source>&lt;b&gt;UI Previewer&lt;/b&gt;&lt;p&gt;Start the UI Previewer.&lt;/p&gt;</source>
         <translation>&lt;b&gt;UI Previewer&lt;/b&gt;&lt;p&gt;Spustit UI Previewer.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1828"/>
+        <location filename="UI/UserInterface.py" line="1834"/>
         <source>Translations Previewer</source>
         <translation>Náhled překladů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1828"/>
+        <location filename="UI/UserInterface.py" line="1834"/>
         <source>&amp;Translations Previewer...</source>
         <translation>Náhled &amp;překladů...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1831"/>
+        <location filename="UI/UserInterface.py" line="1837"/>
         <source>Start the Translations Previewer</source>
         <translation>Spustit Previewer překladů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1832"/>
+        <location filename="UI/UserInterface.py" line="1838"/>
         <source>&lt;b&gt;Translations Previewer&lt;/b&gt;&lt;p&gt;Start the Translations Previewer.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Previewer překladů&lt;/b&gt;&lt;p&gt;Spustit Previewer překladů.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1839"/>
+        <location filename="UI/UserInterface.py" line="1845"/>
         <source>Compare Files</source>
         <translation>Porovnat soubory</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1839"/>
+        <location filename="UI/UserInterface.py" line="1845"/>
         <source>&amp;Compare Files...</source>
         <translation>&amp;Porovnat soubory...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1854"/>
+        <location filename="UI/UserInterface.py" line="1860"/>
         <source>Compare two files</source>
         <translation>Porovnat dva soubory</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1843"/>
+        <location filename="UI/UserInterface.py" line="1849"/>
         <source>&lt;b&gt;Compare Files&lt;/b&gt;&lt;p&gt;Open a dialog to compare two files.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Porovnat soubory&lt;/b&gt;&lt;p&gt;Otevře dialog pro porovnání dvou souborů.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1850"/>
+        <location filename="UI/UserInterface.py" line="1856"/>
         <source>Compare Files side by side</source>
         <translation>Porovnat soubory stranu proti straně</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1850"/>
+        <location filename="UI/UserInterface.py" line="1856"/>
         <source>Compare Files &amp;side by side...</source>
         <translation>Porovnat soubory &amp;stranu proti straně...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1855"/>
+        <location filename="UI/UserInterface.py" line="1861"/>
         <source>&lt;b&gt;Compare Files side by side&lt;/b&gt;&lt;p&gt;Open a dialog to compare two files and show the result side by side.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Porovnat soubory stranu proti straně&lt;/b&gt;&lt;p&gt;Otevře dialog pro porovnání souborů a zobrazení rozdílů strany proti straně.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1911"/>
+        <location filename="UI/UserInterface.py" line="1917"/>
         <source>Preferences</source>
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1911"/>
+        <location filename="UI/UserInterface.py" line="1917"/>
         <source>&amp;Preferences...</source>
         <translation>Na&amp;stavení...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1914"/>
+        <location filename="UI/UserInterface.py" line="1920"/>
         <source>Set the prefered configuration</source>
         <translation>Nastavení konfigurace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1915"/>
+        <location filename="UI/UserInterface.py" line="1921"/>
         <source>&lt;b&gt;Preferences&lt;/b&gt;&lt;p&gt;Set the configuration items of the application with your prefered values.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Nastavení&lt;/b&gt;&lt;p&gt;Upravit konfiguraci aplikace podle požadavků uživatele.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1946"/>
+        <location filename="UI/UserInterface.py" line="1952"/>
         <source>Reload APIs</source>
         <translation>Obnovit API</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1946"/>
+        <location filename="UI/UserInterface.py" line="1952"/>
         <source>Reload &amp;APIs</source>
         <translation>Obnovit &amp;API</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1948"/>
+        <location filename="UI/UserInterface.py" line="1954"/>
         <source>Reload the API information</source>
         <translation>Obnovit API nastavení</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1949"/>
+        <location filename="UI/UserInterface.py" line="1955"/>
         <source>&lt;b&gt;Reload APIs&lt;/b&gt;&lt;p&gt;Reload the API information.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Obnovit API&lt;/b&gt;&lt;p&gt;Obnovit API nastavení.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1968"/>
+        <location filename="UI/UserInterface.py" line="1974"/>
         <source>View Profiles</source>
         <translation>Profily pohledů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1968"/>
+        <location filename="UI/UserInterface.py" line="1974"/>
         <source>&amp;View Profiles...</source>
         <translation>Profily &amp;pohledů...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1971"/>
+        <location filename="UI/UserInterface.py" line="1977"/>
         <source>Configure view profiles</source>
         <translation>Konfigurace profilů pohledů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1972"/>
+        <location filename="UI/UserInterface.py" line="1978"/>
         <source>&lt;b&gt;View Profiles&lt;/b&gt;&lt;p&gt;Configure the view profiles. With this dialog you may set the visibility of the various windows for the predetermined view profiles.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Profily pohledů&lt;/b&gt;&lt;p&gt;Konfigurace profilu pohledů. V tomto dialogu můžete nastavit zobrazování různých typů pohledů - editačních oken.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1994"/>
+        <location filename="UI/UserInterface.py" line="2000"/>
         <source>Keyboard Shortcuts</source>
         <translation>Klávesové zkratky</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1994"/>
+        <location filename="UI/UserInterface.py" line="2000"/>
         <source>Keyboard &amp;Shortcuts...</source>
         <translation>Klávesové &amp;zkratky...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1997"/>
+        <location filename="UI/UserInterface.py" line="2003"/>
         <source>Set the keyboard shortcuts</source>
         <translation>Nastavení klávesových zkratek</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1998"/>
+        <location filename="UI/UserInterface.py" line="2004"/>
         <source>&lt;b&gt;Keyboard Shortcuts&lt;/b&gt;&lt;p&gt;Set the keyboard shortcuts of the application with your prefered values.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Klávesové zkratky&lt;/b&gt;&lt;p&gt;Nastavení klávesových zkratek aplikace podle zvyklostí uživatele.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4886"/>
+        <location filename="UI/UserInterface.py" line="4964"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Exportovat klávesové zkratky</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2006"/>
+        <location filename="UI/UserInterface.py" line="2012"/>
         <source>&amp;Export Keyboard Shortcuts...</source>
         <translation>&amp;Exportovat klávesové zkratky...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2010"/>
+        <location filename="UI/UserInterface.py" line="2016"/>
         <source>Export the keyboard shortcuts</source>
         <translation>Export klávesových zkratek</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2011"/>
+        <location filename="UI/UserInterface.py" line="2017"/>
         <source>&lt;b&gt;Export Keyboard Shortcuts&lt;/b&gt;&lt;p&gt;Export the keyboard shortcuts of the application.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Export klávesových zkratek&lt;/b&gt;&lt;p&gt;Exportují se klávesové zkratky z aplikace.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4909"/>
+        <location filename="UI/UserInterface.py" line="4987"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Import klávesových zkratek</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2018"/>
+        <location filename="UI/UserInterface.py" line="2024"/>
         <source>&amp;Import Keyboard Shortcuts...</source>
         <translation>&amp;Import klávesových zkratek...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2022"/>
+        <location filename="UI/UserInterface.py" line="2028"/>
         <source>Import the keyboard shortcuts</source>
         <translation>Import klávesových zkratek</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2023"/>
+        <location filename="UI/UserInterface.py" line="2029"/>
         <source>&lt;b&gt;Import Keyboard Shortcuts&lt;/b&gt;&lt;p&gt;Import the keyboard shortcuts of the application.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Import klávesových zkratek&lt;/b&gt;&lt;p&gt;Do aplikace se importují klávesové zkratky.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2030"/>
+        <location filename="UI/UserInterface.py" line="2036"/>
         <source>Activate current editor</source>
         <translation>Aktivovat aktuální editor</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2030"/>
+        <location filename="UI/UserInterface.py" line="2036"/>
         <source>Alt+Shift+E</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2039"/>
+        <location filename="UI/UserInterface.py" line="2045"/>
         <source>Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2047"/>
+        <location filename="UI/UserInterface.py" line="2053"/>
         <source>Shift+Ctrl+Alt+Tab</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2126"/>
+        <location filename="UI/UserInterface.py" line="2132"/>
         <source>Qt4 Documentation</source>
         <translation>Qt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2126"/>
+        <location filename="UI/UserInterface.py" line="2132"/>
         <source>Qt&amp;4 Documentation</source>
         <translation>Qt&amp;4 dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2128"/>
+        <location filename="UI/UserInterface.py" line="2134"/>
         <source>Open Qt4 Documentation</source>
         <translation>Otevřít Qt4 dokumentaci</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2129"/>
+        <location filename="UI/UserInterface.py" line="2135"/>
         <source>&lt;b&gt;Qt4 Documentation&lt;/b&gt;&lt;p&gt;Display the Qt4 Documentation. Dependant upon your settings, this will either show the help in Eric&apos;s internal help viewer, or execute a web browser or Qt Assistant. &lt;/p&gt;</source>
         <translation>&lt;b&gt;Qt4 dokumentace&lt;/b&gt;&lt;p&gt;Zobrazit Qt4 dokumentaci. V závislosti na vašich nastaveních zobrazí interní Eric prohlížeč nápovědy nebo spustí webový prohlížeč nebo Qt Assistant.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2138"/>
+        <location filename="UI/UserInterface.py" line="2144"/>
         <source>PyQt4 Documentation</source>
         <translation>PyQt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2138"/>
+        <location filename="UI/UserInterface.py" line="2144"/>
         <source>P&amp;yQt4 Documentation</source>
         <translation>P&amp;yQt4 dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2140"/>
+        <location filename="UI/UserInterface.py" line="2146"/>
         <source>Open PyQt4 Documentation</source>
         <translation>Otevřít PyQt4 dokumentaci</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2141"/>
+        <location filename="UI/UserInterface.py" line="2147"/>
         <source>&lt;b&gt;PyQt4 Documentation&lt;/b&gt;&lt;p&gt;Display the PyQt4 Documentation. Dependant upon your settings, this will either show the help in Eric&apos;s internal help viewer, or execute a web browser or Qt Assistant. &lt;/p&gt;</source>
         <translation>&lt;b&gt;PyQt4 dokumentace&lt;/b&gt;&lt;p&gt;Zobrazit PyQt4 dokumentaci. V závislosti na vašich nastaveních zobrazí interní Eric prohlížeč nápovědy nebo spustí webový prohlížeč nebo Qt Assistant.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="UI/UserInterface.py" line="2154"/>
         <source>Python Documentation</source>
-        <translation>Python dokumentace</translation>
+        <translation type="obsolete">Python dokumentace</translation>
     </message>
     <message>
         <location filename="UI/UserInterface.py" line="2154"/>
         <source>&amp;Python Documentation</source>
-        <translation>&amp;Python dokumentace</translation>
+        <translation type="obsolete">&amp;Python dokumentace</translation>
     </message>
     <message>
         <location filename="UI/UserInterface.py" line="2156"/>
         <source>Open Python Documentation</source>
-        <translation>Otevřít Python dokumentaci</translation>
+        <translation type="obsolete">Otevřít Python dokumentaci</translation>
     </message>
     <message>
         <location filename="UI/UserInterface.py" line="2157"/>
         <source>&lt;b&gt;Python Documentation&lt;/b&gt;&lt;p&gt;Display the python documentation. If no documentation directory is configured, the location of the python documentation is assumed to be the doc directory underneath the location of the python executable on Windows and &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt; on Unix. Set PYTHONDOCDIR in your environment to override this. &lt;/p&gt;</source>
-        <translation>&lt;b&gt;Python dokumentace&lt;/b&gt;&lt;p&gt;Zobrazí python dokumentaci. Pokud není adresář dokumentace nastaven, tak ve Windows se dokumentace hledá v adresáři odkud se python spouští a na Unixu v doc adresáři &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt;. Pokud chcete jiný, nastavte si proměnnou prostředí PYTHONDOCDIR.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2173"/>
+        <translation type="obsolete">&lt;b&gt;Python dokumentace&lt;/b&gt;&lt;p&gt;Zobrazí python dokumentaci. Pokud není adresář dokumentace nastaven, tak ve Windows se dokumentace hledá v adresáři odkud se python spouští a na Unixu v doc adresáři &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt;. Pokud chcete jiný, nastavte si proměnnou prostředí PYTHONDOCDIR.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2196"/>
         <source>Eric API Documentation</source>
         <translation>Eric API dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2173"/>
+        <location filename="UI/UserInterface.py" line="2196"/>
         <source>&amp;Eric API Documentation</source>
         <translation>&amp;Eric API dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2175"/>
+        <location filename="UI/UserInterface.py" line="2198"/>
         <source>Open Eric API Documentation</source>
         <translation>Otevřít Eric API dokumentaci</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2229"/>
+        <location filename="UI/UserInterface.py" line="2252"/>
         <source>&amp;Unittest</source>
         <translation>&amp;Unittest</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2244"/>
+        <location filename="UI/UserInterface.py" line="2267"/>
         <source>E&amp;xtras</source>
         <translation>E&amp;xtra funkce</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2256"/>
+        <location filename="UI/UserInterface.py" line="2279"/>
         <source>&amp;Tools</source>
         <translation>&amp;Nástroje</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2259"/>
+        <location filename="UI/UserInterface.py" line="2282"/>
         <source>Select Tool Group</source>
         <translation>Vybrat skupinu nástrojů</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2265"/>
+        <location filename="UI/UserInterface.py" line="2288"/>
         <source>Se&amp;ttings</source>
         <translation>Nas&amp;tavení</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2283"/>
+        <location filename="UI/UserInterface.py" line="2306"/>
         <source>&amp;Window</source>
         <translation>O&amp;kno</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2289"/>
+        <location filename="UI/UserInterface.py" line="2312"/>
         <source>&amp;Toolbars</source>
         <translation>&amp;Toolbary</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2314"/>
+        <location filename="UI/UserInterface.py" line="2337"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2379"/>
+        <location filename="UI/UserInterface.py" line="2403"/>
         <source>Tools</source>
         <translation>Nástroje</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2381"/>
+        <location filename="UI/UserInterface.py" line="2405"/>
         <source>Settings</source>
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4155"/>
+        <location filename="UI/UserInterface.py" line="4179"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2383"/>
+        <location filename="UI/UserInterface.py" line="2407"/>
         <source>Profiles</source>
         <translation>Profily</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2678"/>
+        <location filename="UI/UserInterface.py" line="2702"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Čísla verzí&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5503"/>
+        <location filename="UI/UserInterface.py" line="5581"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2729"/>
+        <location filename="UI/UserInterface.py" line="2753"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>Emailová adresa nebo mail server adresa jsou prázdné. Prosím, nastavte váš email v dialogovém okně Nastavení.</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="3020"/>
+        <location filename="UI/UserInterface.py" line="3044"/>
         <source>Configure Tool Groups ...</source>
         <translation>Konfigurace Skupin nástrojů...</translation>
     </message>
     <message>
+        <location filename="UI/UserInterface.py" line="3047"/>
+        <source>Configure current Tool Group ...</source>
+        <translation>Konfigurace aktuální skupiny nástrojů...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="3095"/>
+        <source>&amp;Builtin Tools</source>
+        <translation>&amp;Vestavěné nástroje</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="3967"/>
+        <source>There is no main script defined for the current project. Aborting</source>
+        <translation>V aktuálním projektu není definován hlavní skript. Zrušeno</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4287"/>
+        <source>Problem</source>
+        <translation>Problém</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4420"/>
+        <source>Process Generation Error</source>
+        <translation>Chyba v procesu generování</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4179"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation>Aktuálně není vybrán žádný prohlížeč. Prosím otevřete Nastavení a nějaký vyberte.</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4210"/>
+        <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Nemohu spustit prohlížeč nápovědy.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4770"/>
+        <source>Documentation Missing</source>
+        <translation>Dokumentace chybí</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4755"/>
+        <source>Documentation</source>
+        <translation>Dokumentace</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4664"/>
+        <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Adresář PyQt4 dokumentace není nakonfigurován.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5106"/>
+        <source>Save tasks</source>
+        <translation>Uložit úlohy</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5128"/>
+        <source>Read tasks</source>
+        <translation>Načíst úlohy</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5284"/>
+        <source>Drop Error</source>
+        <translation>Zahodit chybu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5547"/>
+        <source>Error during updates check</source>
+        <translation>Chyba během zjišťování aktualizací</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5534"/>
+        <source>Update available</source>
+        <translation>Byla nalezena aktualizace</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1965"/>
+        <source>Show external tools</source>
+        <translation>Zobrazit externí nástroje</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1962"/>
+        <source>Show external &amp;tools</source>
+        <translation>Zobrazit externí nás&amp;troje</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5547"/>
+        <source>Could not perform updates check.</source>
+        <translation>Kontrolu updatů nelze provést.</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5428"/>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Zrušit</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5619"/>
+        <source>First time usage</source>
+        <translation>Spuštěno poprvé</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="248"/>
+        <source>Initializing Plugin Manager...</source>
+        <translation>Inicializace Plugin manažera...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2323"/>
+        <source>P&amp;lugins</source>
+        <translation>P&amp;luginy</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2408"/>
+        <source>Plugins</source>
+        <translation>Pluginy</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2069"/>
+        <source>Plugin Infos</source>
+        <translation>Plugin Infa</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2072"/>
+        <source>Show Plugin Infos</source>
+        <translation>Zobrazit Plugin infa</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2073"/>
+        <source>&lt;b&gt;Plugin Infos...&lt;/b&gt;&lt;p&gt;This opens a dialog, that show some information about loaded plugins.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Plugin Infa&lt;/b&gt;&lt;p&gt;Otevře dialog, který zobrazí informace o načtených pluginech.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2069"/>
+        <source>&amp;Plugin Infos...</source>
+        <translation>&amp;Plugin Infa...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="3103"/>
+        <source>&amp;Plugin Tools</source>
+        <translation>&amp;Plugin nástroje</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2095"/>
+        <source>Uninstall Plugin</source>
+        <translation>Odinstalovat plugin</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2092"/>
+        <source>&amp;Uninstall Plugin...</source>
+        <translation>&amp;Odinstalovat plugin...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2096"/>
+        <source>&lt;b&gt;Uninstall Plugin...&lt;/b&gt;&lt;p&gt;This opens a dialog to uninstall a plugin.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Odinstalovat plugin...&lt;/b&gt;&lt;p&gt;Otevře dialog pro odinstalaci pluginu.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="3256"/>
+        <source>&amp;Show all</source>
+        <translation>&amp;Zobrazit vše</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="3258"/>
+        <source>&amp;Hide all</source>
+        <translation>&amp;Skrýt vše</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="542"/>
+        <source>Activating Plugins...</source>
+        <translation>Aktivace pluginů...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2272"/>
+        <source>Wi&amp;zards</source>
+        <translation>&amp;Průvodci</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1701"/>
+        <source>Show downloadable versions</source>
+        <translation>Zobrazit verze ke stažení</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1701"/>
+        <source>Show &amp;downloadable versions...</source>
+        <translation>Zobrazit verze pro &amp;download...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1704"/>
+        <source>Show the versions available for download</source>
+        <translation>Zobrazit dostupné verze ke stažení</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5462"/>
+        <source>Error downloading versions file</source>
+        <translation>Chyba v souboru stahování verzí</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5462"/>
+        <source>Could not download the versions file.</source>
+        <translation>Nelze stáhnout soubor s verzemi.</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5568"/>
+        <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
+        <translation>&lt;h3&gt;Dostupné verze&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2103"/>
+        <source>Plugin Repository</source>
+        <translation>Repozitář pluginů</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2103"/>
+        <source>Plugin &amp;Repository...</source>
+        <translation>&amp;Repozitář pluginů...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2106"/>
+        <source>Show Plugins available for download</source>
+        <translation>Zobrazit pluginy dostupné ke stažení</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2108"/>
+        <source>&lt;b&gt;Plugin Repository...&lt;/b&gt;&lt;p&gt;This opens a dialog, that shows a list of plugins available on the Internet.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Repozitář pluginů...&lt;/b&gt;&lt;p&gt;Otevře se dialog, který zobrazí seznam pluginů dostupných ke stažení přes internet.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2084"/>
+        <source>Install Plugins</source>
+        <translation>Instalovat pluginy</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2081"/>
+        <source>&amp;Install Plugins...</source>
+        <translation>&amp;Instalovat pluginy...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2085"/>
+        <source>&lt;b&gt;Install Plugins...&lt;/b&gt;&lt;p&gt;This opens a dialog to install or update plugins.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Instalovat pluginy...&lt;/b&gt;&lt;p&gt;Otevře dialog pro instalaci nebo aktualizaci pluginů.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1885"/>
+        <source>Mini Editor</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1881"/>
+        <source>Mini &amp;Editor...</source>
+        <translation>Mini &amp;Editor...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1886"/>
+        <source>&lt;b&gt;Mini Editor&lt;/b&gt;&lt;p&gt;Open a dialog with a simplified editor.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Mini editor&lt;/b&gt;&lt;p&gt;Otevře se okno s jednoduchým editorem&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1793"/>
+        <source>&amp;Designer 4...</source>
+        <translation>&amp;Designer 4...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1810"/>
+        <source>&amp;Linguist 4...</source>
+        <translation>&amp;Linguist 4...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1987"/>
+        <source>Toolbars</source>
+        <translation>Lišty nástrojů</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1987"/>
+        <source>Tool&amp;bars...</source>
+        <translation>&amp;Lišty nástrojů...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1990"/>
+        <source>Configure toolbars</source>
+        <translation>Konfigurace lišt nástrojů</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1991"/>
+        <source>&lt;b&gt;Toolbars&lt;/b&gt;&lt;p&gt;Configure the toolbars. With this dialog you may change the actions shown on the various toolbars and define your own toolbars.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Listy nástrojů&lt;/b&gt;&lt;p&gt;Konfigurace lišt nástrojů. S tímto dialogem můžete změnit akce zobrazené v různých nástrojových lištách nebo definovat své vlastní nástrojové lišty.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="549"/>
+        <source>Restoring Toolbarmanager...</source>
+        <translation>Obnovit manažer nástrojových lišt...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="4368"/>
+        <source>External Tools</source>
+        <translation>Externí nástroje</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1365"/>
+        <source>Multiproject-Viewer</source>
+        <translation>Prohlížeč multiprojektu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1365"/>
+        <source>&amp;Multiproject-Viewer</source>
+        <translation>Prohlížeč &amp;multiprojektu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1368"/>
+        <source>Toggle the Multiproject-Viewer window</source>
+        <translation>Přepnout okno Prohlížeč multiprojektu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1369"/>
+        <source>&lt;b&gt;Toggle the Multiproject-Viewer window&lt;/b&gt;&lt;p&gt;If the Multiproject-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Přepnout okno Prohlížeče multiprojektu&lt;/b&gt;&lt;p&gt;Pokud bylo okno skryto, tak se zobrazí. Pokud se zobrazovalo, tak se skryje.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1377"/>
+        <source>Activate Multiproject-Viewer</source>
+        <translation>Aktivovat prohlížeč multiprojektu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1508"/>
+        <source>Temp&amp;late-Viewer</source>
+        <translation>Proh&amp;lížeč šablon</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5143"/>
+        <source>Save session</source>
+        <translation>Uložit relaci</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5166"/>
+        <source>Read session</source>
+        <translation>Načíst relaci</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2522"/>
+        <source>&lt;p&gt;This part of the status bar displays the current editors encoding.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část status baru zobrazuje aktuální kódování editorů.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2536"/>
+        <source>&lt;p&gt;This part of the status bar displays an indication of the current editors files writability.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část status baru zobrazuje indikátor práva zápisu editoru do souboru.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="5596"/>
+        <source>SSL Errors</source>
+        <translation>SSL chyby</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1724"/>
+        <source>Request Feature</source>
+        <translation>Požadavek na vlastnost</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1724"/>
+        <source>Request &amp;Feature...</source>
+        <translation>&amp;Požadavek na vlastnost...</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1726"/>
+        <source>Send a feature request</source>
+        <translation>Poslat požadavek na vlastnost</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1727"/>
+        <source>&lt;b&gt;Request Feature...&lt;/b&gt;&lt;p&gt;Opens a dialog to send a feature request.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Požadavek na vlastnost...&lt;/b&gt;&lt;p&gt;Otevře dialog pro odeslání požadavku.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2515"/>
+        <source>&lt;p&gt;This part of the status bar displays the current editors language.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část status baru zobrazuje aktuální jazyk editoru.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2545"/>
+        <source>&lt;p&gt;This part of the status bar displays the name of the file of the current editor.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část statusbaru zobrazuje jméno souboru v aktuálním editoru.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2552"/>
+        <source>&lt;p&gt;This part of the status bar displays the line number of the current editor.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část status baru zobrazuje číslo řádku v aktuálním editoru.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2559"/>
+        <source>&lt;p&gt;This part of the status bar displays the cursor position of the current editor.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Tato část status baru zobrazuje pozici kurzoru v aktuálním editoru.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1529"/>
+        <source>Vertical Toolbox</source>
+        <translation>Svislá nástrojová lišta</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1540"/>
+        <source>Horizontal Toolbox</source>
+        <translation>Vodorovná nástrojová lišta</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1529"/>
+        <source>&amp;Vertical Toolbox</source>
+        <translation>S&amp;vislá nástrojová lišta</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1531"/>
+        <source>Toggle the Vertical Toolbox window</source>
+        <translation>Přepnout na svislou nástrojovou lištu</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1532"/>
+        <source>&lt;b&gt;Toggle the Vertical Toolbox window&lt;/b&gt;&lt;p&gt;If the Vertical Toolbox window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Přepnout svislou nástrojovou lištu&lt;/b&gt;&lt;p&gt;Pokud je svislá nástrojová lišta skryta, tak se zobrazí. Je-li zobrazena, skryje se.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1540"/>
+        <source>&amp;Horizontal Toolbox</source>
+        <translation>&amp;Horizontální lista nástrojů</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1543"/>
+        <source>Toggle the Horizontal Toolbox window</source>
+        <translation>Přepnout na vodorovnou lištu nástrojů</translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="1544"/>
+        <source>&lt;b&gt;Toggle the Horizontal Toolbox window&lt;/b&gt;&lt;p&gt;If the Horizontal Toolbox window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Přepnout vodorovnou nástrojovou lištu&lt;/b&gt;&lt;p&gt;Pokud je vodorovná nástrojová lišta skryta, tak se zobrazí. Je-li zobrazena, skryje se.&lt;/p&gt;</translation>
+    </message>
+    <message>
         <location filename="UI/UserInterface.py" line="3023"/>
-        <source>Configure current Tool Group ...</source>
-        <translation>Konfigurace aktuální skupiny nástrojů...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="3071"/>
-        <source>&amp;Builtin Tools</source>
-        <translation>&amp;Vestavěné nástroje</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="3943"/>
-        <source>There is no main script defined for the current project. Aborting</source>
-        <translation>V aktuálním projektu není definován hlavní skript. Zrušeno</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4263"/>
-        <source>Problem</source>
-        <translation>Problém</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4396"/>
-        <source>Process Generation Error</source>
-        <translation>Chyba v procesu generování</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4155"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation>Aktuálně není vybrán žádný prohlížeč. Prosím otevřete Nastavení a nějaký vyberte.</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4186"/>
-        <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Nemohu spustit prohlížeč nápovědy.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4692"/>
-        <source>Documentation Missing</source>
-        <translation>Dokumentace chybí</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4677"/>
-        <source>Documentation</source>
-        <translation>Dokumentace</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4586"/>
-        <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Adresář PyQt4 dokumentace není nakonfigurován.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5028"/>
-        <source>Save tasks</source>
-        <translation>Uložit úlohy</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5050"/>
-        <source>Read tasks</source>
-        <translation>Načíst úlohy</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5206"/>
-        <source>Drop Error</source>
-        <translation>Zahodit chybu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5469"/>
-        <source>Error during updates check</source>
-        <translation>Chyba během zjišťování aktualizací</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5456"/>
-        <source>Update available</source>
-        <translation>Byla nalezena aktualizace</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1959"/>
-        <source>Show external tools</source>
-        <translation>Zobrazit externí nástroje</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1956"/>
-        <source>Show external &amp;tools</source>
-        <translation>Zobrazit externí nás&amp;troje</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5469"/>
-        <source>Could not perform updates check.</source>
-        <translation>Kontrolu updatů nelze provést.</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5350"/>
-        <source>&amp;Cancel</source>
-        <translation>&amp;Zrušit</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5541"/>
-        <source>First time usage</source>
-        <translation>Spuštěno poprvé</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="243"/>
-        <source>Initializing Plugin Manager...</source>
-        <translation>Inicializace Plugin manažera...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2300"/>
-        <source>P&amp;lugins</source>
-        <translation>P&amp;luginy</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2384"/>
-        <source>Plugins</source>
-        <translation>Pluginy</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2063"/>
-        <source>Plugin Infos</source>
-        <translation>Plugin Infa</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2066"/>
-        <source>Show Plugin Infos</source>
-        <translation>Zobrazit Plugin infa</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2067"/>
-        <source>&lt;b&gt;Plugin Infos...&lt;/b&gt;&lt;p&gt;This opens a dialog, that show some information about loaded plugins.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Plugin Infa&lt;/b&gt;&lt;p&gt;Otevře dialog, který zobrazí informace o načtených pluginech.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2063"/>
-        <source>&amp;Plugin Infos...</source>
-        <translation>&amp;Plugin Infa...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="3079"/>
-        <source>&amp;Plugin Tools</source>
-        <translation>&amp;Plugin nástroje</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2089"/>
-        <source>Uninstall Plugin</source>
-        <translation>Odinstalovat plugin</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2086"/>
-        <source>&amp;Uninstall Plugin...</source>
-        <translation>&amp;Odinstalovat plugin...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2090"/>
-        <source>&lt;b&gt;Uninstall Plugin...&lt;/b&gt;&lt;p&gt;This opens a dialog to uninstall a plugin.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Odinstalovat plugin...&lt;/b&gt;&lt;p&gt;Otevře dialog pro odinstalaci pluginu.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="3232"/>
-        <source>&amp;Show all</source>
-        <translation>&amp;Zobrazit vše</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="3234"/>
-        <source>&amp;Hide all</source>
-        <translation>&amp;Skrýt vše</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="537"/>
-        <source>Activating Plugins...</source>
-        <translation>Aktivace pluginů...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2249"/>
-        <source>Wi&amp;zards</source>
-        <translation>&amp;Průvodci</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1695"/>
-        <source>Show downloadable versions</source>
-        <translation>Zobrazit verze ke stažení</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1695"/>
-        <source>Show &amp;downloadable versions...</source>
-        <translation>Zobrazit verze pro &amp;download...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1698"/>
-        <source>Show the versions available for download</source>
-        <translation>Zobrazit dostupné verze ke stažení</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5384"/>
-        <source>Error downloading versions file</source>
-        <translation>Chyba v souboru stahování verzí</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5384"/>
-        <source>Could not download the versions file.</source>
-        <translation>Nelze stáhnout soubor s verzemi.</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5490"/>
-        <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Dostupné verze&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2097"/>
-        <source>Plugin Repository</source>
-        <translation>Repozitář pluginů</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2097"/>
-        <source>Plugin &amp;Repository...</source>
-        <translation>&amp;Repozitář pluginů...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2100"/>
-        <source>Show Plugins available for download</source>
-        <translation>Zobrazit pluginy dostupné ke stažení</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2102"/>
-        <source>&lt;b&gt;Plugin Repository...&lt;/b&gt;&lt;p&gt;This opens a dialog, that shows a list of plugins available on the Internet.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Repozitář pluginů...&lt;/b&gt;&lt;p&gt;Otevře se dialog, který zobrazí seznam pluginů dostupných ke stažení přes internet.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2078"/>
-        <source>Install Plugins</source>
-        <translation>Instalovat pluginy</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2075"/>
-        <source>&amp;Install Plugins...</source>
-        <translation>&amp;Instalovat pluginy...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2079"/>
-        <source>&lt;b&gt;Install Plugins...&lt;/b&gt;&lt;p&gt;This opens a dialog to install or update plugins.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Instalovat pluginy...&lt;/b&gt;&lt;p&gt;Otevře dialog pro instalaci nebo aktualizaci pluginů.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1879"/>
-        <source>Mini Editor</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1875"/>
-        <source>Mini &amp;Editor...</source>
-        <translation>Mini &amp;Editor...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1880"/>
-        <source>&lt;b&gt;Mini Editor&lt;/b&gt;&lt;p&gt;Open a dialog with a simplified editor.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Mini editor&lt;/b&gt;&lt;p&gt;Otevře se okno s jednoduchým editorem&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1787"/>
-        <source>&amp;Designer 4...</source>
-        <translation>&amp;Designer 4...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1804"/>
-        <source>&amp;Linguist 4...</source>
-        <translation>&amp;Linguist 4...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1981"/>
-        <source>Toolbars</source>
-        <translation>Lišty nástrojů</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1981"/>
-        <source>Tool&amp;bars...</source>
-        <translation>&amp;Lišty nástrojů...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1984"/>
-        <source>Configure toolbars</source>
-        <translation>Konfigurace lišt nástrojů</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1985"/>
-        <source>&lt;b&gt;Toolbars&lt;/b&gt;&lt;p&gt;Configure the toolbars. With this dialog you may change the actions shown on the various toolbars and define your own toolbars.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Listy nástrojů&lt;/b&gt;&lt;p&gt;Konfigurace lišt nástrojů. S tímto dialogem můžete změnit akce zobrazené v různých nástrojových lištách nebo definovat své vlastní nástrojové lišty.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="544"/>
-        <source>Restoring Toolbarmanager...</source>
-        <translation>Obnovit manažer nástrojových lišt...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="4344"/>
-        <source>External Tools</source>
-        <translation>Externí nástroje</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1359"/>
-        <source>Multiproject-Viewer</source>
-        <translation>Prohlížeč multiprojektu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1359"/>
-        <source>&amp;Multiproject-Viewer</source>
-        <translation>Prohlížeč &amp;multiprojektu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1362"/>
-        <source>Toggle the Multiproject-Viewer window</source>
-        <translation>Přepnout okno Prohlížeč multiprojektu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1363"/>
-        <source>&lt;b&gt;Toggle the Multiproject-Viewer window&lt;/b&gt;&lt;p&gt;If the Multiproject-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Přepnout okno Prohlížeče multiprojektu&lt;/b&gt;&lt;p&gt;Pokud bylo okno skryto, tak se zobrazí. Pokud se zobrazovalo, tak se skryje.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1371"/>
-        <source>Activate Multiproject-Viewer</source>
-        <translation>Aktivovat prohlížeč multiprojektu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1502"/>
-        <source>Temp&amp;late-Viewer</source>
-        <translation>Proh&amp;lížeč šablon</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5065"/>
-        <source>Save session</source>
-        <translation>Uložit relaci</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5088"/>
-        <source>Read session</source>
-        <translation>Načíst relaci</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2498"/>
-        <source>&lt;p&gt;This part of the status bar displays the current editors encoding.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část status baru zobrazuje aktuální kódování editorů.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2512"/>
-        <source>&lt;p&gt;This part of the status bar displays an indication of the current editors files writability.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část status baru zobrazuje indikátor práva zápisu editoru do souboru.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="5518"/>
-        <source>SSL Errors</source>
-        <translation>SSL chyby</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1718"/>
-        <source>Request Feature</source>
-        <translation>Požadavek na vlastnost</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1718"/>
-        <source>Request &amp;Feature...</source>
-        <translation>&amp;Požadavek na vlastnost...</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1720"/>
-        <source>Send a feature request</source>
-        <translation>Poslat požadavek na vlastnost</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1721"/>
-        <source>&lt;b&gt;Request Feature...&lt;/b&gt;&lt;p&gt;Opens a dialog to send a feature request.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Požadavek na vlastnost...&lt;/b&gt;&lt;p&gt;Otevře dialog pro odeslání požadavku.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2491"/>
-        <source>&lt;p&gt;This part of the status bar displays the current editors language.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část status baru zobrazuje aktuální jazyk editoru.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2521"/>
-        <source>&lt;p&gt;This part of the status bar displays the name of the file of the current editor.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část statusbaru zobrazuje jméno souboru v aktuálním editoru.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2528"/>
-        <source>&lt;p&gt;This part of the status bar displays the line number of the current editor.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část status baru zobrazuje číslo řádku v aktuálním editoru.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2535"/>
-        <source>&lt;p&gt;This part of the status bar displays the cursor position of the current editor.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Tato část status baru zobrazuje pozici kurzoru v aktuálním editoru.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1523"/>
-        <source>Vertical Toolbox</source>
-        <translation>Svislá nástrojová lišta</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1534"/>
-        <source>Horizontal Toolbox</source>
-        <translation>Vodorovná nástrojová lišta</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1523"/>
-        <source>&amp;Vertical Toolbox</source>
-        <translation>S&amp;vislá nástrojová lišta</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1525"/>
-        <source>Toggle the Vertical Toolbox window</source>
-        <translation>Přepnout na svislou nástrojovou lištu</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1526"/>
-        <source>&lt;b&gt;Toggle the Vertical Toolbox window&lt;/b&gt;&lt;p&gt;If the Vertical Toolbox window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Přepnout svislou nástrojovou lištu&lt;/b&gt;&lt;p&gt;Pokud je svislá nástrojová lišta skryta, tak se zobrazí. Je-li zobrazena, skryje se.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1534"/>
-        <source>&amp;Horizontal Toolbox</source>
-        <translation>&amp;Horizontální lista nástrojů</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1537"/>
-        <source>Toggle the Horizontal Toolbox window</source>
-        <translation>Přepnout na vodorovnou lištu nástrojů</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="1538"/>
-        <source>&lt;b&gt;Toggle the Horizontal Toolbox window&lt;/b&gt;&lt;p&gt;If the Horizontal Toolbox window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Přepnout vodorovnou nástrojovou lištu&lt;/b&gt;&lt;p&gt;Pokud je vodorovná nástrojová lišta skryta, tak se zobrazí. Je-li zobrazena, skryje se.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="UI/UserInterface.py" line="2999"/>
         <source>Restart application</source>
         <translation>Restartovat aplikaci</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2999"/>
+        <location filename="UI/UserInterface.py" line="3023"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>Aplikace potřebuje restartovat. Má se provést nyní?</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1421"/>
+        <location filename="UI/UserInterface.py" line="1427"/>
         <source>Terminal</source>
         <translation>Terminál</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1421"/>
+        <location filename="UI/UserInterface.py" line="1427"/>
         <source>Te&amp;rminal</source>
         <translation>Te&amp;rminál</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1423"/>
+        <location filename="UI/UserInterface.py" line="1429"/>
         <source>Toggle the Terminal window</source>
         <translation>Přepnout do okna s terminálem</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1424"/>
+        <location filename="UI/UserInterface.py" line="1430"/>
         <source>&lt;b&gt;Toggle the Terminal window&lt;/b&gt;&lt;p&gt;If the Terminal window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přepnout do okna s terminálem&lt;/b&gt;&lt;p&gt;Pokud je okno skryto, tak se zobrazí. Je-li zobrazeno, skryje se.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1432"/>
+        <location filename="UI/UserInterface.py" line="1438"/>
         <source>Activate Terminal</source>
         <translation>Aktivovat terminál</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1432"/>
+        <location filename="UI/UserInterface.py" line="1438"/>
         <source>Alt+Shift+R</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1514"/>
+        <location filename="UI/UserInterface.py" line="1520"/>
         <source>Alt+Shift+A</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2309"/>
+        <location filename="UI/UserInterface.py" line="2332"/>
         <source>Configure...</source>
         <translation>Konfigurovat...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2505"/>
+        <location filename="UI/UserInterface.py" line="2529"/>
         <source>&lt;p&gt;This part of the status bar displays the current editors eol setting.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Tato část status baru zobrazuje eol nastavení v aktuálním editoru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2055"/>
+        <location filename="UI/UserInterface.py" line="2061"/>
         <source>Switch between tabs</source>
         <translation>Přepnout mezi taby</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2055"/>
+        <location filename="UI/UserInterface.py" line="2061"/>
         <source>Ctrl+1</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1923"/>
+        <location filename="UI/UserInterface.py" line="1929"/>
         <source>Export Preferences</source>
         <translation>Exportovat předvolby</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1923"/>
+        <location filename="UI/UserInterface.py" line="1929"/>
         <source>E&amp;xport Preferences...</source>
         <translation>E&amp;xportovat předvolby...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1926"/>
+        <location filename="UI/UserInterface.py" line="1932"/>
         <source>Export the current configuration</source>
         <translation>Export aktuální konfigurace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1927"/>
+        <location filename="UI/UserInterface.py" line="1933"/>
         <source>&lt;b&gt;Export Preferences&lt;/b&gt;&lt;p&gt;Export the current configuration to a file.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Export předvoleb&lt;/b&gt;&lt;p&gt;Export aktuální konfigurace do souboru.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1934"/>
+        <location filename="UI/UserInterface.py" line="1940"/>
         <source>Import Preferences</source>
         <translation>Import předvoleb</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1934"/>
+        <location filename="UI/UserInterface.py" line="1940"/>
         <source>I&amp;mport Preferences...</source>
         <translation>I&amp;mport předvoleb...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1937"/>
+        <location filename="UI/UserInterface.py" line="1943"/>
         <source>Import a previously exported configuration</source>
         <translation>Import dříve exportované konfigurace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1939"/>
+        <location filename="UI/UserInterface.py" line="1945"/>
         <source>&lt;b&gt;Import Preferences&lt;/b&gt;&lt;p&gt;Import a previously exported configuration.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Import předvoleb&lt;/b&gt;&lt;p&gt;Import dříve exportované konfigurace.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2039"/>
+        <location filename="UI/UserInterface.py" line="2045"/>
         <source>Show next</source>
         <translation>Zobrazit další</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2047"/>
+        <location filename="UI/UserInterface.py" line="2053"/>
         <source>Show previous</source>
         <translation>Zobrazit předchozí</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1546"/>
+        <location filename="UI/UserInterface.py" line="1552"/>
         <source>Left Sidebar</source>
         <translation>Levé menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1546"/>
+        <location filename="UI/UserInterface.py" line="1552"/>
         <source>&amp;Left Sidebar</source>
         <translation>&amp;Levé menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1548"/>
+        <location filename="UI/UserInterface.py" line="1554"/>
         <source>Toggle the left sidebar window</source>
         <translation>Přepnout okno levého menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1549"/>
+        <location filename="UI/UserInterface.py" line="1555"/>
         <source>&lt;b&gt;Toggle the left sidebar window&lt;/b&gt;&lt;p&gt;If the left sidebar window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přepnout okno levého menu&lt;/b&gt;&lt;p&gt;Je-li okno levého menu skryto, tak se zobrazí. Je-li zobrazeno, skryje se.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1557"/>
+        <location filename="UI/UserInterface.py" line="1563"/>
         <source>Bottom Sidebar</source>
         <translation>Dolní menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1557"/>
+        <location filename="UI/UserInterface.py" line="1563"/>
         <source>&amp;Bottom Sidebar</source>
         <translation>&amp;Dolní menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1560"/>
+        <location filename="UI/UserInterface.py" line="1566"/>
         <source>Toggle the bottom sidebar window</source>
         <translation>Přepnout okno dolního menu</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1561"/>
+        <location filename="UI/UserInterface.py" line="1567"/>
         <source>&lt;b&gt;Toggle the bottom sidebar window&lt;/b&gt;&lt;p&gt;If the bottom sidebar window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přepnout okno dolního menu&lt;/b&gt;&lt;p&gt;Je-li okno dolního menu skryto, tak se zobrazí. Je-li zobrazeno, skryje se.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1380"/>
+        <location filename="UI/UserInterface.py" line="1386"/>
         <source>&amp;Debug-Viewer</source>
         <translation>Prohlížeč &amp;debugeru</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1382"/>
+        <location filename="UI/UserInterface.py" line="1388"/>
         <source>Toggle the Debug-Viewer window</source>
         <translation>Přepnout okno debug prohlížeče</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1383"/>
+        <location filename="UI/UserInterface.py" line="1389"/>
         <source>&lt;b&gt;Toggle the Debug-Viewer window&lt;/b&gt;&lt;p&gt;If the Debug-Viewer window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Přepnout okno debug prohlížeče&lt;/b&gt;&lt;p&gt;Je-li okno debug prohlížeče skryto, zobrazí se. Je-li zobrazeno, skryje se.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1391"/>
+        <location filename="UI/UserInterface.py" line="1397"/>
         <source>Activate Debug-Viewer</source>
         <translation>Aktivní debug prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1863"/>
+        <location filename="UI/UserInterface.py" line="1869"/>
         <source>SQL Browser</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1863"/>
+        <location filename="UI/UserInterface.py" line="1869"/>
         <source>SQL &amp;Browser...</source>
         <translation>SQL &amp;Browser...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1867"/>
+        <location filename="UI/UserInterface.py" line="1873"/>
         <source>Browse a SQL database</source>
         <translation>Procházet SQL databázi</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1868"/>
+        <location filename="UI/UserInterface.py" line="1874"/>
         <source>&lt;b&gt;SQL Browser&lt;/b&gt;&lt;p&gt;Browse a SQL database.&lt;/p&gt;</source>
         <translation>&lt;b&gt;SQL Browser&lt;/b&gt;&lt;p&gt;Procházet SQL databázi.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2782"/>
+        <location filename="UI/UserInterface.py" line="2806"/>
         <source>Error log found</source>
         <translation>Nalezen záznam o chybě</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2782"/>
+        <location filename="UI/UserInterface.py" line="2806"/>
         <source>An error log file was found. What should be done with it?</source>
         <translation>Nalezen záznam o chybě. Co by se s tím mělo dělat?</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2795"/>
+        <location filename="UI/UserInterface.py" line="2819"/>
         <source>Send Bug Email</source>
         <translation>Poslat email s chybou</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2798"/>
+        <location filename="UI/UserInterface.py" line="2822"/>
         <source>Ignore and Delete</source>
         <translation>Ignotovat a smazat</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2801"/>
+        <location filename="UI/UserInterface.py" line="2825"/>
         <source>Ignore but Keep</source>
         <translation>Ignorovat ale zachovat</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1887"/>
+        <location filename="UI/UserInterface.py" line="1893"/>
         <source>Web Browser</source>
         <translation>Web prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1887"/>
+        <location filename="UI/UserInterface.py" line="1893"/>
         <source>&amp;Web Browser...</source>
         <translation>&amp;Web prohlížeč...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1899"/>
+        <location filename="UI/UserInterface.py" line="1905"/>
         <source>Icon Editor</source>
         <translation>Editor ikon</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1899"/>
+        <location filename="UI/UserInterface.py" line="1905"/>
         <source>&amp;Icon Editor...</source>
         <translation>Editor &amp;ikon...</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4105"/>
+        <location filename="UI/UserInterface.py" line="4129"/>
         <source>Qt 3 support</source>
         <translation>Qt 3 podpora</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2191"/>
+        <location filename="UI/UserInterface.py" line="2214"/>
         <source>PySide Documentation</source>
         <translation>PySide dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2191"/>
+        <location filename="UI/UserInterface.py" line="2214"/>
         <source>Py&amp;Side Documentation</source>
         <translation>Py&amp;Side dokumentace</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2193"/>
+        <location filename="UI/UserInterface.py" line="2216"/>
         <source>Open PySide Documentation</source>
         <translation>Otevřít PySide dokumentaci</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2194"/>
+        <location filename="UI/UserInterface.py" line="2217"/>
         <source>&lt;b&gt;PySide Documentation&lt;/b&gt;&lt;p&gt;Display the PySide Documentation. Dependant upon your settings, this will either show the help in Eric&apos;s internal help viewer, or execute a web browser or Qt Assistant. &lt;/p&gt;</source>
         <translation>&lt;b&gt;PySide dokumentace&lt;/b&gt;&lt;p&gt;Zobrazit PySide dokumentaci. V závislosti na vašich nastaveních zobrazí interní Eric prohlížeč nápovědy nebo spustí webový prohlížeč nebo Qt Assistant.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4677"/>
+        <location filename="UI/UserInterface.py" line="4755"/>
         <source>&lt;p&gt;The PySide documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Počátek dokumentace PySide nebyl nastaven.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="600"/>
+        <location filename="UI/UserInterface.py" line="606"/>
         <source>&lt;p&gt;The Qt Style Sheet file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor Qt Style Sheet &lt;b&gt;{0}&lt;/b&gt; nelze vytvořit.&lt;/p&gt;&lt;p&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1263"/>
+        <location filename="UI/UserInterface.py" line="1269"/>
         <source>{0} - Passive Mode</source>
         <translation>{0} - Pasivní mód</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1268"/>
+        <location filename="UI/UserInterface.py" line="1274"/>
         <source>{0} - {1} - Passive Mode</source>
         <translation>{0} - {1} - pasivní mód</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1271"/>
+        <location filename="UI/UserInterface.py" line="1277"/>
         <source>{0} - {1} - {2} - Passive Mode</source>
         <translation>{0} - {1} - {2} - pasivní mód</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1658"/>
+        <location filename="UI/UserInterface.py" line="1664"/>
         <source>&lt;b&gt;Helpviewer&lt;/b&gt;&lt;p&gt;Display the eric5 web browser. This window will show HTML help files and help from Qt help collections. It has the capability to navigate to links, set bookmarks, print the displayed help and some more features. You may use it to browse the internet as well&lt;/p&gt;&lt;p&gt;If called with a word selected, this word is search in the Qt help collection.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Prohlížeč nápovědy&lt;/b&gt;&lt;p&gt;Otevře se eric5 web prohlížeč. Toto okno zobrazuje HTML soubory s nápovědou z Qt kolekce. Má schopnosti navigovat přes odkazy, nastavovat záložky, tisknout zobrazenou nápovědu a další možnosti. Můžete jej také použít pro procházení internetem&lt;/p&gt;&lt;p&gt;Je-li otevřen s hledaným slovem, je toto slovo hledáno v Qt nápovědách.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1688"/>
+        <location filename="UI/UserInterface.py" line="1694"/>
         <source>&lt;b&gt;Check for Updates...&lt;/b&gt;&lt;p&gt;Checks the internet for updates of eric5.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zjistit aktualizace&lt;/b&gt;&lt;p&gt;Zkontroluje přes internet jestli existují nějaké aktualizace Eric5.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1700"/>
+        <location filename="UI/UserInterface.py" line="1706"/>
         <source>&lt;b&gt;Show downloadable versions...&lt;/b&gt;&lt;p&gt;Shows the eric5 versions available for download from the internet.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit dostupné verze ke stažení&lt;/b&gt;&lt;p&gt;Zobrazit dostupné verze eric5 pro stažení z internetu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1891"/>
+        <location filename="UI/UserInterface.py" line="1897"/>
         <source>Start the eric5 Web Browser</source>
         <translation>Spustit eric5 web prohlížeč</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1892"/>
+        <location filename="UI/UserInterface.py" line="1898"/>
         <source>&lt;b&gt;Web Browser&lt;/b&gt;&lt;p&gt;Browse the Internet with the eric5 Web Browser.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Web prohlížeč&lt;/b&gt;&lt;p&gt;Procházet internet pomocí eric5 web prohlížeče.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1903"/>
+        <location filename="UI/UserInterface.py" line="1909"/>
         <source>Start the eric5 Icon Editor</source>
         <translation>Spustit eric5 editor ikon</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1904"/>
+        <location filename="UI/UserInterface.py" line="1910"/>
         <source>&lt;b&gt;Icon Editor&lt;/b&gt;&lt;p&gt;Starts the eric5 Icon Editor for editing simple icons.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Editor ikon&lt;/b&gt;&lt;p&gt;Spustí se eric5 editor ikon pro jednoduchou editaci ikon.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1960"/>
+        <location filename="UI/UserInterface.py" line="1966"/>
         <source>&lt;b&gt;Show external tools&lt;/b&gt;&lt;p&gt;Opens a dialog to show the path and versions of all extenal tools used by eric5.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit externí nástroje&lt;/b&gt;&lt;p&gt;Otevře dialog pro zobrazení cesty a verze externích nástrojů používaných Eric5.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2176"/>
+        <location filename="UI/UserInterface.py" line="2199"/>
         <source>&lt;b&gt;Eric API Documentation&lt;/b&gt;&lt;p&gt;Display the Eric API documentation. The location for the documentation is the Documentation/Source subdirectory of the eric5 installation directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Eric API dokumentace&lt;/b&gt;&lt;p&gt;Zobrazit Eric API dokumentaci. Umístění dokumentace je v podadresáři Documentation/Source v instalačním adresáři eric5.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="2592"/>
+        <location filename="UI/UserInterface.py" line="2616"/>
         <source>External Tools/{0}</source>
         <translation>Externí nástroje/{0}</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4105"/>
+        <location filename="UI/UserInterface.py" line="4129"/>
         <source>Qt v.3 is not supported by eric5.</source>
         <translation>Qt v.3 není podporováno v eric5.</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4263"/>
+        <location filename="UI/UserInterface.py" line="4287"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; neexistuje nebo má nulovou délku.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4025"/>
+        <location filename="UI/UserInterface.py" line="4049"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Designer.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4082"/>
+        <location filename="UI/UserInterface.py" line="4106"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Linguist.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4126"/>
+        <location filename="UI/UserInterface.py" line="4150"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Assistant.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4167"/>
+        <location filename="UI/UserInterface.py" line="4191"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit aktuální prohlížeč.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4226"/>
+        <location filename="UI/UserInterface.py" line="4250"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit UI Previewer.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4271"/>
+        <location filename="UI/UserInterface.py" line="4295"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Previewer překladů.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4290"/>
+        <location filename="UI/UserInterface.py" line="4314"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze spustit SQL Browser.&lt;br&gt;Ujistěte se, že je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4338"/>
+        <location filename="UI/UserInterface.py" line="4362"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>V externím nástroji  &apos;{0}&apos; ve skupině &apos;{1}&apos; nebyl záznam nástroje nalezen.</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4344"/>
+        <location filename="UI/UserInterface.py" line="4368"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>Skupina nástrojů &apos;{0}&apos; nenalezena. </translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4380"/>
+        <location filename="UI/UserInterface.py" line="4404"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Spouštím proces &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4396"/>
+        <location filename="UI/UserInterface.py" line="4420"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit příkaz &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{1}&lt;/b&gt;. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4473"/>
+        <location filename="UI/UserInterface.py" line="4497"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Proces &apos;{0}&apos; byl ukončen.
 </translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4692"/>
+        <location filename="UI/UserInterface.py" line="4770"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Adresář dokumentace &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; nebyl nalezen.&lt;/p&gt;</translation>
     </message>
@@ -40319,12 +40419,12 @@
         <translation type="obsolete">Soubor klávesových zkratek (*.e4k *.e4kz)</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5028"/>
+        <location filename="UI/UserInterface.py" line="5106"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Do souboru s úlohami &lt;b&gt;{0}&lt;/b&gt; nelze zapisovat.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5050"/>
+        <location filename="UI/UserInterface.py" line="5128"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor s úlohami &lt;b&gt;{0}&lt;/b&gt; nelze načíst.&lt;/p&gt;</translation>
     </message>
@@ -40334,12 +40434,12 @@
         <translation type="obsolete">&lt;p&gt;Soubor s úlohami &lt;b&gt;{0}&lt;/b&gt; je v nepodporovaném formátu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5065"/>
+        <location filename="UI/UserInterface.py" line="5143"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Zápis do souboru relace session &lt;b&gt;{0}&lt;/b&gt; se nezdařil.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5088"/>
+        <location filename="UI/UserInterface.py" line="5166"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor relace session &lt;b&gt;{0}&lt;/b&gt; nelze přečíst.&lt;/p&gt;</translation>
     </message>
@@ -40349,135 +40449,175 @@
         <translation type="obsolete">&lt;p&gt;Soubor relace (session) &lt;b&gt;{0}&lt;/b&gt; je v nepodporovaném formátu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5206"/>
+        <location filename="UI/UserInterface.py" line="5284"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; není soubor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5355"/>
+        <location filename="UI/UserInterface.py" line="5433"/>
         <source>Trying host {0}</source>
         <translation>Zkouším host {0}</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5456"/>
+        <location filename="UI/UserInterface.py" line="5534"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric5 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>Aktualizace &lt;b&gt;{0}&lt;/b&gt; eric5 je připravena na &lt;b&gt;{1}&lt;/b&gt;. Chcete ji stáhnout a nainstalovat?</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5465"/>
+        <location filename="UI/UserInterface.py" line="5543"/>
         <source>Eric5 is up to date</source>
         <translation>Eric5 je aktuální</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5465"/>
+        <location filename="UI/UserInterface.py" line="5543"/>
         <source>You are using the latest version of eric5</source>
         <translation>Používáte poslední verzi eric5</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5518"/>
+        <location filename="UI/UserInterface.py" line="5596"/>
         <source>&lt;p&gt;SSL Errors:&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;SSL chyby:&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;&lt;p&gt;Chcete tyto chyby ignorovat?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="5541"/>
+        <location filename="UI/UserInterface.py" line="5619"/>
         <source>eric5 has not been configured yet. The configuration dialog will be started.</source>
         <translation>eric5 nebyl ještě nakonfigurován. Bude spuštěn konfigurační dialog.</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1569"/>
+        <location filename="UI/UserInterface.py" line="1575"/>
         <source>Cooperation</source>
         <translation>Spolupráce</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1569"/>
+        <location filename="UI/UserInterface.py" line="1575"/>
         <source>&amp;Cooperation</source>
         <translation>Spoluprá&amp;ce</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1571"/>
+        <location filename="UI/UserInterface.py" line="1577"/>
         <source>Toggle the Cooperation window</source>
         <translation>Zobrazit/skrýt okno spolupráce</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1573"/>
+        <location filename="UI/UserInterface.py" line="1579"/>
         <source>&lt;b&gt;Toggle the Cooperation window&lt;/b&gt;&lt;p&gt;If the Cooperation window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Zobrazit/skrýt okno spolupráce&lt;/b&gt;&lt;p&gt;Pokud je okno skryté zobrazí se. Pokud se okno zobrazuje, tak se skryje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1581"/>
+        <location filename="UI/UserInterface.py" line="1587"/>
         <source>Activate Cooperation-Viewer</source>
         <translation>Aktivovat náhled spolupráce</translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1581"/>
+        <location filename="UI/UserInterface.py" line="1587"/>
         <source>Alt+Shift+O</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1591"/>
+        <location filename="UI/UserInterface.py" line="1597"/>
         <source>Symbols</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1591"/>
+        <location filename="UI/UserInterface.py" line="1597"/>
         <source>&amp;Symbols</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1593"/>
+        <location filename="UI/UserInterface.py" line="1599"/>
         <source>Toggle the Symbols window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1595"/>
+        <location filename="UI/UserInterface.py" line="1601"/>
         <source>&lt;b&gt;Toggle the Symbols window&lt;/b&gt;&lt;p&gt;If the Symbols window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1603"/>
+        <location filename="UI/UserInterface.py" line="1609"/>
         <source>Activate Symbols-Viewer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1603"/>
+        <location filename="UI/UserInterface.py" line="1609"/>
         <source>Alt+Shift+Y</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1613"/>
+        <location filename="UI/UserInterface.py" line="1619"/>
         <source>Numbers</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1613"/>
+        <location filename="UI/UserInterface.py" line="1619"/>
         <source>&amp;Numbers</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1615"/>
+        <location filename="UI/UserInterface.py" line="1621"/>
         <source>Toggle the Numbers window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1617"/>
+        <location filename="UI/UserInterface.py" line="1623"/>
         <source>&lt;b&gt;Toggle the Numbers window&lt;/b&gt;&lt;p&gt;If the Numbers window is hidden then display it. If it is displayed then close it.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1625"/>
+        <location filename="UI/UserInterface.py" line="1631"/>
         <source>Activate Numbers-Viewer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="1625"/>
+        <location filename="UI/UserInterface.py" line="1631"/>
         <source>Alt+Shift+B</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="UI/UserInterface.py" line="4909"/>
+        <location filename="UI/UserInterface.py" line="4987"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2160"/>
+        <source>Python 3 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2160"/>
+        <source>Python &amp;3 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2162"/>
+        <source>Open Python 3 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2163"/>
+        <source>&lt;b&gt;Python 3 Documentation&lt;/b&gt;&lt;p&gt;Display the Python 3 documentation. If no documentation directory is configured, the location of the Python 3 documentation is assumed to be the doc directory underneath the location of the Python 3 executable on Windows and &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt; on Unix. Set PYTHON3DOCDIR in your environment to override this. &lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2175"/>
+        <source>Python 2 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2175"/>
+        <source>Python &amp;2 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2177"/>
+        <source>Open Python 2 Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="UI/UserInterface.py" line="2178"/>
+        <source>&lt;b&gt;Python 2 Documentation&lt;/b&gt;&lt;p&gt;Display the Python 2 documentation. If no documentation directory is configured, the location of the Python 2 documentation is assumed to be the doc directory underneath the location of the configured Python 2 executable on Windows and &lt;i&gt;/usr/share/doc/packages/python/html/python-docs-html&lt;/i&gt; on Unix. Set PYTHON2DOCDIR in your environment to override this. &lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -40536,12 +40676,12 @@
         <translation>&lt;p&gt;Můžete použít %-kódy a rezervovaná místa ve stringu. Podporované kódy jsou:&lt;table&gt;&lt;tr&gt;    &lt;td&gt;%C&lt;/td&gt;    &lt;td&gt;sloupec kurzoru v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%D&lt;/td&gt;    &lt;td&gt;adresář v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%F&lt;/td&gt;    &lt;td&gt;jméno souboru v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%H&lt;/td&gt;    &lt;td&gt;home adresář aktuálního uživatele&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%L&lt;/td&gt;    &lt;td&gt;řádek s kurzorem v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%P&lt;/td&gt;    &lt;td&gt;cesta aktuálního projektu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%S&lt;/td&gt;    &lt;td&gt;vybraný text v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%U&lt;/td&gt;    &lt;td&gt;uživatelské jméno aktuálního uživatele&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%%&lt;/td&gt;    &lt;td&gt;znak procenta&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Utilities/__init__.py" line="1124"/>
+        <location filename="Utilities/__init__.py" line="1128"/>
         <source>Python2 interpreter not configured.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Utilities/__init__.py" line="1150"/>
+        <location filename="Utilities/__init__.py" line="1172"/>
         <source>Python2 interpreter did not finish within 30s.</source>
         <translation type="unfinished"></translation>
     </message>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Sun Jan 02 12:01:37 2011 +0100
+++ b/i18n/eric5_de.ts	Mon Jan 03 17:10:45 2011 +0100
@@ -1776,7 +1776,7 @@
         <translation>Als übergeordneten Ordner hinzufügen</translation>
     </message>
     <message>
-        <location filename="UI/Browser.py" line="415"/>
+        <location filename="UI/Browser.py" line="417"/>
         <source>New toplevel directory</source>
         <translation>Neuer übergeordneter Ordner</translation>
     </message>
@@ -2792,12 +2792,12 @@
         <translation>Ansichtenmanager</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationDialog.py" line="453"/>
+        <location filename="Preferences/ConfigurationDialog.py" line="456"/>
         <source>Configuration Page Error</source>
         <translation>Konfigurationsseitenfehler</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationDialog.py" line="453"/>
+        <location filename="Preferences/ConfigurationDialog.py" line="456"/>
         <source>&lt;p&gt;The configuration page &lt;b&gt;{0}&lt;/b&gt; could not be loaded.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Konfigurationsseite &lt;b&gt;{0}&lt;/b&gt; konnte nicht geladen werden.&lt;/p&gt;</translation>
     </message>
@@ -2869,11 +2869,6 @@
         <translation>Eric Web-Browser</translation>
     </message>
     <message>
-        <location filename="Preferences/ConfigurationDialog.py" line="134"/>
-        <source>Py3Flakes</source>
-        <translation>Py3Flakes</translation>
-    </message>
-    <message>
         <location filename="Preferences/ConfigurationDialog.py" line="230"/>
         <source>Keywords</source>
         <translation>Schlüsselwörter</translation>
@@ -2888,6 +2883,11 @@
         <source>Tray Starter</source>
         <translation>Systemstarter</translation>
     </message>
+    <message>
+        <location filename="Preferences/ConfigurationDialog.py" line="134"/>
+        <source>PyFlakes</source>
+        <translation>PyFlakes</translation>
+    </message>
 </context>
 <context>
     <name>Connection</name>
@@ -6457,12 +6457,12 @@
 <context>
     <name>Editor</name>
     <message>
-        <location filename="QScintilla/Editor.py" line="2277"/>
+        <location filename="QScintilla/Editor.py" line="2326"/>
         <source>Open File</source>
         <translation>Datei öffnen</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2421"/>
+        <location filename="QScintilla/Editor.py" line="2470"/>
         <source>Save File</source>
         <translation>Datei sichern</translation>
     </message>
@@ -6547,32 +6547,32 @@
         <translation>Drucken</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2056"/>
+        <location filename="QScintilla/Editor.py" line="2105"/>
         <source>Printing...</source>
         <translation>Drucke...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2073"/>
+        <location filename="QScintilla/Editor.py" line="2122"/>
         <source>Printing completed</source>
         <translation>Drucken beendet</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2075"/>
+        <location filename="QScintilla/Editor.py" line="2124"/>
         <source>Error while printing</source>
         <translation>Fehler beim Drucken</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2078"/>
+        <location filename="QScintilla/Editor.py" line="2127"/>
         <source>Printing aborted</source>
         <translation>Drucken abgebrochen</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4969"/>
+        <location filename="QScintilla/Editor.py" line="5023"/>
         <source>File changed</source>
         <translation>Datei geändert</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4965"/>
+        <location filename="QScintilla/Editor.py" line="5019"/>
         <source>&lt;br&gt;&lt;b&gt;Warning:&lt;/b&gt; You will loose your changes upon reopening it.</source>
         <translation>&lt;br&gt;&lt;b&gt;Warnung:&lt;/b&gt; Vorgenommenen Änderungen gehen beim neu einlesen verloren.</translation>
     </message>
@@ -6582,7 +6582,7 @@
         <translation>Prüfen</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2229"/>
+        <location filename="QScintilla/Editor.py" line="2278"/>
         <source>File Modified</source>
         <translation>Datei geändert</translation>
     </message>
@@ -6617,12 +6617,12 @@
         <translation>Box Kommentar</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="1494"/>
+        <location filename="QScintilla/Editor.py" line="1513"/>
         <source>Modification of Read Only file</source>
         <translation>Änderungsversuch für eine schreibgeschützte Datei</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="1494"/>
+        <location filename="QScintilla/Editor.py" line="1513"/>
         <source>You are attempting to change a read only file. Please save to a different file first.</source>
         <translation>Sie versuchen, eine schreibgeschützte Datei zu ändern. Bitte speichern sie sie zuerst in eine andere Datei.</translation>
     </message>
@@ -6637,57 +6637,57 @@
         <translation>Zurück zum letzten gesichert Zustand</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4711"/>
+        <location filename="QScintilla/Editor.py" line="4765"/>
         <source>Macro Name</source>
         <translation>Makro Name</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4711"/>
+        <location filename="QScintilla/Editor.py" line="4765"/>
         <source>Select a macro name:</source>
         <translation>Wähle einen Makro Namen:</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4779"/>
+        <location filename="QScintilla/Editor.py" line="4833"/>
         <source>Macro files (*.macro)</source>
         <translation>Makro Dateien (*.macro)</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4739"/>
+        <location filename="QScintilla/Editor.py" line="4793"/>
         <source>Load macro file</source>
         <translation>Lade Makro Datei</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4760"/>
+        <location filename="QScintilla/Editor.py" line="4814"/>
         <source>Error loading macro</source>
         <translation>Fehler beim Makro Laden</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4779"/>
+        <location filename="QScintilla/Editor.py" line="4833"/>
         <source>Save macro file</source>
         <translation>Makro Datei schreiben</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4796"/>
+        <location filename="QScintilla/Editor.py" line="4850"/>
         <source>Save macro</source>
         <translation>Makro speichern</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4811"/>
+        <location filename="QScintilla/Editor.py" line="4865"/>
         <source>Error saving macro</source>
         <translation>Fehler beim Makro speichern</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4822"/>
+        <location filename="QScintilla/Editor.py" line="4876"/>
         <source>Start Macro Recording</source>
         <translation>Makroaufzeichnung starten</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4847"/>
+        <location filename="QScintilla/Editor.py" line="4901"/>
         <source>Macro Recording</source>
         <translation>Makroaufzeichnung</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4847"/>
+        <location filename="QScintilla/Editor.py" line="4901"/>
         <source>Enter name of the macro:</source>
         <translation>Gib einen Namen für das Makro ein:</translation>
     </message>
@@ -6747,32 +6747,32 @@
         <translation>Haltepunkt bearbeiten...</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3952"/>
+        <location filename="QScintilla/Editor.py" line="4001"/>
         <source>Enable breakpoint</source>
         <translation>Haltepunkt aktivieren</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3955"/>
+        <location filename="QScintilla/Editor.py" line="4004"/>
         <source>Disable breakpoint</source>
         <translation>Haltepunkt deaktivieren</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4233"/>
+        <location filename="QScintilla/Editor.py" line="4287"/>
         <source>Code Coverage</source>
         <translation>Quelltext Abdeckung</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4233"/>
+        <location filename="QScintilla/Editor.py" line="4287"/>
         <source>Please select a coverage file</source>
         <translation>Bitte wählen sie eine Datei mit Abdeckungsdaten</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4371"/>
+        <location filename="QScintilla/Editor.py" line="4425"/>
         <source>Profile Data</source>
         <translation>Profildaten</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4371"/>
+        <location filename="QScintilla/Editor.py" line="4425"/>
         <source>Please select a profile file</source>
         <translation>Bitte wählen sie eine Datei mit Profildaten</translation>
     </message>
@@ -6782,12 +6782,12 @@
         <translation>Autom. Vervollständigung aktiv</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3489"/>
+        <location filename="QScintilla/Editor.py" line="3538"/>
         <source>Autocompletion</source>
         <translation>Autom. Vervollständigung</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="3489"/>
+        <location filename="QScintilla/Editor.py" line="3538"/>
         <source>Autocompletion is not available because there is no autocompletion source set.</source>
         <translation>Die automatische Vervollständigung ist nicht verfügbar, da keine Quelle gesetzt ist.</translation>
     </message>
@@ -6822,7 +6822,7 @@
         <translation>Autom. Speicherung aktiv</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="5165"/>
+        <location filename="QScintilla/Editor.py" line="5219"/>
         <source>Drop Error</source>
         <translation>Drop Fehler</translation>
     </message>
@@ -6832,12 +6832,12 @@
         <translation>Zeige Syntaxfehlermeldung</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4489"/>
+        <location filename="QScintilla/Editor.py" line="4543"/>
         <source>Syntax Error</source>
         <translation>Syntaxfehler</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4489"/>
+        <location filename="QScintilla/Editor.py" line="4543"/>
         <source>No syntax error message available.</source>
         <translation>Keine Syntaxfehlermeldung verfügbar.</translation>
     </message>
@@ -6867,42 +6867,42 @@
         <translation>Vorige nichtabgedeckte Zeile</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4279"/>
+        <location filename="QScintilla/Editor.py" line="4333"/>
         <source>Show Code Coverage Annotations</source>
         <translation>Zeilen ohne Abdeckung Markieren</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4275"/>
+        <location filename="QScintilla/Editor.py" line="4329"/>
         <source>All lines have been covered.</source>
         <translation>Alle Zeilen sind abgedeckt.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="4279"/>
+        <location filename="QScintilla/Editor.py" line="4333"/>
         <source>There is no coverage file available.</source>
         <translation>Es gibt keine Datei mit Abdeckungsinformationen.</translation>
     </message>
     <message>
-        <location filename="QScintilla/Editor.py" line="2229"/>
+        <location filename="QScintilla/Editor.py" line="2278"/&g