Continued merging with default branch. maintenance

Fri, 03 Nov 2017 12:14:57 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 03 Nov 2017 12:14:57 +0100
branch
maintenance
changeset 5949
22657f04f332
parent 5948
6f958d5765f4 (current diff)
parent 5945
202a96e0e6b6 (diff)
child 5950
a3766629075c

Continued merging with default branch.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
DebugClients/Python/ThreadExtension.py file | annotate | diff | comparison | revisions
Debugger/DebugServer.py 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/eric6.QScintilla.Editor.html file | annotate | diff | comparison | revisions
E5Gui/E5TextEditSearchWidget.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAutocompletionPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAutocompletionPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
UI/Previewers/PreviewerHTML.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
WebBrowser/Download/DownloadItem.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
i18n/eric6_de.qm file | annotate | diff | comparison | revisions
i18n/eric6_de.ts file | annotate | diff | comparison | revisions
i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
i18n/eric6_en.ts file | annotate | diff | comparison | revisions
i18n/eric6_es.qm file | annotate | diff | comparison | revisions
i18n/eric6_es.ts file | annotate | diff | comparison | revisions
i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
i18n/eric6_it.qm file | annotate | diff | comparison | revisions
i18n/eric6_it.ts file | annotate | diff | comparison | revisions
i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
i18n/eric6_ru.qm file | annotate | diff | comparison | revisions
i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DTDs/Session-6.0.dtd	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,116 @@
+<!-- This is the DTD for eric's (project) session file version 6.0 -->
+
+<!ELEMENT   MultiProject    (#PCDATA)>
+
+<!ELEMENT   Project         (#PCDATA)>
+
+<!ELEMENT   Filename        (#PCDATA)>
+<!ATTLIST   Filename
+    cline       CDATA   #REQUIRED
+    cindex      CDATA   #REQUIRED
+    folds       CDATA   #REQUIRED
+    zoom        CDATA   #REQUIRED>
+
+<!ELEMENT   Filenames       (Filename*)>
+
+<!ELEMENT   ActiveWindow    (#PCDATA)>
+<!ATTLIST   ActiveWindow
+    cline       CDATA   #REQUIRED
+    cindex      CDATA   #REQUIRED>
+
+<!ELEMENT   BpFilename      (#PCDATA)>
+<!ELEMENT   Linenumber      EMPTY>
+<!ATTLIST   Linenumber
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Condition       (#PCDATA)>
+<!ELEMENT   Temporary       EMPTY>
+<!ATTLIST   Temporary
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Enabled         EMPTY>
+<!ATTLIST   Enabled
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Count           EMPTY>
+<!ATTLIST   Count
+    value       CDATA   #REQUIRED>
+
+<!ELEMENT   Breakpoint      (BpFilename,
+                             Linenumber,
+                             Condition,
+                             Temporary,
+                             Enabled,
+                             Count)>
+
+<!ELEMENT   Breakpoints     (Breakpoint*)>
+
+<!ELEMENT   Special         (#PCDATA)>
+
+<!ELEMENT   Watchexpression (Condition,
+                             Temporary,
+                             Enabled,
+                             Count,
+                             Special)>
+
+<!ELEMENT   Watchexpressions (Watchexpression*)>
+
+<!ELEMENT   Exception       (#PCDATA)>
+
+<!ELEMENT   IgnoredException (#PCDATA)>
+
+<!ELEMENT   Interpreter      (#PCDATA)>
+<!ELEMENT   CommandLine      (#PCDATA)>
+<!ELEMENT   WorkingDirectory (#PCDATA)>
+<!ELEMENT   Environment      (#PCDATA)>
+<!ELEMENT   ReportExceptions EMPTY>
+<!ATTLIST   ReportExceptions
+    value       CDATA   #REQUIRED>
+<!ELEMENT   Exceptions       (Exception*)>
+<!ELEMENT   IgnoredExceptions (IgnoredException*)>
+<!ELEMENT   AutoClearShell   EMPTY>
+<!ATTLIST   AutoClearShell
+    value       CDATA   #REQUIRED>
+<!ELEMENT   TracePython      EMPTY>
+<!ATTLIST   TracePython
+    value       CDATA   #REQUIRED>
+<!ELEMENT   AutoContinue     EMPTY>
+<!ATTLIST   AutoContinue
+    value       CDATA   #REQUIRED>
+<!ELEMENT   CovexcPattern    (#PCDATA)>
+
+<!ELEMENT   DebugInfo       (Interpreter,
+                             CommandLine,
+                             WorkingDirectory,
+                             Environment,
+                             ReportExceptions,
+                             Exceptions,
+                             IgnoredExceptions,
+                             AutoClearShell,
+                             TracePython,
+                             AutoContinue,
+                             CovexcPattern)>
+
+<!ELEMENT   BmFilename      (#PCDATA)>
+
+<!ELEMENT   Bookmark        (BmFilename,
+                             Linenumber)>
+
+<!ELEMENT   Bookmarks       (Bookmark*)>
+
+<!ELEMENT   ExpandedItemName     (#PCDATA)>
+
+<!ELEMENT   ProjectBrowserState  (ExpandedItemName*)>
+<!ATTLIST   ProjectBrowserState
+    name        CDATA   #REQUIRED>
+
+<!ELEMENT   ProjectBrowserStates (ProjectBrowserState*)>
+
+<!ELEMENT   Session         (MultiProject?,
+                             Project?,
+                             Filenames,
+                             ActiveWindow?,
+                             Breakpoints,
+                             Watchexpressions,
+                             DebugInfo,
+                             Bookmarks,
+                             ProjectBrowserStates?)>
+<!ATTLIST   Session
+    version     CDATA   #REQUIRED>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.E5Utilities.E5Cache.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,290 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.E5Utilities.E5Cache</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.E5Utilities.E5Cache</h1>
+<p>
+Module implementing classes used for caching objects.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#E5Cache">E5Cache</a></td>
+<td>Class implementing a LRU cache of a specific size.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="E5Cache" ID="E5Cache"></a>
+<h2>E5Cache</h2>
+<p>
+    Class implementing a LRU cache of a specific size.
+</p><p>
+    If the maximum number of entries is exceeded, the least recently used item
+    is removed from the cache. A cache hit moves the entry to the front of the
+    cache.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#E5Cache.__init__">E5Cache</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#E5Cache.__adjustToSize">__adjustToSize</a></td>
+<td>Private method to adjust the cache to its size.</td>
+</tr><tr>
+<td><a href="#E5Cache.__moveLast">__moveLast</a></td>
+<td>Private method to move a cached item to the MRU position.</td>
+</tr><tr>
+<td><a href="#E5Cache.__pruneCache">__pruneCache</a></td>
+<td>Private slot to prune outdated cache entries and restart the timer.</td>
+</tr><tr>
+<td><a href="#E5Cache.add">add</a></td>
+<td>Public method to add an item to the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.clear">clear</a></td>
+<td>Public method to clear the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.get">get</a></td>
+<td>Public method to get an entry from the cache given its key.</td>
+</tr><tr>
+<td><a href="#E5Cache.getMaximumCacheTime">getMaximumCacheTime</a></td>
+<td>Public method to get the maximum time entries may exist in the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.getSize">getSize</a></td>
+<td>Public method to get the maximum size of the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.info">info</a></td>
+<td>Public method to get some information about the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.length">length</a></td>
+<td>Public method to get the current length of the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.remove">remove</a></td>
+<td>Public method to remove an item from the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.reset">reset</a></td>
+<td>Public method to reset the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.setMaximumCacheTime">setMaximumCacheTime</a></td>
+<td>Public method to set the maximum time entries may exist in the cache.</td>
+</tr><tr>
+<td><a href="#E5Cache.setSize">setSize</a></td>
+<td>Public method to change the maximum size of the cache.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="E5Cache.__init__" ID="E5Cache.__init__"></a>
+<h4>E5Cache (Constructor)</h4>
+<b>E5Cache</b>(<i>size=100</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>size</i> (int)</dt>
+<dd>
+maximum number of entries that may be stored in the cache
+</dd>
+</dl><a NAME="E5Cache.__adjustToSize" ID="E5Cache.__adjustToSize"></a>
+<h4>E5Cache.__adjustToSize</h4>
+<b>__adjustToSize</b>(<i></i>)
+<p>
+        Private method to adjust the cache to its size.
+</p><a NAME="E5Cache.__moveLast" ID="E5Cache.__moveLast"></a>
+<h4>E5Cache.__moveLast</h4>
+<b>__moveLast</b>(<i>key</i>)
+<p>
+        Private method to move a cached item to the MRU position.
+</p><dl>
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl><a NAME="E5Cache.__pruneCache" ID="E5Cache.__pruneCache"></a>
+<h4>E5Cache.__pruneCache</h4>
+<b>__pruneCache</b>(<i></i>)
+<p>
+        Private slot to prune outdated cache entries and restart the timer.
+</p><a NAME="E5Cache.add" ID="E5Cache.add"></a>
+<h4>E5Cache.add</h4>
+<b>add</b>(<i>key, item</i>)
+<p>
+        Public method to add an item to the cache.
+</p><p>
+        If the key is already in use, the cached item is replaced by the new
+        one given and is moved to the MRU position
+</p><dl>
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd><dt><i>item</i> (object)</dt>
+<dd>
+item to be cached under the given key
+</dd>
+</dl><a NAME="E5Cache.clear" ID="E5Cache.clear"></a>
+<h4>E5Cache.clear</h4>
+<b>clear</b>(<i></i>)
+<p>
+        Public method to clear the cache.
+</p><a NAME="E5Cache.get" ID="E5Cache.get"></a>
+<h4>E5Cache.get</h4>
+<b>get</b>(<i>key</i>)
+<p>
+        Public method to get an entry from the cache given its key.
+</p><p>
+        If the key is present in the cache, it is moved to the MRU position.
+</p><dl>
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+cached item for the given key or None, if the key is not
+            present
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+object or None
+</dd>
+</dl><a NAME="E5Cache.getMaximumCacheTime" ID="E5Cache.getMaximumCacheTime"></a>
+<h4>E5Cache.getMaximumCacheTime</h4>
+<b>getMaximumCacheTime</b>(<i></i>)
+<p>
+        Public method to get the maximum time entries may exist in the cache.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+maximum cache time in seconds
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="E5Cache.getSize" ID="E5Cache.getSize"></a>
+<h4>E5Cache.getSize</h4>
+<b>getSize</b>(<i></i>)
+<p>
+        Public method to get the maximum size of the cache.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+maximum number of entries of the cache
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="E5Cache.info" ID="E5Cache.info"></a>
+<h4>E5Cache.info</h4>
+<b>info</b>(<i></i>)
+<p>
+        Public method to get some information about the cache.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+dictionary containing the cache info
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+dict (with keys "hits", "misses", "maxsize", "currsize")
+</dd>
+</dl><a NAME="E5Cache.length" ID="E5Cache.length"></a>
+<h4>E5Cache.length</h4>
+<b>length</b>(<i></i>)
+<p>
+        Public method to get the current length of the cache.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+current length of the cache
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl><a NAME="E5Cache.remove" ID="E5Cache.remove"></a>
+<h4>E5Cache.remove</h4>
+<b>remove</b>(<i>key</i>)
+<p>
+        Public method to remove an item from the cache.
+</p><dl>
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl><a NAME="E5Cache.reset" ID="E5Cache.reset"></a>
+<h4>E5Cache.reset</h4>
+<b>reset</b>(<i></i>)
+<p>
+        Public method to reset the cache.
+</p><p>
+        This is like clear() but sets the various counters to their initial
+        value as well.
+</p><a NAME="E5Cache.setMaximumCacheTime" ID="E5Cache.setMaximumCacheTime"></a>
+<h4>E5Cache.setMaximumCacheTime</h4>
+<b>setMaximumCacheTime</b>(<i>time</i>)
+<p>
+        Public method to set the maximum time entries may exist in the cache.
+</p><dl>
+<dt><i>time</i> (int)</dt>
+<dd>
+maximum cache time in seconds
+</dd>
+</dl><a NAME="E5Cache.setSize" ID="E5Cache.setSize"></a>
+<h4>E5Cache.setSize</h4>
+<b>setSize</b>(<i>newSize</i>)
+<p>
+        Public method to change the maximum size of the cache.
+</p><dl>
+<dt><i>newSize</i> (int)</dt>
+<dd>
+maximum number of entries that may be stored in the
+            cache
+</dd>
+</dl>
+<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/eric6.Preferences.ConfigurationPages.EditorDocViewerPage.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Preferences.ConfigurationPages.EditorDocViewerPage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.Preferences.ConfigurationPages.EditorDocViewerPage</h1>
+<p>
+Module implementing the Editor Documentation Viewer configuration page.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#EditorDocViewerPage">EditorDocViewerPage</a></td>
+<td>Class documentation goes here.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#create">create</a></td>
+<td>Module function to create the configuration page.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="EditorDocViewerPage" ID="EditorDocViewerPage"></a>
+<h2>EditorDocViewerPage</h2>
+<p>
+    Class documentation goes here.
+</p>
+<h3>Derived from</h3>
+ConfigurationPageBase, Ui_EditorDocViewerPage
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#EditorDocViewerPage.__init__">EditorDocViewerPage</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#EditorDocViewerPage.save">save</a></td>
+<td>Public slot to save the Editor Typing configuration.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="EditorDocViewerPage.__init__" ID="EditorDocViewerPage.__init__"></a>
+<h4>EditorDocViewerPage (Constructor)</h4>
+<b>EditorDocViewerPage</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="EditorDocViewerPage.save" ID="EditorDocViewerPage.save"></a>
+<h4>EditorDocViewerPage.save</h4>
+<b>save</b>(<i></i>)
+<p>
+        Public slot to save the Editor Typing configuration.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="create" ID="create"></a>
+<h2>create</h2>
+<b>create</b>(<i>dlg</i>)
+<p>
+    Module function to create the configuration page.
+</p><dl>
+<dt><i>dlg</i></dt>
+<dd>
+reference to the configuration dialog
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the instantiated page (ConfigurationPageBase)
+</dd>
+</dl>
+<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/eric6.UI.CodeDocumentationViewer.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,457 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.UI.CodeDocumentationViewer</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.UI.CodeDocumentationViewer</h1>
+<p>
+Module implementing a widget to show some source code information provided by
+plug-ins.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#CodeDocumentationViewer">CodeDocumentationViewer</a></td>
+<td>Class implementing a widget to show some source code information provided by plug-ins.</td>
+</tr><tr>
+<td><a href="#PlainTextDocumentationViewer">PlainTextDocumentationViewer</a></td>
+<td>Class implementing the plain text documentation viewer.</td>
+</tr><tr>
+<td><a href="#WebViewDocumentationViewer">WebViewDocumentationViewer</a></td>
+<td>Class implementing the rich text documentation viewer.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="CodeDocumentationViewer" ID="CodeDocumentationViewer"></a>
+<h2>CodeDocumentationViewer</h2>
+<p>
+    Class implementing a widget to show some source code information provided
+    by plug-ins.
+</p><h3>Signals</h3>
+<dl>
+<dt>providerAdded()</dt>
+<dd>
+emitted to indicate the availability of a new
+        provider
+</dd><dt>providerRemoved()</dt>
+<dd>
+emitted to indicate the removal of a provider
+</dd>
+</dl>
+<h3>Derived from</h3>
+QWidget
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#CodeDocumentationViewer.__init__">CodeDocumentationViewer</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.__setHtml">__setHtml</a></td>
+<td>Private slot to set the prepared HTML text.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.__setHtmlWarning">__setHtmlWarning</a></td>
+<td>Private slot to set a display message.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.__setupUi">__setupUi</a></td>
+<td>Private method to generate the UI layout.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.__showDisabledMessage">__showDisabledMessage</a></td>
+<td>Private method to show a message giving the reason for being disabled.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.__showTextViewer">__showTextViewer</a></td>
+<td>Private slot to show the selected viewer.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.documentationReady">documentationReady</a></td>
+<td>Public method to provide the documentation info to the viewer.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.finalizeSetup">finalizeSetup</a></td>
+<td>Public method to finalize the setup of the documentation viewer.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.getProviders">getProviders</a></td>
+<td>Public method to get a list of providers and their visible strings.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.isSupportedLanguage">isSupportedLanguage</a></td>
+<td>Public method to check, if the given language is supported by the selected provider.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.on_providerComboBox_currentIndexChanged">on_providerComboBox_currentIndexChanged</a></td>
+<td>Private slot to handle the selection of a provider.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.preferencesChanged">preferencesChanged</a></td>
+<td>Public slot to handle a change of preferences.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.registerProvider">registerProvider</a></td>
+<td>Public method register a source docu provider.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.showInfo">showInfo</a></td>
+<td>Public method to request code documentation data from a provider.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.shutdown">shutdown</a></td>
+<td>Public method to perform shutdown actions.</td>
+</tr><tr>
+<td><a href="#CodeDocumentationViewer.unregisterProvider">unregisterProvider</a></td>
+<td>Public method register a source docu provider.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="CodeDocumentationViewer.__init__" ID="CodeDocumentationViewer.__init__"></a>
+<h4>CodeDocumentationViewer (Constructor)</h4>
+<b>CodeDocumentationViewer</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="CodeDocumentationViewer.__setHtml" ID="CodeDocumentationViewer.__setHtml"></a>
+<h4>CodeDocumentationViewer.__setHtml</h4>
+<b>__setHtml</b>(<i>html</i>)
+<p>
+        Private slot to set the prepared HTML text.
+</p><dl>
+<dt><i>html</i> (str)</dt>
+<dd>
+prepared HTML text
+</dd>
+</dl><a NAME="CodeDocumentationViewer.__setHtmlWarning" ID="CodeDocumentationViewer.__setHtmlWarning"></a>
+<h4>CodeDocumentationViewer.__setHtmlWarning</h4>
+<b>__setHtmlWarning</b>(<i>warningText</i>)
+<p>
+        Private slot to set a display message.
+</p><dl>
+<dt><i>warningText</i> (str)</dt>
+<dd>
+text to be shown as a warning
+</dd>
+</dl><a NAME="CodeDocumentationViewer.__setupUi" ID="CodeDocumentationViewer.__setupUi"></a>
+<h4>CodeDocumentationViewer.__setupUi</h4>
+<b>__setupUi</b>(<i></i>)
+<p>
+        Private method to generate the UI layout.
+</p><a NAME="CodeDocumentationViewer.__showDisabledMessage" ID="CodeDocumentationViewer.__showDisabledMessage"></a>
+<h4>CodeDocumentationViewer.__showDisabledMessage</h4>
+<b>__showDisabledMessage</b>(<i></i>)
+<p>
+        Private method to show a message giving the reason for being disabled.
+</p><a NAME="CodeDocumentationViewer.__showTextViewer" ID="CodeDocumentationViewer.__showTextViewer"></a>
+<h4>CodeDocumentationViewer.__showTextViewer</h4>
+<b>__showTextViewer</b>(<i>richText</i>)
+<p>
+        Private slot to show the selected viewer.
+</p><dl>
+<dt><i>richText</i> (bool)</dt>
+<dd>
+flag indicating the rich text viewer
+</dd>
+</dl><a NAME="CodeDocumentationViewer.documentationReady" ID="CodeDocumentationViewer.documentationReady"></a>
+<h4>CodeDocumentationViewer.documentationReady</h4>
+<b>documentationReady</b>(<i>documentationInfo, isWarning=False, isDocWarning=False</i>)
+<p>
+        Public method to provide the documentation info to the viewer.
+</p><p>
+        If documentationInfo is a dictionary, it should contains these keys
+        and data:
+</p><p>
+        name: the name of the inspected object
+        argspec: its argspec
+        note: A phrase describing the type of object (function or method) and
+            the module it belongs to.
+        docstring: its documentation string
+</p><dl>
+<dt><i>documentationInfo</i> (dict or str)</dt>
+<dd>
+dictionary containing the source docu data
+</dd><dt><i>isWarning</i> (bool)</dt>
+<dd>
+flag indicating a warning page
+</dd><dt><i>isDocWarning</i> (bool)</dt>
+<dd>
+flag indicating a documentation warning page
+</dd>
+</dl><a NAME="CodeDocumentationViewer.finalizeSetup" ID="CodeDocumentationViewer.finalizeSetup"></a>
+<h4>CodeDocumentationViewer.finalizeSetup</h4>
+<b>finalizeSetup</b>(<i></i>)
+<p>
+        Public method to finalize the setup of the documentation viewer.
+</p><a NAME="CodeDocumentationViewer.getProviders" ID="CodeDocumentationViewer.getProviders"></a>
+<h4>CodeDocumentationViewer.getProviders</h4>
+<b>getProviders</b>(<i></i>)
+<p>
+        Public method to get a list of providers and their visible strings.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list containing the providers and their visible strings
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of tuple of (str,str)
+</dd>
+</dl><a NAME="CodeDocumentationViewer.isSupportedLanguage" ID="CodeDocumentationViewer.isSupportedLanguage"></a>
+<h4>CodeDocumentationViewer.isSupportedLanguage</h4>
+<b>isSupportedLanguage</b>(<i>language</i>)
+<p>
+        Public method to check, if the given language is supported by the
+        selected provider.
+</p><dl>
+<dt><i>language</i> (str)</dt>
+<dd>
+editor programming language to check
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the support status
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="CodeDocumentationViewer.on_providerComboBox_currentIndexChanged" ID="CodeDocumentationViewer.on_providerComboBox_currentIndexChanged"></a>
+<h4>CodeDocumentationViewer.on_providerComboBox_currentIndexChanged</h4>
+<b>on_providerComboBox_currentIndexChanged</b>(<i>index</i>)
+<p>
+        Private slot to handle the selection of a provider.
+</p><dl>
+<dt><i>index</i> (int)</dt>
+<dd>
+index of the selected provider
+</dd>
+</dl><a NAME="CodeDocumentationViewer.preferencesChanged" ID="CodeDocumentationViewer.preferencesChanged"></a>
+<h4>CodeDocumentationViewer.preferencesChanged</h4>
+<b>preferencesChanged</b>(<i></i>)
+<p>
+        Public slot to handle a change of preferences.
+</p><a NAME="CodeDocumentationViewer.registerProvider" ID="CodeDocumentationViewer.registerProvider"></a>
+<h4>CodeDocumentationViewer.registerProvider</h4>
+<b>registerProvider</b>(<i>providerName, providerDisplay, provider, supported</i>)
+<p>
+        Public method register a source docu provider.
+</p><dl>
+<dt><i>providerName</i> (str)</dt>
+<dd>
+name of the provider (must be unique)
+</dd><dt><i>providerDisplay</i> (str)</dt>
+<dd>
+visible name of the provider
+</dd><dt><i>provider</i> (function(editor))</dt>
+<dd>
+function to be called to determine source docu
+</dd><dt><i>supported</i> (function(language))</dt>
+<dd>
+function to be called to determine, if a language is
+            supported
+</dd>
+</dl><dl>
+<dt>Raises <b>KeyError</b>:</dt>
+<dd>
+raised if a provider with the given name was
+            already registered
+</dd>
+</dl><a NAME="CodeDocumentationViewer.showInfo" ID="CodeDocumentationViewer.showInfo"></a>
+<h4>CodeDocumentationViewer.showInfo</h4>
+<b>showInfo</b>(<i>editor</i>)
+<p>
+        Public method to request code documentation data from a provider.
+</p><dl>
+<dt><i>editor</i> (Editor)</dt>
+<dd>
+reference to the editor to request code docu for
+</dd>
+</dl><a NAME="CodeDocumentationViewer.shutdown" ID="CodeDocumentationViewer.shutdown"></a>
+<h4>CodeDocumentationViewer.shutdown</h4>
+<b>shutdown</b>(<i></i>)
+<p>
+        Public method to perform shutdown actions.
+</p><a NAME="CodeDocumentationViewer.unregisterProvider" ID="CodeDocumentationViewer.unregisterProvider"></a>
+<h4>CodeDocumentationViewer.unregisterProvider</h4>
+<b>unregisterProvider</b>(<i>providerName</i>)
+<p>
+        Public method register a source docu provider.
+</p><dl>
+<dt><i>providerName</i> (str)</dt>
+<dd>
+name of the provider (must be unique)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="PlainTextDocumentationViewer" ID="PlainTextDocumentationViewer"></a>
+<h2>PlainTextDocumentationViewer</h2>
+<p>
+    Class implementing the plain text documentation viewer.
+</p>
+<h3>Derived from</h3>
+QWidget
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#PlainTextDocumentationViewer.__init__">PlainTextDocumentationViewer</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#PlainTextDocumentationViewer.clear">clear</a></td>
+<td>Public method to clear the contents.</td>
+</tr><tr>
+<td><a href="#PlainTextDocumentationViewer.preferencesChanged">preferencesChanged</a></td>
+<td>Public slot to handle a change of preferences.</td>
+</tr><tr>
+<td><a href="#PlainTextDocumentationViewer.setText">setText</a></td>
+<td>Public method to set the text to be shown.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="PlainTextDocumentationViewer.__init__" ID="PlainTextDocumentationViewer.__init__"></a>
+<h4>PlainTextDocumentationViewer (Constructor)</h4>
+<b>PlainTextDocumentationViewer</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="PlainTextDocumentationViewer.clear" ID="PlainTextDocumentationViewer.clear"></a>
+<h4>PlainTextDocumentationViewer.clear</h4>
+<b>clear</b>(<i></i>)
+<p>
+        Public method to clear the contents.
+</p><a NAME="PlainTextDocumentationViewer.preferencesChanged" ID="PlainTextDocumentationViewer.preferencesChanged"></a>
+<h4>PlainTextDocumentationViewer.preferencesChanged</h4>
+<b>preferencesChanged</b>(<i></i>)
+<p>
+        Public slot to handle a change of preferences.
+</p><a NAME="PlainTextDocumentationViewer.setText" ID="PlainTextDocumentationViewer.setText"></a>
+<h4>PlainTextDocumentationViewer.setText</h4>
+<b>setText</b>(<i>text</i>)
+<p>
+        Public method to set the text to be shown.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+text to be shown
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="WebViewDocumentationViewer" ID="WebViewDocumentationViewer"></a>
+<h2>WebViewDocumentationViewer</h2>
+<p>
+    Class implementing the rich text documentation viewer.
+</p>
+<h3>Derived from</h3>
+QWidget
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#WebViewDocumentationViewer.__init__">WebViewDocumentationViewer</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#WebViewDocumentationViewer.__showLink">__showLink</a></td>
+<td>Private slot to show the hovered link in a tooltip.</td>
+</tr><tr>
+<td><a href="#WebViewDocumentationViewer.clear">clear</a></td>
+<td>Public method to clear the shown contents.</td>
+</tr><tr>
+<td><a href="#WebViewDocumentationViewer.setHtml">setHtml</a></td>
+<td>Public method to set the HTML text of the widget.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="WebViewDocumentationViewer.__init__" ID="WebViewDocumentationViewer.__init__"></a>
+<h4>WebViewDocumentationViewer (Constructor)</h4>
+<b>WebViewDocumentationViewer</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+reference to the parent widget
+</dd>
+</dl><a NAME="WebViewDocumentationViewer.__showLink" ID="WebViewDocumentationViewer.__showLink"></a>
+<h4>WebViewDocumentationViewer.__showLink</h4>
+<b>__showLink</b>(<i>urlStr</i>)
+<p>
+        Private slot to show the hovered link in a tooltip.
+</p><dl>
+<dt><i>urlStr</i> (str)</dt>
+<dd>
+hovered URL
+</dd>
+</dl><a NAME="WebViewDocumentationViewer.clear" ID="WebViewDocumentationViewer.clear"></a>
+<h4>WebViewDocumentationViewer.clear</h4>
+<b>clear</b>(<i></i>)
+<p>
+        Public method to clear the shown contents.
+</p><a NAME="WebViewDocumentationViewer.setHtml" ID="WebViewDocumentationViewer.setHtml"></a>
+<h4>WebViewDocumentationViewer.setHtml</h4>
+<b>setHtml</b>(<i>html</i>)
+<p>
+        Public method to set the HTML text of the widget.
+</p><dl>
+<dt><i>html</i> (str)</dt>
+<dd>
+HTML text to be shown
+</dd>
+</dl>
+<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/eric6.UI.CodeDocumentationViewerTemplate.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.UI.CodeDocumentationViewerTemplate</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.UI.CodeDocumentationViewerTemplate</h1>
+<p>
+Module implementing functions to prepare an HTML documentation view.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#prepareDocumentationViewerHtmlDocWarningDocument">prepareDocumentationViewerHtmlDocWarningDocument</a></td>
+<td>Public function to prepare a HTML warning document.</td>
+</tr><tr>
+<td><a href="#prepareDocumentationViewerHtmlDocument">prepareDocumentationViewerHtmlDocument</a></td>
+<td>Public function to prepare the HTML document.</td>
+</tr><tr>
+<td><a href="#prepareDocumentationViewerHtmlWarningDocument">prepareDocumentationViewerHtmlWarningDocument</a></td>
+<td>Public function to prepare a HTML warning document.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="prepareDocumentationViewerHtmlDocWarningDocument" ID="prepareDocumentationViewerHtmlDocWarningDocument"></a>
+<h2>prepareDocumentationViewerHtmlDocWarningDocument</h2>
+<b>prepareDocumentationViewerHtmlDocWarningDocument</b>(<i>text</i>)
+<p>
+    Public function to prepare a HTML warning document.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+warning text to be shown
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+prepared HTML document
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="prepareDocumentationViewerHtmlDocument" ID="prepareDocumentationViewerHtmlDocument"></a>
+<h2>prepareDocumentationViewerHtmlDocument</h2>
+<b>prepareDocumentationViewerHtmlDocument</b>(<i>documentationInfo</i>)
+<p>
+    Public function to prepare the HTML document.
+</p><dl>
+<dt><i>documentationInfo</i> (dict)</dt>
+<dd>
+dictionary containing the various documentation
+        parts
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+prepared HTML document
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="prepareDocumentationViewerHtmlWarningDocument" ID="prepareDocumentationViewerHtmlWarningDocument"></a>
+<h2>prepareDocumentationViewerHtmlWarningDocument</h2>
+<b>prepareDocumentationViewerHtmlWarningDocument</b>(<i>text</i>)
+<p>
+    Public function to prepare a HTML warning document.
+</p><dl>
+<dt><i>text</i> (str)</dt>
+<dd>
+warning text to be shown
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+prepared HTML document
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<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/index-eric6.E5Utilities.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.E5Utilities</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<h1>eric6.E5Utilities</h1>
+<p>
+Package containing utility modules.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+<tr>
+<td><a href="eric6.E5Utilities.E5Cache.html">E5Cache</a></td>
+<td>Module implementing classes used for caching objects.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/index-eric6.UI.data.html	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.UI.data</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<h1>eric6.UI.data</h1>
+<p>
+Package defining some data used by UI widgets.
+</p>
+
+
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Utilities/E5Cache.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,226 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing classes used for caching objects.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import QDateTime, QTimer
+
+
+class E5Cache(object):
+    """
+    Class implementing a LRU cache of a specific size.
+    
+    If the maximum number of entries is exceeded, the least recently used item
+    is removed from the cache. A cache hit moves the entry to the front of the
+    cache.
+    """
+    def __init__(self, size=100):
+        """
+        Constructor
+        
+        @param size maximum number of entries that may be stored in the cache
+        @type int
+        """
+        assert size >= 0
+        
+        self.__size = size
+        
+        # internal objects
+        self.__keyList = []
+        self.__store = {}           # stores the cache entries
+        self.__accesStore = {}      # stores the last access date and times
+        self.__hits = 0
+        self.__misses = 0
+        self.__maxsize = 0
+        self.__maxCacheTime = 0     # 0 seconds means aging is disabled
+        
+        self.__cacheTimer = QTimer()
+        self.__cacheTimer.setSingleShot(True)
+        self.__cacheTimer.timeout.connect(self.__pruneCache)
+    
+    def __moveLast(self, key):
+        """
+        Private method to move a cached item to the MRU position.
+        
+        @param key key of the item to be retrieved
+        @type any hashable type that can be used as a dict key
+        """
+        self.__keyList.remove(key)
+        self.__keyList.append(key)
+    
+    def __adjustToSize(self):
+        """
+        Private method to adjust the cache to its size.
+        """
+        removeList, self.__keyList = \
+            self.__keyList[:-self.__size], self.__keyList[-self.__size:]
+        for key in removeList:
+            del self.__store[key]
+            del self.__accesStore[key]
+    
+    def getSize(self):
+        """
+        Public method to get the maximum size of the cache.
+        
+        @return maximum number of entries of the cache
+        @rtype int
+        """
+        return self.__size
+    
+    def setSize(self, newSize):
+        """
+        Public method to change the maximum size of the cache.
+        
+        @param newSize maximum number of entries that may be stored in the
+            cache
+        @type int
+        """
+        assert newSize >= 0
+        
+        self.__size = newSize
+        self.__adjustToSize()
+    
+    def getMaximumCacheTime(self):
+        """
+        Public method to get the maximum time entries may exist in the cache.
+        
+        @return maximum cache time in seconds
+        @rtype int
+        """
+        return self.__maxCacheTime
+    
+    def setMaximumCacheTime(self, time):
+        """
+        Public method to set the maximum time entries may exist in the cache.
+        
+        @param time maximum cache time in seconds
+        @type int
+        """
+        if time != self.__maxCacheTime:
+            self.__cacheTimer.stop()
+            self.__pruneCache()
+            self.__maxCacheTime = time
+            if self.__maxCacheTime > 0:
+                self.__cacheTimer.setInterval(self.__maxCacheTime * 1000)
+                self.__cacheTimer.start()
+    
+    def get(self, key):
+        """
+        Public method to get an entry from the cache given its key.
+        
+        If the key is present in the cache, it is moved to the MRU position.
+        
+        @param key key of the item to be retrieved
+        @type any hashable type that can be used as a dict key
+        @return cached item for the given key or None, if the key is not
+            present
+        @rtype object or None
+        """
+        if key in self.__store:
+            self.__hits += 1
+            self.__moveLast(key)
+            self.__accesStore[key] = QDateTime.currentDateTimeUtc()
+            return self.__store[key]
+        else:
+            self.__misses += 1
+            return None
+    
+    def add(self, key, item):
+        """
+        Public method to add an item to the cache.
+        
+        If the key is already in use, the cached item is replaced by the new
+        one given and is moved to the MRU position
+        
+        @param key key of the item to be retrieved
+        @type any hashable type that can be used as a dict key
+        @param item item to be cached under the given key
+        @type object
+        """
+        if key in self.__store:
+            self.__moveLast(key)
+        else:
+            self.__keyList.append(key)
+        self.__store[key] = item
+        self.__accesStore[key] = QDateTime.currentDateTimeUtc()
+        
+        self.__adjustToSize()
+        
+        self.__maxsize = max(self.__maxsize, len(self.__keyList))
+    
+    def remove(self, key):
+        """
+        Public method to remove an item from the cache.
+        
+        @param key key of the item to be retrieved
+        @type any hashable type that can be used as a dict key
+        """
+        if key in self.__store:
+            del self.__store[key]
+            del self.__accesStore[key]
+            self.__keyList.remove(key)
+    
+    def clear(self):
+        """
+        Public method to clear the cache.
+        """
+        self.__keyList = []
+        self.__store = {}
+        self.__accesStore = {}
+    
+    def reset(self):
+        """
+        Public method to reset the cache.
+        
+        This is like clear() but sets the various counters to their initial
+        value as well.
+        """
+        self.clear()
+        self.__hits = 0
+        self.__misses = 0
+        self.__maxsize = 0
+    
+    def length(self):
+        """
+        Public method to get the current length of the cache.
+        
+        @return current length of the cache
+        @rtype int
+        """
+        return len(self.__keyList)
+    
+    def info(self):
+        """
+        Public method to get some information about the cache.
+        
+        @return dictionary containing the cache info
+        @rtype dict (with keys "hits", "misses", "maxsize", "currsize")
+        """
+        return {
+            "hits": self.__hits,
+            "misses": self.__misses,
+            "maxsize": self.__maxsize,
+            "currsize": self.length(),
+        }
+    
+    def __pruneCache(self):
+        """
+        Private slot to prune outdated cache entries and restart the timer.
+        """
+        if self.__maxCacheTime > 0:
+            current = QDateTime.currentDateTimeUtc()
+            
+            keysToBeDeleted = []
+            for key, lastAccessTime in self.__accesStore.items():
+                if lastAccessTime.secsTo(current) > self.__maxCacheTime:
+                    keysToBeDeleted.append(key)
+            for key in keysToBeDeleted:
+                self.remove(key)
+        
+            self.__cacheTimer.start()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Utilities/__init__.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package containing utility modules.
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/EditorDocViewerPage.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Editor Documentation Viewer configuration page.
+"""
+
+from __future__ import unicode_literals
+
+from .ConfigurationPageBase import ConfigurationPageBase
+from .Ui_EditorDocViewerPage import Ui_EditorDocViewerPage
+
+from E5Gui.E5Application import e5App
+
+import Preferences
+
+
+class EditorDocViewerPage(ConfigurationPageBase, Ui_EditorDocViewerPage):
+    """
+    Class documentation goes here.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(EditorDocViewerPage, self).__init__()
+        self.setupUi(self)
+        self.setObjectName("EditorExportersPage")
+        
+        providers = e5App().getObject("DocuViewer").getProviders()
+        for provider, text in providers:
+            self.providerComboBox.addItem(text, provider)
+        
+        # set initial values
+        self.parenthesisCheckBox.setChecked(
+            Preferences.getDocuViewer("ShowInfoOnOpenParenthesis"))
+        self.richTextCheckBox.setChecked(
+            Preferences.getDocuViewer("ShowInfoAsRichText"))
+        
+        provider = Preferences.getDocuViewer("Provider")
+        self.viewerGroupBox.setChecked(provider != "disabled")
+            
+        index = self.providerComboBox.findData(provider)
+        if index >= 0:
+            self.providerComboBox.setCurrentIndex(index)
+    
+    def save(self):
+        """
+        Public slot to save the Editor Typing configuration.
+        """
+        enabled = self.viewerGroupBox.isChecked()
+        if enabled:
+            Preferences.setDocuViewer(
+                "ShowInfoOnOpenParenthesis",
+                self.parenthesisCheckBox.isChecked())
+            Preferences.setDocuViewer(
+                "ShowInfoAsRichText",
+                self.richTextCheckBox.isChecked())
+            Preferences.setDocuViewer(
+                "Provider",
+                self.providerComboBox.itemData(
+                    self.providerComboBox.currentIndex())
+            )
+        else:
+            Preferences.setDocuViewer("Provider", "disabled")
+
+
+def create(dlg):
+    """
+    Module function to create the configuration page.
+    
+    @param dlg reference to the configuration dialog
+    @return reference to the instantiated page (ConfigurationPageBase)
+    """
+    page = EditorDocViewerPage()
+    return page
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/EditorDocViewerPage.ui	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EditorDocViewerPage</class>
+ <widget class="QWidget" name="EditorDocViewerPage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <item>
+    <widget class="QLabel" name="headerLabel">
+     <property name="text">
+      <string>&lt;b&gt;Configure Documentation Viewer Settings&lt;/b&gt;</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line2">
+     <property name="frameShape">
+      <enum>QFrame::HLine</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="viewerGroupBox">
+     <property name="toolTip">
+      <string>Select to enable the display of code documentation</string>
+     </property>
+     <property name="title">
+      <string>Enable Documentation Viewer</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QCheckBox" name="parenthesisCheckBox">
+        <property name="toolTip">
+         <string>Select to show documentation when entering a '(' character</string>
+        </property>
+        <property name="text">
+         <string>Show documentation upon '('</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="richTextCheckBox">
+        <property name="toolTip">
+         <string>Select to show code documentation as rich text</string>
+        </property>
+        <property name="text">
+         <string>Show documentation as rich text</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <widget class="QLabel" name="label">
+          <property name="text">
+           <string>Documentation Provider:</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QComboBox" name="providerComboBox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="toolTip">
+           <string>Select the documentation provider to be used</string>
+          </property>
+          <property name="sizeAdjustPolicy">
+           <enum>QComboBox::AdjustToContents</enum>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>167</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>viewerGroupBox</tabstop>
+  <tabstop>parenthesisCheckBox</tabstop>
+  <tabstop>richTextCheckBox</tabstop>
+  <tabstop>providerComboBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/CodeDocumentationViewer.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,586 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a widget to show some source code information provided by
+plug-ins.
+"""
+
+from __future__ import unicode_literals
+try:
+    basestring    # __IGNORE_WARNING__
+except NameError:
+    basestring = str
+
+from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl
+from PyQt5.QtGui import QCursor
+from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, \
+    QComboBox, QSizePolicy, QLineEdit, QTextEdit, QToolTip, QToolButton, \
+    QActionGroup, QMenu
+
+from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget
+from E5Gui.E5ToolButton import E5ToolButton
+
+import Preferences
+import UI.PixmapCache
+
+from .CodeDocumentationViewerTemplate import \
+    prepareDocumentationViewerHtmlDocument, \
+    prepareDocumentationViewerHtmlDocWarningDocument, \
+    prepareDocumentationViewerHtmlWarningDocument
+
+from .data import codeDocumentationViewer_rc    # __IGNORE_WARNING__
+
+
+class PlainTextDocumentationViewer(QWidget):
+    """
+    Class implementing the plain text documentation viewer.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(PlainTextDocumentationViewer, self).__init__(parent)
+        self.setObjectName("PlainTextDocumentationViewer")
+        
+        self.__verticalLayout = QVBoxLayout(self)
+        self.__verticalLayout.setObjectName("verticalLayout")
+        self.__verticalLayout.setContentsMargins(0, 0, 0, 0)
+        
+        self.__contents = QTextEdit(self)
+        self.__contents.setTabChangesFocus(True)
+        self.__contents.setReadOnly(True)
+        self.__contents.setLineWrapMode(QTextEdit.NoWrap)
+        self.__contents.setObjectName("contents")
+        self.__verticalLayout.addWidget(self.__contents)
+        
+        self.__searchWidget = E5TextEditSearchWidget(self)
+        self.__searchWidget.setFocusPolicy(Qt.WheelFocus)
+        self.__searchWidget.setObjectName("searchWidget")
+        self.__verticalLayout.addWidget(self.__searchWidget)
+        
+        self.__searchWidget.attachTextEdit(self.__contents, "QTextEdit")
+        
+        self.preferencesChanged()
+    
+    def clear(self):
+        """
+        Public method to clear the contents.
+        """
+        self.__contents.clear()
+    
+    def setText(self, text):
+        """
+        Public method to set the text to be shown.
+        
+        @param text text to be shown
+        @type str
+        """
+        self.__contents.setPlainText(text)
+    
+    def preferencesChanged(self):
+        """
+        Public slot to handle a change of preferences.
+        """
+        font = Preferences.getEditorOtherFonts("MonospacedFont")
+        self.__contents.setFontFamily(font.family())
+        self.__contents.setFontPointSize(font.pointSize())
+
+
+class WebViewDocumentationViewer(QWidget):
+    """
+    Class implementing the rich text documentation viewer.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(WebViewDocumentationViewer, self).__init__(parent)
+        self.setObjectName("WebViewDocumentationViewer")
+        
+        self.__verticalLayout = QVBoxLayout(self)
+        self.__verticalLayout.setObjectName("verticalLayout")
+        self.__verticalLayout.setContentsMargins(0, 0, 0, 0)
+        
+        try:
+            from PyQt5.QtWebEngineWidgets import QWebEngineView, \
+                QWebEngineSettings
+            self.__contents = QWebEngineView(self)
+            self.__contents.page().linkHovered.connect(self.__showLink)
+            try:
+                self.__contents.settings().setAttribute(
+                    QWebEngineSettings.FocusOnNavigationEnabled, False)
+            except AttributeError:
+                # pre Qt 5.8
+                pass
+            self.__usesWebKit = False
+        except ImportError:
+            from PyQt5.QtWebKitWidgets import QWebPage, QWebView
+            self.__contents = QWebView(self)
+            self.__contents.page().setLinkDelegationPolicy(
+                QWebPage.DelegateAllLinks)
+            self.__usesWebKit = True
+        
+        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(
+            self.__contents.sizePolicy().hasHeightForWidth())
+        self.__contents.setSizePolicy(sizePolicy)
+        self.__contents.setContextMenuPolicy(Qt.NoContextMenu)
+        self.__contents.setUrl(QUrl("about:blank"))
+        self.__verticalLayout.addWidget(self.__contents)
+        
+        self.__searchWidget = E5TextEditSearchWidget(self)
+        self.__searchWidget.setFocusPolicy(Qt.WheelFocus)
+        self.__searchWidget.setObjectName("searchWidget")
+        self.__verticalLayout.addWidget(self.__searchWidget)
+        
+        self.__searchWidget.attachTextEdit(
+            self.__contents,
+            "QWebView" if self.__usesWebKit else "QWebEngineView",
+        )
+    
+    @pyqtSlot(str)
+    def __showLink(self, urlStr):
+        """
+        Private slot to show the hovered link in a tooltip.
+        
+        @param urlStr hovered URL
+        @type str
+        """
+        QToolTip.showText(QCursor.pos(), urlStr, self.__contents)
+    
+    def setHtml(self, html):
+        """
+        Public method to set the HTML text of the widget.
+        
+        @param html HTML text to be shown
+        @type str
+        """
+        self.__contents.setEnabled(False)
+        self.__contents.setHtml(html)
+        self.__contents.setEnabled(True)
+    
+    def clear(self):
+        """
+        Public method to clear the shown contents.
+        """
+        self.__contents.setHtml("")
+
+    
+class CodeDocumentationViewer(QWidget):
+    """
+    Class implementing a widget to show some source code information provided
+    by plug-ins.
+    
+    @signal providerAdded() emitted to indicate the availability of a new
+        provider
+    @signal providerRemoved() emitted to indicate the removal of a provider
+    """
+    providerAdded = pyqtSignal()
+    providerRemoved = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(CodeDocumentationViewer, self).__init__(parent)
+        self.__setupUi()
+        
+        self.__ui = parent
+        
+        self.__providers = {}
+        self.__selectedProvider = ""
+        self.__disabledProvider = "disabled"
+        
+        self.__shuttingDown = False
+        self.__startingUp = True
+        
+        self.__lastDocumentation = None
+        self.__requestingEditor = None
+        
+    
+    def __setupUi(self):
+        """
+        Private method to generate the UI layout.
+        """
+        self.setObjectName("CodeDocumentationViewer")
+        
+        self.verticalLayout = QVBoxLayout(self)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.verticalLayout.setContentsMargins(3, 3, 3, 3)
+        
+        # top row of widgets
+        self.horizontalLayout = QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        
+        self.label = QLabel(self)
+        self.label.setObjectName("label")
+        self.label.setText(self.tr("Code Info Provider:"))
+        self.horizontalLayout.addWidget(self.label)
+        
+        self.providerComboBox = QComboBox(self)
+        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(
+            self.providerComboBox.sizePolicy().hasHeightForWidth())
+        self.providerComboBox.setSizePolicy(sizePolicy)
+        self.providerComboBox.setSizeAdjustPolicy(QComboBox.AdjustToContents)
+        self.providerComboBox.setObjectName("providerComboBox")
+        self.providerComboBox.setToolTip(
+            self.tr("Select the code info provider"))
+        self.providerComboBox.addItem(self.tr("<disabled>"), "disabled")
+        self.horizontalLayout.addWidget(self.providerComboBox)
+        
+        self.objectLineEdit = QLineEdit(self)
+        self.objectLineEdit.setReadOnly(True)
+        self.objectLineEdit.setObjectName("objectLineEdit")
+        self.horizontalLayout.addWidget(self.objectLineEdit)
+        
+        self.__toolButton = E5ToolButton(self)
+        self.__toolButton.setObjectName(
+            "navigation_supermenu_button")
+        self.__toolButton.setIcon(UI.PixmapCache.getIcon("superMenu.png"))
+        self.__toolButton.setToolTip(self.tr("Main Menu"))
+        self.__toolButton.setPopupMode(QToolButton.InstantPopup)
+        self.__toolButton.setToolButtonStyle(Qt.ToolButtonIconOnly)
+        self.__toolButton.setFocusPolicy(Qt.NoFocus)
+        self.__toolButton.setAutoRaise(True)
+        self.__toolButton.setShowMenuInside(True)
+        
+        self.__optionsMenu = QMenu(self)
+        self.__richTextAct = self.__optionsMenu.addAction(
+            self.tr("Rich Text"),
+            lambda: self.__showTextViewer(True))
+        self.__richTextAct.setCheckable(True)
+        self.__plainTextAct = self.__optionsMenu.addAction(
+            self.tr("Plain Text"),
+            lambda: self.__showTextViewer(False))
+        self.__plainTextAct.setCheckable(True)
+        self.__optionsActionGroup = QActionGroup(self)
+        self.__optionsActionGroup.setExclusive(True)
+        self.__optionsActionGroup.addAction(self.__richTextAct)
+        self.__optionsActionGroup.addAction(self.__plainTextAct)
+        
+        self.__toolButton.setMenu(self.__optionsMenu)
+        self.horizontalLayout.addWidget(self.__toolButton)
+        
+        self.verticalLayout.addLayout(self.horizontalLayout)
+        
+        # Plain Text Viewer
+        self.__plainTextViewer = PlainTextDocumentationViewer(self)
+        self.__plainTextViewer.setObjectName("__plainTextViewer")
+        self.verticalLayout.addWidget(self.__plainTextViewer)
+        
+        # Rich Text (Web) Viewer
+        self.__richTextViewer = WebViewDocumentationViewer(self)
+        self.__richTextViewer.setObjectName("__richTextViewer")
+        self.verticalLayout.addWidget(self.__richTextViewer)
+        
+        self.providerComboBox.currentIndexChanged[int].connect(
+            self.on_providerComboBox_currentIndexChanged)
+    
+    def finalizeSetup(self):
+        """
+        Public method to finalize the setup of the documentation viewer.
+        """
+        self.__showTextViewer(Preferences.getDocuViewer("ShowInfoAsRichText"))
+        
+        self.__startingUp = False
+        provider = Preferences.getDocuViewer("Provider")
+        if provider in self.__providers:
+            index = self.providerComboBox.findData(provider)
+        else:
+            index = 0
+            provider = self.__disabledProvider
+        self.providerComboBox.setCurrentIndex(index)
+        self.__selectedProvider = provider
+        if index == 0:
+            self.__showDisabledMessage()
+    
+    # TODO: document this hook in the plug-in document
+    def registerProvider(self, providerName, providerDisplay, provider,
+                         supported):
+        """
+        Public method register a source docu provider.
+        
+        @param providerName name of the provider (must be unique)
+        @type str
+        @param providerDisplay visible name of the provider
+        @type str
+        @param provider function to be called to determine source docu
+        @type function(editor)
+        @param supported function to be called to determine, if a language is
+            supported
+        @type function(language)
+        @exception KeyError raised if a provider with the given name was
+            already registered
+        """
+        if providerName in self.__providers:
+            raise KeyError(
+                "Provider '{0}' already registered.".format(providerName))
+        
+        self.__providers[providerName] = (provider, supported)
+        self.providerComboBox.addItem(providerDisplay, providerName)
+        
+        self.providerAdded.emit()
+    
+    # TODO: document this hook in the plug-in document
+    def unregisterProvider(self, providerName):
+        """
+        Public method register a source docu provider.
+        
+        @param providerName name of the provider (must be unique)
+        @type str
+        """
+        if providerName in self.__providers:
+            if providerName == self.__selectedProvider:
+                self.providerComboBox.setCurrentIndex(0)
+            
+            del self.__providers[providerName]
+            index = self.providerComboBox.findData(providerName)
+            self.providerComboBox.removeItem(index)
+            
+            self.providerRemoved.emit()
+    
+    def isSupportedLanguage(self, language):
+        """
+        Public method to check, if the given language is supported by the
+        selected provider.
+        
+        @param language editor programming language to check
+        @type str
+        @return flag indicating the support status
+        @rtype bool
+        """
+        supported = False
+        
+        if self.__selectedProvider != self.__disabledProvider:
+            supported = self.__providers[self.__selectedProvider][1](language)
+        
+        return supported
+    
+    def getProviders(self):
+        """
+        Public method to get a list of providers and their visible strings.
+        
+        @return list containing the providers and their visible strings
+        @rtype list of tuple of (str,str)
+        """
+        providers = []
+        for index in range(1, self.providerComboBox.count()):
+            provider = self.providerComboBox.itemData(index)
+            text = self.providerComboBox.itemText(index)
+            providers.append((provider, text))
+        
+        return providers
+    
+    def showInfo(self, editor):
+        """
+        Public method to request code documentation data from a provider.
+        
+        @param editor reference to the editor to request code docu for
+        @type Editor
+        """
+        line, index = editor.getCursorPosition()
+        word = editor.getWord(line, index)
+        if not word:
+            # try again one index before
+            word = editor.getWord(line, index - 1)
+        self.objectLineEdit.setText(word)
+        
+        if self.__selectedProvider != self.__disabledProvider:
+            self.__plainTextViewer.clear()
+            self.__richTextViewer.clear()
+            self.__providers[self.__selectedProvider][0](editor)
+    
+    # TODO: document this hook in the plug-in document
+    def documentationReady(self, documentationInfo, isWarning=False,
+                           isDocWarning=False):
+        """
+        Public method to provide the documentation info to the viewer.
+        
+        If documentationInfo is a dictionary, it should contains these keys
+        and data:
+        
+        name: the name of the inspected object
+        argspec: its argspec
+        note: A phrase describing the type of object (function or method) and
+            the module it belongs to.
+        docstring: its documentation string
+        
+        @param documentationInfo dictionary containing the source docu data
+        @type dict or str
+        @param isWarning flag indicating a warning page
+        @type bool
+        @param isDocWarning flag indicating a documentation warning page
+        @type bool
+        """
+        self.__ui.activateCodeDocumentationViewer(switchFocus=False)
+        
+        if not isWarning and not isDocWarning:
+            self.__lastDocumentation = documentationInfo
+        
+        if not documentationInfo:
+            if self.__selectedProvider == self.__disabledProvider:
+                self.__showDisabledMessage()
+            else:
+                self.documentationReady(self.tr("No documentation available"),
+                                        isDocWarning=True)
+        else:
+            if self.__showMarkdown:
+                if isWarning:
+                    html = prepareDocumentationViewerHtmlWarningDocument(
+                        documentationInfo)
+                elif isDocWarning:
+                    html = prepareDocumentationViewerHtmlDocWarningDocument(
+                        documentationInfo)
+                elif isinstance(documentationInfo, dict):
+                    html = prepareDocumentationViewerHtmlDocument(
+                        documentationInfo)
+                else:
+                    html = documentationInfo
+                self.__setHtml(html)
+            else:
+                if isinstance(documentationInfo, basestring):
+                    fullText = documentationInfo
+                elif isinstance(documentationInfo, dict):
+                    name = documentationInfo["name"]
+                    if name:
+                        title = "".join([name, "\n",
+                                         "=" * len(name), "\n\n"])
+                    else:
+                        title = ""
+
+                    if documentationInfo["argspec"]:
+                        definition = self.tr("Definition: {0}{1}\n").format(
+                            name, documentationInfo["argspec"])
+                    else:
+                        definition = ''
+
+                    if documentationInfo["note"]:
+                        note = self.tr("Info: {0}\n\n----\n\n").format(
+                            documentationInfo["note"])
+                    else:
+                        note = ""
+                    
+                    if documentationInfo["docstring"] is None:
+                        docString = ""
+                    else:
+                        docString = documentationInfo["docstring"]
+                    
+                    fullText = "".join([title, definition, note, docString])
+                
+                self.__plainTextViewer.setText(fullText)
+    
+    def __showDisabledMessage(self):
+        """
+        Private method to show a message giving the reason for being disabled.
+        """
+        if len(self.__providers) == 0:
+            self.documentationReady(
+                self.tr("No source code documentation provider has been"
+                        " registered. This function has been disabled."),
+                isWarning=True)
+        else:
+            self.documentationReady(
+                self.tr("This function has been disabled."),
+                isWarning=True)
+    
+    def __setHtml(self, html):
+        """
+        Private slot to set the prepared HTML text.
+        
+        @param html prepared HTML text
+        @type str
+        """
+        self.__richTextViewer.setHtml(html)
+    
+    def __setHtmlWarning(self, warningText):
+        """
+        Private slot to set a display message.
+        
+        @param warningText text to be shown as a warning
+        @type str
+        """
+        html = prepareDocumentationViewerHtmlWarningDocument(warningText)
+        self.__richTextViewer.setHtml(html)
+    
+    @pyqtSlot(int)
+    def on_providerComboBox_currentIndexChanged(self, index):
+        """
+        Private slot to handle the selection of a provider.
+        
+        @param index index of the selected provider
+        @type int
+        """
+        if not self.__shuttingDown and not self.__startingUp:
+            self.__plainTextViewer.clear()
+            self.__richTextViewer.clear()
+            self.objectLineEdit.clear()
+            
+            provider = self.providerComboBox.itemData(index)
+            if provider == self.__disabledProvider:
+                self.__showDisabledMessage()
+            else:
+                self.__lastDocumentation = None
+            
+            Preferences.setDocuViewer("Provider", provider)
+            self.__selectedProvider = provider
+    
+    def shutdown(self):
+        """
+        Public method to perform shutdown actions.
+        """
+        self.__shuttingDown = True
+        Preferences.setDocuViewer("Provider", self.__selectedProvider)
+    
+    def preferencesChanged(self):
+        """
+        Public slot to handle a change of preferences.
+        """
+        showMarkdown = Preferences.getDocuViewer("ShowInfoAsRichText")
+        if showMarkdown != self.__showMarkdown:
+            self.__showTextViewer(showMarkdown)
+        
+        provider = Preferences.getDocuViewer("Provider")
+        if provider != self.__selectedProvider:
+            index = self.providerComboBox.findData(provider)
+            if index < 0:
+                index = 0
+            self.providerComboBox.setCurrentIndex(index)
+    
+    def __showTextViewer(self, richText):
+        """
+        Private slot to show the selected viewer.
+        
+        @param richText flag indicating the rich text viewer
+        @type bool
+        """
+        self.__showMarkdown = richText
+        
+        self.__plainTextViewer.clear()
+        self.__richTextViewer.clear()
+        
+        self.__plainTextViewer.setVisible(not richText)
+        self.__richTextViewer.setVisible(richText)
+        
+        self.__plainTextAct.setChecked(not richText)
+        self.__richTextAct.setChecked(richText)
+        
+        self.documentationReady(self.__lastDocumentation)
+        
+        Preferences.setDocuViewer("ShowInfoAsRichText", richText)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/CodeDocumentationViewerTemplate.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,174 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing functions to prepare an HTML documentation view.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import QCoreApplication
+
+import Utilities
+
+
+def prepareDocumentationViewerHtmlDocument(documentationInfo):
+    """
+    Public function to prepare the HTML document.
+    
+    @param documentationInfo dictionary containing the various documentation
+        parts
+    @type dict
+    @return prepared HTML document
+    @rtype str
+    """
+    mainTemplate = """
+        <!DOCTYPE html>
+        <html>
+        <head>
+        <meta http-equiv="content-type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="qrc:documentViewerStyle.css"
+            type="text/css" />
+        </head>
+        <body>
+            @HEADER@
+            @DOCSTRING@
+        </body>
+        </html>
+    """
+    
+    headerTemplate = """
+        @TITLE@
+        @METADATA@
+    """
+    
+    titleTemplate = """
+        <div class="title"><h1>@NAME@</h1></div>
+    """
+    
+    metadataTemplate = """
+        <div class="metadata">
+        @ARGSPEC@
+        @NOTE@
+        </div>
+    """
+    
+    argspecTemplate = QCoreApplication.translate(
+        "CodeDocumentationViewer",
+        '<p><b>Definition:</b> <span class="def">@NAME@@ARGSPEC@</span></p>',
+        "Just translate 'Definition:' and leave the rest intact.")
+    
+    noteTemplate = QCoreApplication.translate(
+        "CodeDocumentationViewer",
+        "<p><b>Note:</b> @NOTE@</p>",
+        "Just translate 'Note:' and leave the rest intact.")
+    
+    docstringTemplate = """
+        <div class="docstring">
+        @DOCSTRING@
+        </div>
+    """
+    
+    name = documentationInfo["name"]
+    if name:
+        title = titleTemplate.replace("@NAME@", name)
+        if documentationInfo["argspec"] or documentationInfo["note"]:
+            if documentationInfo["argspec"]:
+                argspec = Utilities.html_encode(documentationInfo["argspec"])
+                for char in ['=', ',', '(', ')', '*', '**']:
+                    argspec = argspec.replace(
+                        char,
+                        '<span class="argspec-highlight">{0}</span>'.format(
+                            char))
+                argspec = argspecTemplate\
+                    .replace("@NAME@", name)\
+                    .replace("@ARGSPEC@", argspec)
+            else:
+                argspec = ""
+            if documentationInfo["note"]:
+                note = noteTemplate.replace("@NOTE@",
+                                            documentationInfo["note"])
+            else:
+                note = ""
+            metaData = metadataTemplate\
+                .replace("@ARGSPEC@", argspec)\
+                .replace("@NOTE@", note)
+        else:
+            metaData = ""
+        
+        header = headerTemplate\
+            .replace("@TITLE@", title)\
+            .replace("@METADATA@", metaData)
+    else:
+        header = ""
+    
+    if documentationInfo["docstring"]:
+        docstring = documentationInfo["docstring"]\
+            .replace("\r\n", "<br/>")\
+            .replace("\n", "<br/>")\
+            .replace("\r", "<br/>")
+        docstring = docstringTemplate.replace("@DOCSTRING@", docstring)
+    else:
+        docstring = \
+            """<div class="hr"></div><div id="doc-warning">{0}</div>"""\
+            .format(QCoreApplication.translate(
+                "CodeDocumentationViewer",
+                "No further documentation available"))
+    
+    return mainTemplate\
+        .replace("@HEADER@", header)\
+        .replace("@DOCSTRING@", docstring)
+
+
+def prepareDocumentationViewerHtmlDocWarningDocument(text):
+    """
+    Public function to prepare a HTML warning document.
+    
+    @param text warning text to be shown
+    @type str
+    @return prepared HTML document
+    @rtype str
+    """
+    mainTemplate = """
+        <!DOCTYPE html>
+        <html>
+        <head>
+        <meta http-equiv="content-type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="qrc:documentViewerStyle.css"
+            type="text/css" />
+        </head>
+        <body>
+            <div id="doc-warning">@TEXT@</div>
+        </body>
+        </html>
+    """
+    
+    return mainTemplate.replace("@TEXT@", text)
+
+
+def prepareDocumentationViewerHtmlWarningDocument(text):
+    """
+    Public function to prepare a HTML warning document.
+    
+    @param text warning text to be shown
+    @type str
+    @return prepared HTML document
+    @rtype str
+    """
+    mainTemplate = """
+        <!DOCTYPE html>
+        <html>
+        <head>
+        <meta http-equiv="content-type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="qrc:documentViewerStyle.css"
+            type="text/css" />
+        </head>
+        <body>
+            <div id="warning">@TEXT@</div>
+        </body>
+        </html>
+    """
+    
+    return mainTemplate.replace("@TEXT@", text)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/data/__init__.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package defining some data used by UI widgets.
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/data/codeDocumentationViewer.qrc	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+<qresource>
+  <file>documentViewerStyle.css</file>
+</qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/data/codeDocumentationViewer_rc.py	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,365 @@
+# -*- coding: utf-8 -*-
+
+# Resource object code
+#
+# Created by: The Resource Compiler for PyQt5 (Qt v5.9.1)
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x13\xa8\
+\x2f\
+\x2a\x0a\x20\x2a\x20\x54\x68\x69\x73\x20\x73\x74\x79\x6c\x65\x20\
+\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x69\x73\x20\x62\x61\
+\x73\x65\x64\x20\x6f\x6e\x20\x74\x68\x65\x20\x73\x74\x79\x6c\x65\
+\x20\x73\x68\x65\x65\x74\x20\x66\x69\x6c\x65\x20\x6f\x66\x20\x53\
+\x70\x79\x64\x65\x72\x2e\x0a\x20\x2a\x2f\x0a\x20\x0a\x62\x6f\x64\
+\x79\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\
+\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\
+\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x28\
+\x35\x31\x2c\x20\x35\x31\x2c\x20\x35\x31\x29\x3b\x0a\x20\x20\x20\
+\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x30\x70\x78\x20\x31\x30\x70\
+\x78\x20\x31\x30\x70\x78\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\
+\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x54\x69\x74\x6c\x65\x20\x73\x74\
+\x79\x6c\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x64\x69\x76\x2e\x74\
+\x69\x74\x6c\x65\x20\x68\x31\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\
+\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x33\x30\x25\x3b\x0a\x20\
+\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\
+\x27\x54\x72\x65\x62\x75\x63\x68\x65\x74\x20\x4d\x53\x27\x2c\x20\
+\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x0a\x20\x20\x20\x20\
+\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\
+\x3a\x20\x23\x38\x35\x37\x37\x34\x41\x3b\x0a\x20\x20\x20\x20\x62\
+\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x2d\x77\x65\x62\x6b\
+\x69\x74\x2d\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x61\x72\x2c\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x20\x30\x20\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x30\x20\x31\x30\x30\x25\x2c\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x66\x72\x6f\x6d\x28\x23\x38\x35\x37\x37\x34\x41\x29\x2c\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x2d\x73\
+\x74\x6f\x70\x28\x36\x30\x25\x2c\x20\x23\x62\x39\x61\x35\x36\x37\
+\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x28\x23\x65\
+\x31\x63\x38\x37\x64\x29\x0a\x20\x20\x20\x20\x29\x3b\x0a\x20\x20\
+\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x72\x65\x70\
+\x65\x61\x74\x3a\x20\x72\x65\x70\x65\x61\x74\x2d\x78\x3b\x0a\x20\
+\x20\x20\x20\x74\x65\x78\x74\x2d\x73\x68\x61\x64\x6f\x77\x3a\x20\
+\x30\x70\x78\x20\x31\x70\x78\x20\x31\x70\x78\x20\x72\x67\x62\x61\
+\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x32\x29\x3b\x0a\
+\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\
+\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\
+\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x20\x30\x70\x78\x20\x36\x70\
+\x78\x20\x32\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\
+\x69\x6e\x3a\x20\x30\x70\x78\x20\x2d\x32\x35\x70\x78\x3b\x0a\x20\
+\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x46\x46\x46\x46\x46\
+\x46\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x0a\x20\x2a\x20\x54\x68\x65\x20\
+\x6e\x65\x78\x74\x20\x74\x77\x6f\x20\x73\x74\x79\x6c\x65\x73\x20\
+\x61\x72\x65\x20\x6e\x65\x65\x64\x65\x64\x20\x74\x6f\x0a\x20\x2a\
+\x20\x6d\x6f\x64\x69\x66\x79\x20\x74\x68\x65\x20\x61\x6e\x63\x68\
+\x6f\x72\x73\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x6f\x6e\x20\x74\
+\x68\x65\x0a\x20\x2a\x20\x74\x69\x74\x6c\x65\x20\x6f\x66\x20\x70\
+\x61\x67\x65\x73\x20\x6c\x69\x6b\x65\x20\x73\x63\x69\x70\x79\x2e\
+\x73\x74\x61\x74\x73\x20\x6f\x72\x0a\x20\x2a\x20\x73\x63\x69\x70\
+\x79\x2e\x69\x6f\x0a\x20\x2a\x2f\x0a\x64\x69\x76\x2e\x74\x69\x74\
+\x6c\x65\x20\x68\x31\x20\x61\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\
+\x6c\x6f\x72\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\
+\x3b\x0a\x20\x20\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x64\x65\
+\x66\x61\x75\x6c\x74\x3b\x0a\x7d\x0a\x0a\x64\x69\x76\x2e\x74\x69\
+\x74\x6c\x65\x20\x68\x31\x20\x74\x74\x20\x7b\x0a\x20\x20\x20\x20\
+\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x39\x35\x25\x3b\x0a\
+\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\
+\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\
+\x74\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x46\
+\x46\x46\x46\x46\x46\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\
+\x2d\x20\x4d\x65\x74\x61\x64\x61\x74\x61\x20\x73\x74\x79\x6c\x65\
+\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x64\x69\x76\x2e\x6d\x65\x74\x61\
+\x64\x61\x74\x61\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
+\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\
+\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\
+\x31\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\
+\x2d\x72\x69\x67\x68\x74\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\
+\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x31\x70\x78\x3b\x0a\x20\
+\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\
+\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x34\x64\x38\x3b\x0a\x20\x20\
+\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\
+\x6c\x69\x64\x20\x23\x43\x39\x43\x39\x43\x39\x3b\x0a\x20\x20\x20\
+\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\
+\x36\x70\x78\x20\x36\x70\x78\x20\x36\x70\x78\x20\x36\x70\x78\x3b\
+\x0a\x20\x20\x20\x20\x62\x6f\x78\x2d\x73\x68\x61\x64\x6f\x77\x3a\
+\x20\x31\x70\x78\x20\x31\x70\x78\x20\x37\x70\x78\x20\x23\x43\x41\
+\x43\x41\x43\x41\x3b\x0a\x7d\x0a\x0a\x64\x69\x76\x2e\x6d\x65\x74\
+\x61\x64\x61\x74\x61\x20\x70\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\
+\x72\x67\x69\x6e\x3a\x20\x37\x70\x78\x20\x30\x70\x78\x20\x37\x70\
+\x78\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x73\x70\x61\x6e\x2e\
+\x64\x65\x66\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\
+\x61\x6d\x69\x6c\x79\x3a\x20\x6d\x6f\x6e\x6f\x73\x70\x61\x63\x65\
+\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\
+\x20\x39\x30\x25\x3b\x0a\x7d\x0a\x0a\x73\x70\x61\x6e\x2e\x61\x72\
+\x67\x73\x70\x65\x63\x2d\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x20\
+\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x62\x6c\x75\
+\x65\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\
+\x3a\x20\x31\x31\x30\x25\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\
+\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x30\x3b\x0a\x7d\x0a\
+\x0a\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x44\x6f\x63\x73\x74\x72\x69\
+\x6e\x67\x20\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x20\x2d\x2d\x2d\
+\x20\x2a\x2f\x0a\x64\x69\x76\x2e\x64\x6f\x63\x73\x74\x72\x69\x6e\
+\x67\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\
+\x6f\x70\x3a\x20\x2d\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x64\x69\x76\
+\x2e\x64\x6f\x63\x73\x74\x72\x69\x6e\x67\x20\x70\x20\x7b\x0a\x20\
+\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x20\
+\x32\x70\x78\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\
+\x2d\x2d\x2d\x20\x48\x65\x61\x64\x65\x72\x73\x20\x73\x74\x79\x6c\
+\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x68\x32\x2c\x20\x68\x33\x2c\
+\x20\x68\x34\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\
+\x61\x6d\x69\x6c\x79\x3a\x20\x27\x48\x65\x6c\x76\x65\x74\x69\x63\
+\x61\x27\x2c\x20\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x0a\
+\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x28\x34\
+\x39\x2c\x20\x31\x32\x36\x2c\x20\x31\x37\x32\x29\x3b\x0a\x20\x20\
+\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x32\x30\
+\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\
+\x6f\x74\x74\x6f\x6d\x3a\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\
+\x68\x32\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\
+\x7a\x65\x3a\x20\x31\x32\x30\x25\x3b\x0a\x20\x20\x20\x20\x66\x6f\
+\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x6e\x6f\x72\x6d\x61\
+\x6c\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\
+\x74\x74\x6f\x6d\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\
+\x72\x67\x62\x28\x32\x32\x30\x2c\x20\x32\x32\x30\x2c\x20\x32\x32\
+\x30\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
+\x20\x34\x70\x78\x20\x30\x70\x78\x20\x34\x70\x78\x20\x30\x70\x78\
+\x3b\x0a\x7d\x0a\x0a\x68\x33\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\
+\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x31\x30\x25\x3b\x0a\x7d\
+\x0a\x0a\x68\x34\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\
+\x73\x69\x7a\x65\x3a\x20\x31\x30\x30\x25\x3b\x0a\x20\x20\x20\x20\
+\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x34\x70\x78\
+\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\
+\x74\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x0a\x7d\x0a\x0a\x64\x6c\
+\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x20\x7b\x0a\x20\x20\x20\x20\
+\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x20\x31\x30\x70\
+\x78\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x64\x69\x76\x2e\x73\x65\
+\x63\x74\x69\x6f\x6e\x20\x70\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\
+\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x20\x32\x70\x78\x20\x30\
+\x70\x78\x3b\x0a\x7d\x0a\x0a\x23\x77\x61\x72\x6e\x69\x6e\x67\x20\
+\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\
+\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\
+\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x46\x46\
+\x45\x34\x45\x34\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
+\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x46\x36\x36\
+\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\
+\x70\x78\x20\x38\x70\x78\x20\x34\x70\x78\x20\x38\x70\x78\x3b\x0a\
+\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\
+\x63\x65\x6e\x74\x65\x72\x3b\x0a\x7d\x0a\x0a\x23\x64\x6f\x63\x2d\
+\x77\x61\x72\x6e\x69\x6e\x67\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\
+\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x36\x70\x78\x3b\x0a\
+\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x34\x35\x25\x3b\x0a\
+\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\
+\x20\x61\x75\x74\x6f\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
+\x6e\x2d\x72\x69\x67\x68\x74\x3a\x20\x61\x75\x74\x6f\x3b\x0a\x20\
+\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x28\x31\x38\
+\x35\x2c\x20\x37\x34\x2c\x20\x37\x32\x29\x3b\x0a\x20\x20\x20\x20\
+\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\
+\x3a\x20\x72\x67\x62\x28\x32\x34\x32\x2c\x20\x32\x32\x32\x2c\x20\
+\x32\x32\x32\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
+\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x72\x67\x62\x28\
+\x32\x33\x38\x2c\x20\x32\x31\x31\x2c\x20\x32\x31\x35\x29\x3b\x0a\
+\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\
+\x73\x3a\x20\x34\x70\x78\x20\x34\x70\x78\x20\x34\x70\x78\x20\x34\
+\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
+\x20\x31\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\
+\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x20\
+\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\
+\x62\x6f\x6c\x64\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\
+\x69\x7a\x65\x3a\x20\x31\x30\x35\x25\x3b\x0a\x7d\x0a\x0a\x0a\x2f\
+\x2a\x20\x2d\x2d\x2d\x20\x4c\x69\x6e\x6b\x73\x20\x2d\x2d\x2d\x20\
+\x2a\x2f\x0a\x61\x20\x7b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\
+\x64\x65\x63\x6f\x72\x61\x74\x69\x6f\x6e\x3a\x20\x6e\x6f\x6e\x65\
+\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\
+\x61\x28\x34\x30\x2c\x20\x31\x33\x30\x2c\x20\x31\x38\x30\x2c\x20\
+\x31\x29\x3b\x0a\x7d\x0a\x0a\x61\x3a\x68\x6f\x76\x65\x72\x20\x7b\
+\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\
+\x74\x69\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\
+\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x49\x6d\x61\x67\
+\x65\x73\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x69\x6d\x67\x20\x7b\x0a\
+\x20\x20\x20\x20\x62\x6f\x78\x2d\x73\x68\x61\x64\x6f\x77\x3a\x20\
+\x30\x70\x78\x20\x32\x70\x78\x20\x36\x70\x78\x20\x23\x63\x61\x63\
+\x61\x63\x61\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\
+\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x63\x39\x63\x39\
+\x63\x39\x3b\x0a\x7d\x0a\x0a\x69\x6d\x67\x2e\x61\x6c\x69\x67\x6e\
+\x2d\x63\x65\x6e\x74\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x64\x69\
+\x73\x70\x6c\x61\x79\x3a\x20\x62\x6c\x6f\x63\x6b\x3b\x0a\x20\x20\
+\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x61\
+\x75\x74\x6f\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\
+\x72\x69\x67\x68\x74\x3a\x20\x61\x75\x74\x6f\x3b\x0a\x7d\x0a\x0a\
+\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x4c\x69\x73\x74\x73\x20\x73\x74\
+\x79\x6c\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x6f\x6c\x2e\x61\x72\
+\x61\x62\x69\x63\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
+\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x2d\x31\x30\x70\x78\x3b\x0a\x7d\
+\x0a\x0a\x75\x6c\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
+\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x2d\x35\x70\x78\x3b\x0a\x7d\x0a\
+\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x4c\x69\x74\x65\x72\x61\x6c\x20\
+\x62\x6c\x6f\x63\x6b\x73\x20\x73\x74\x79\x6c\x65\x20\x2d\x2d\x2d\
+\x20\x2a\x2f\x0a\x70\x72\x65\x2e\x6c\x69\x74\x65\x72\x61\x6c\x2d\
+\x62\x6c\x6f\x63\x6b\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\
+\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x33\x35\x70\x78\x3b\x0a\
+\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x39\
+\x35\x25\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x44\
+\x6f\x63\x75\x74\x69\x6c\x73\x20\x74\x61\x62\x6c\x65\x20\x73\x74\
+\x79\x6c\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x74\x61\x62\x6c\x65\
+\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x20\x7b\x0a\x20\x20\x20\x20\
+\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3a\
+\x20\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3b\x0a\x20\x20\x20\x20\x62\
+\x6f\x72\x64\x65\x72\x2d\x73\x70\x61\x63\x69\x6e\x67\x3a\x20\x30\
+\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x23\x44\
+\x44\x44\x44\x44\x44\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
+\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x61\x75\x74\x6f\x3b\x0a\x20\x20\
+\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x72\x69\x67\x68\x74\x3a\x20\
+\x61\x75\x74\x6f\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\
+\x2d\x74\x6f\x70\x3a\x20\x31\x37\x70\x78\x3b\x0a\x20\x20\x20\x20\
+\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\
+\x37\x70\x78\x3b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\
+\x39\x30\x25\x3b\x0a\x7d\x0a\x0a\x74\x61\x62\x6c\x65\x2e\x64\x6f\
+\x63\x75\x74\x69\x6c\x73\x20\x74\x64\x20\x7b\x0a\x20\x20\x20\x20\
+\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\
+\x0a\x74\x61\x62\x6c\x65\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x20\
+\x74\x72\x2e\x72\x6f\x77\x2d\x6f\x64\x64\x20\x7b\x0a\x20\x20\x20\
+\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\
+\x72\x3a\x20\x72\x67\x62\x28\x32\x34\x39\x2c\x20\x32\x34\x39\x2c\
+\x20\x32\x34\x39\x29\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\
+\x2d\x20\x44\x6f\x63\x75\x74\x69\x6c\x73\x20\x74\x61\x62\x6c\x65\
+\x20\x68\x65\x61\x64\x65\x72\x73\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\
+\x74\x61\x62\x6c\x65\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x20\x74\
+\x68\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\
+\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x45\x45\x45\x45\x45\
+\x45\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\
+\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x44\x44\x44\
+\x44\x44\x44\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
+\x62\x6f\x74\x74\x6f\x6d\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\
+\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
+\x62\x6f\x74\x74\x6f\x6d\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\
+\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\
+\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x44\x44\x44\x44\x44\x44\
+\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\
+\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\
+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x77\x69\
+\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x66\x6f\
+\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\
+\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\
+\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\
+\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x20\x30\x70\x78\x20\x36\x70\
+\x78\x20\x38\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
+\x3a\x20\x72\x67\x62\x28\x36\x35\x2c\x20\x36\x35\x2c\x20\x36\x35\
+\x29\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\x46\x69\
+\x65\x6c\x64\x2d\x6c\x69\x73\x74\x20\x74\x61\x62\x6c\x65\x20\x73\
+\x74\x79\x6c\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x74\x61\x62\x6c\
+\x65\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x2e\x66\x69\x65\x6c\x64\
+\x2d\x6c\x69\x73\x74\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\
+\x2d\x73\x69\x7a\x65\x3a\x20\x38\x30\x25\x3b\x0a\x20\x20\x20\x20\
+\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3a\
+\x20\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3b\x0a\x20\x20\x20\x20\x62\
+\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x3a\x20\x74\x72\x61\x6e\
+\x73\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
+\x64\x65\x72\x2d\x72\x69\x67\x68\x74\x3a\x20\x74\x72\x61\x6e\x73\
+\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\
+\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x35\x70\x78\x3b\x0a\x20\x20\
+\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x34\
+\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\
+\x38\x33\x25\x3b\x0a\x7d\x0a\x0a\x0a\x2f\x2a\x20\x2d\x2d\x2d\x20\
+\x46\x69\x65\x6c\x64\x2d\x6c\x69\x73\x74\x20\x74\x61\x62\x6c\x65\
+\x20\x68\x65\x61\x64\x65\x72\x73\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\
+\x74\x61\x62\x6c\x65\x2e\x64\x6f\x63\x75\x74\x69\x6c\x73\x2e\x66\
+\x69\x65\x6c\x64\x2d\x6c\x69\x73\x74\x20\x74\x68\x20\x7b\x0a\x20\
+\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\
+\x6c\x6f\x72\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\
+\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\
+\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\
+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\
+\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\
+\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x62\x6c\x61\x63\x6b\x3b\
+\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\
+\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\
+\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x6c\x65\x66\x74\x3b\x0a\x20\x20\
+\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\x70\x78\x20\x30\
+\x70\x78\x20\x34\x70\x78\x20\x38\x70\x78\x3b\x0a\x7d\x0a\x0a\x0a\
+\x2f\x2a\x20\x2d\x2d\x2d\x20\x53\x70\x61\x63\x69\x6e\x67\x20\x61\
+\x72\x6f\x75\x6e\x64\x20\x65\x78\x61\x6d\x70\x6c\x65\x20\x63\x6f\
+\x64\x65\x20\x2d\x2d\x2d\x20\x2a\x2f\x0a\x64\x69\x76\x2e\x68\x69\
+\x67\x68\x6c\x69\x67\x68\x74\x20\x70\x72\x65\x20\x7b\x0a\x20\x20\
+\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x39\x70\x78\x20\x31\
+\x34\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
+\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x28\x32\
+\x34\x37\x2c\x20\x32\x34\x37\x2c\x20\x32\x34\x39\x29\x3b\x0a\x20\
+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\
+\x3a\x20\x34\x70\x78\x20\x34\x70\x78\x20\x34\x70\x78\x20\x34\x70\
+\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\
+\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x72\x67\x62\x28\x32\x32\x35\
+\x2c\x20\x32\x32\x35\x2c\x20\x32\x33\x32\x29\x3b\x0a\x7d\x0a\x0a\
+\x64\x69\x76\x2e\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x20\x7b\x0a\
+\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\
+\x20\x31\x30\x70\x78\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x64\x74\
+\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\
+\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x20\x20\x20\x20\x2f\x2a\
+\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x36\x70\x78\x3b\
+\x2a\x2f\x0a\x7d\x0a\x0a\x2e\x63\x6c\x61\x73\x73\x69\x66\x69\x65\
+\x72\x20\x7b\x0a\x20\x20\x20\x20\x2f\x2a\x66\x6f\x6e\x74\x2d\x73\
+\x69\x7a\x65\x3a\x20\x31\x30\x70\x74\x3b\x2a\x2f\x0a\x20\x20\x20\
+\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x6e\x6f\
+\x72\x6d\x61\x6c\x3b\x0a\x7d\x0a\x0a\x74\x74\x20\x7b\x0a\x20\x20\
+\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\
+\x6f\x72\x3a\x20\x23\x45\x43\x46\x30\x46\x33\x3b\x0a\x20\x20\x20\
+\x20\x2f\x2a\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x39\x35\
+\x25\x3b\x2a\x2f\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\
+\x3a\x20\x30\x70\x78\x20\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x0a\x0a\
+\x64\x69\x76\x2e\x61\x64\x6d\x6f\x6e\x69\x74\x69\x6f\x6e\x2e\x6e\
+\x6f\x74\x65\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\
+\x69\x7a\x65\x3a\x20\x30\x2e\x39\x35\x65\x6d\x3b\x0a\x20\x20\x20\
+\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x31\x2e\x33\x65\x6d\x3b\x0a\
+\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\
+\x73\x6f\x6c\x69\x64\x20\x23\x42\x43\x45\x38\x46\x31\x3b\x0a\x20\
+\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\
+\x6c\x6f\x72\x3a\x20\x23\x44\x39\x45\x44\x46\x37\x3b\x0a\x20\x20\
+\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x20\x35\
+\x70\x78\x20\x30\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\
+\x6c\x6f\x72\x3a\x20\x23\x33\x41\x38\x37\x41\x44\x3b\x0a\x7d\x0a\
+\x0a\x64\x69\x76\x2e\x61\x64\x6d\x6f\x6e\x69\x74\x69\x6f\x6e\x20\
+\x70\x2e\x61\x64\x6d\x6f\x6e\x69\x74\x69\x6f\x6e\x2d\x74\x69\x74\
+\x6c\x65\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\
+\x7a\x65\x3a\x20\x31\x65\x6d\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\
+\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x37\x70\x78\x3b\x0a\x20\x20\
+\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\
+\x6f\x6c\x64\x3b\x0a\x7d\x0a\
+"
+
+qt_resource_name = b"\
+\x00\x17\
+\x0b\xd4\x1a\x23\
+\x00\x64\
+\x00\x6f\x00\x63\x00\x75\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x56\x00\x69\x00\x65\x00\x77\x00\x65\x00\x72\x00\x53\x00\x74\x00\x79\
+\x00\x6c\x00\x65\x00\x2e\x00\x63\x00\x73\x00\x73\
+"
+
+qt_resource_struct_v1 = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+"
+
+qt_resource_struct_v2 = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x5f\x47\xee\xdc\xfb\
+"
+
+qt_version = QtCore.qVersion().split('.')
+if qt_version < ['5', '8', '0']:
+    rcc_version = 1
+    qt_resource_struct = qt_resource_struct_v1
+else:
+    rcc_version = 2
+    qt_resource_struct = qt_resource_struct_v2
+
+def qInitResources():
+    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UI/data/documentViewerStyle.css	Fri Nov 03 12:14:57 2017 +0100
@@ -0,0 +1,289 @@
+/*
+ * This style definition is based on the style sheet file of Spyder.
+ */
+ 
+body {
+    background-color: white;
+    color: rgb(51, 51, 51);
+    margin: 0px 10px 10px 10px;
+}
+
+
+/* --- Title style --- */
+div.title h1 {
+    font-size: 130%;
+    font-family: 'Trebuchet MS', sans-serif;
+    background-color: #85774A;
+    background-image: -webkit-gradient(
+        linear,
+        0 0,
+        0 100%,
+        from(#85774A),
+        color-stop(60%, #b9a567),
+        to(#e1c87d)
+    );
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);
+    font-weight: normal;
+    padding: 6px 0px 6px 20px;
+    margin: 0px -25px;
+    color: #FFFFFF;
+}
+
+/*
+ * The next two styles are needed to
+ * modify the anchors present on the
+ * title of pages like scipy.stats or
+ * scipy.io
+ */
+div.title h1 a {
+    color: transparent;
+    cursor: default;
+}
+
+div.title h1 tt {
+    font-size: 95%;
+    background-color: transparent;
+    color: #FFFFFF;
+}
+
+
+/* --- Metadata style --- */
+div.metadata {
+    margin-top: 10px;
+    margin-bottom: 15px;
+    margin-right: 1px;
+    padding: 1px;
+    background-color: #fff4d8;
+    border: 1px solid #C9C9C9;
+    border-radius: 6px 6px 6px 6px;
+    box-shadow: 1px 1px 7px #CACACA;
+}
+
+div.metadata p {
+    margin: 7px 0px 7px 10px;
+}
+
+span.def {
+    font-family: monospace;
+    font-size: 90%;
+}
+
+span.argspec-highlight {
+    color: blue;
+    font-size: 110%;
+    font-weight: 900;
+}
+
+
+/* --- Docstring div style --- */
+div.docstring {
+    margin-top: -1px;
+}
+
+div.docstring p {
+    padding: 0px 2px 0px;
+}
+
+
+/* --- Headers style --- */
+h2, h3, h4 {
+    font-family: 'Helvetica', sans-serif;
+    color: rgb(49, 126, 172);
+    margin-top: 20px;
+    margin-bottom: 10px;
+}
+
+h2 {
+    font-size: 120%;
+    font-weight: normal;
+    border-bottom: 1px solid rgb(220, 220, 220);
+    padding: 4px 0px 4px 0px;
+}
+
+h3 {
+    font-size: 110%;
+}
+
+h4 {
+    font-size: 100%;
+    margin-top: 14px;
+    font-weight: normal;
+}
+
+dl.docutils {
+    padding: 0px 10px 0px;
+}
+
+div.section p {
+    padding: 0px 2px 0px;
+}
+
+#warning {
+    margin-top: 5px;
+    background-color: #FFE4E4;
+    border: 1px solid #F66;
+    padding: 4px 8px 4px 8px;
+    text-align: center;
+}
+
+#doc-warning {
+    margin-top: 16px;
+    width: 45%;
+    margin-left: auto;
+    margin-right: auto;
+    color: rgb(185, 74, 72);
+    background-color: rgb(242, 222, 222);
+    border: 1px solid rgb(238, 211, 215);
+    border-radius: 4px 4px 4px 4px;
+    padding: 15px;
+    text-align: center;
+    font-weight: bold;
+    font-size: 105%;
+}
+
+
+/* --- Links --- */
+a {
+    text-decoration: none;
+    color: rgba(40, 130, 180, 1);
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+
+/* --- Images --- */
+img {
+    box-shadow: 0px 2px 6px #cacaca;
+    border: 1px solid #c9c9c9;
+}
+
+img.align-center {
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+}
+
+
+/* --- Lists style --- */
+ol.arabic {
+    margin-left: -10px;
+}
+
+ul {
+    margin-left: -5px;
+}
+
+/* --- Literal blocks style --- */
+pre.literal-block {
+    padding-left: 35px;
+    font-size: 95%;
+}
+
+
+/* --- Docutils table style --- */
+table.docutils {
+    border-collapse: collapse;
+    border-spacing: 0;
+    border: #DDDDDD;
+    margin-left: auto;
+    margin-right: auto;
+    margin-top: 17px;
+    margin-bottom: 17px;
+    width: 90%;
+}
+
+table.docutils td {
+    padding: 5px;
+}
+
+table.docutils tr.row-odd {
+    background-color: rgb(249, 249, 249);
+}
+
+
+/* --- Docutils table headers --- */
+table.docutils th {
+    background-color: #EEEEEE;
+    border-bottom-color: #DDDDDD;
+    border-bottom-style: solid;
+    border-bottom-width: 1px;
+    border-top-color: #DDDDDD;
+    border-top-style: solid;
+    border-top-width: 1px;
+    font-weight: bold;
+    text-align: center;
+    padding: 6px 0px 6px 8px;
+    color: rgb(65, 65, 65);
+}
+
+
+/* --- Field-list table style --- */
+table.docutils.field-list {
+    font-size: 80%;
+    border-collapse: collapse;
+    border-left: transparent;
+    border-right: transparent;
+    margin-top: 15px;
+    margin-left: 40px;
+    width: 83%;
+}
+
+
+/* --- Field-list table headers --- */
+table.docutils.field-list th {
+    background-color: transparent;
+    border-top: transparent;
+    border-bottom: transparent;
+    color: black;
+    font-weight: bold;
+    text-align: left;
+    padding: 4px 0px 4px 8px;
+}
+
+
+/* --- Spacing around example code --- */
+div.highlight pre {
+    padding: 9px 14px;
+    background-color: rgb(247, 247, 249);
+    border-radius: 4px 4px 4px 4px;
+    border: 1px solid rgb(225, 225, 232);
+}
+
+div.highlight {
+    padding: 0px 10px 0px;
+}
+
+dt {
+    font-weight: bold;
+    /*font-size: 16px;*/
+}
+
+.classifier {
+    /*font-size: 10pt;*/
+    font-weight: normal;
+}
+
+tt {
+    background-color: #ECF0F3;
+    /*font-size: 95%;*/
+    padding: 0px 1px;
+}
+
+
+
+div.admonition.note {
+    font-size: 0.95em;
+    margin: 1.3em;
+    border: 1px solid #BCE8F1;
+    background-color: #D9EDF7;
+    padding: 0px 5px 0 5px;
+    color: #3A87AD;
+}
+
+div.admonition p.admonition-title {
+    font-size: 1em;
+    margin-top: 7px;
+    font-weight: bold;
+}
--- a/i18n/eric6_it.ts	Fri Nov 03 12:10:16 2017 +0100
+++ b/i18n/eric6_it.ts	Fri Nov 03 12:14:57 2017 +0100
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="it_IT">
+<!DOCTYPE TS><TS version="2.0" language="it_IT" sourcelanguage="">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -449,11 +448,6 @@
 <context>
     <name>AddDirectoryDialog</name>
     <message>
-        <location filename="../Project/AddDirectoryDialog.py" line="116"/>
-        <source>Select directory</source>
-        <translation type="obsolete">Seleziona directory</translation>
-    </message>
-    <message>
         <location filename="../Project/AddDirectoryDialog.ui" line="14"/>
         <source>Add Directory</source>
         <translation>Aggiungi Cartella</translation>
@@ -471,13 +465,6 @@
 &lt;p&gt;Questo dialogo è usato per aggiungere una cartella al progetto corrente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project/AddDirectoryDialog.ui" line="108"/>
-        <source>&lt;b&gt;Target Directory&lt;/b&gt;
-&lt;p&gt;Select the target directory via a directory selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Cartella di destinazione&lt;/b&gt;
-&lt;p&gt;Selezionare una cartella di destinazione con il dialogo di selezione.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddDirectoryDialog.ui" line="74"/>
         <source>&amp;Target Directory:</source>
         <translation>CarT&amp;ella di Destinazione:</translation>
@@ -488,16 +475,6 @@
         <translation>Inserisci  il nome della cartella da aggiungere</translation>
     </message>
     <message>
-        <location filename="../Project/AddDirectoryDialog.ui" line="48"/>
-        <source>&lt;b&gt;Source Directory&lt;/b&gt;
-&lt;p&gt;Enter the name of the directory to add to the current project.
- You may select it with a dialog by pressing the button to
- the right.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Cartella di partenza&lt;/b&gt;
-&lt;p&gt;Inserire il nome della cartella da aggiungere.
-E&apos; possibile selezionarla con il dialogo premendo il pulsante sulla destra.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddDirectoryDialog.ui" line="105"/>
         <source>Select, whether a recursive add should be performed</source>
         <translation>Seleziona, per aggiungere ricorsivamente</translation>
@@ -522,13 +499,6 @@
 con un dialogo premendo il pulsante a destra.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project/AddDirectoryDialog.ui" line="100"/>
-        <source>&lt;b&gt;Source Directory&lt;/b&gt;
-&lt;p&gt;Select the source directory via a directory selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Cartella di partenza&lt;/b&gt;
-&lt;p&gt;Selezionare la cartella di partenza con la finestra di scelta cartella.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddDirectoryDialog.ui" line="43"/>
         <source>&amp;Source Directory:</source>
         <translation>Cartella &amp;Sorgente:</translation>
@@ -574,11 +544,6 @@
 <context>
     <name>AddFileDialog</name>
     <message>
-        <location filename="../Project/AddFileDialog.py" line="73"/>
-        <source>Select target directory</source>
-        <translation type="obsolete">Selezione una directory di destinazione</translation>
-    </message>
-    <message>
         <location filename="../Project/AddFileDialog.py" line="136"/>
         <source>All Files (*)</source>
         <translation>Tutti i File (*)</translation>
@@ -621,13 +586,6 @@
 &lt;p&gt;Questo dialogo è usato per aggiungere file al progetto corrente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project/AddFileDialog.ui" line="74"/>
-        <source>&lt;b&gt;Source Files&lt;/b&gt;
-&lt;p&gt;Select the source files via a files selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;File Sorgenti&lt;/b&gt;
-&lt;p&gt;Seleziona i file sorgenti con il dialogo di selezione.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddFileDialog.ui" line="61"/>
         <source>&amp;Target Directory:</source>
         <translation>Direc&amp;tory destinazione:</translation>
@@ -647,33 +605,11 @@
 con il dialogo premendo il pulsante sulla destra&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project/AddFileDialog.ui" line="82"/>
-        <source>&lt;b&gt;Target Directory&lt;/b&gt;
-&lt;p&gt;Select the target directory via a directory selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Directory di destinazione&lt;/b&gt;
-&lt;p&gt;Seleziona una directory di destinazione con il dialogo di selezione.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddFileDialog.ui" line="29"/>
         <source>&amp;Source Files:</source>
         <translation>File &amp;Sorgente:</translation>
     </message>
     <message>
-        <location filename="../Project/AddFileDialog.ui" line="61"/>
-        <source>Enter the name of files to add separated by the path separator</source>
-        <translation type="obsolete">Inserisci il nome dei file da aggiungere divisi dal separatore</translation>
-    </message>
-    <message>
-        <location filename="../Project/AddFileDialog.ui" line="64"/>
-        <source>&lt;b&gt;Source Files&lt;/b&gt;
-&lt;p&gt;Enter the name of files to add to the current project separated
-by the path separator. You may select them with a dialog by pressing 
-the button to the right.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;File Sorgente&lt;/b&gt;
-&lt;p&gt;Inserisci il nome dei file da aggiungere al progetto corrente divisa dal separatore. Puoi selezionarli 
-con il dialogo premendo il pulsante sulla destra.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Project/AddFileDialog.ui" line="94"/>
         <source>Select, if the files should be added as sourcecode (overriding automatic detection)</source>
         <translation>Seleziona, se i file devono essere aggiunti come codice sorgente
@@ -1142,11 +1078,6 @@
         <translation>Inserisci il nome del file progetto</translation>
     </message>
     <message>
-        <location filename="../MultiProject/AddProjectDialog.ui" line="57"/>
-        <source>Select the project file via a file selection dialog</source>
-        <translation type="obsolete">Seleziona il file progetto con il dialogo</translation>
-    </message>
-    <message>
         <location filename="../MultiProject/AddProjectDialog.ui" line="66"/>
         <source>&amp;Description:</source>
         <translation>&amp;Descrizione:</translation>
@@ -1509,32 +1440,32 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="183"/>
+        <location filename="../Utilities/BackgroundService.py" line="185"/>
         <source>Restart background client?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="209"/>
+        <location filename="../Utilities/BackgroundService.py" line="211"/>
         <source>An error in Erics background client stopped the service.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="420"/>
+        <location filename="../Utilities/BackgroundService.py" line="422"/>
         <source>Erics background client disconnected because of an unknown reason.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="426"/>
+        <location filename="../Utilities/BackgroundService.py" line="428"/>
         <source>Background client disconnected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="183"/>
+        <location filename="../Utilities/BackgroundService.py" line="185"/>
         <source>&lt;p&gt;The background client for &lt;b&gt;{0}&lt;/b&gt; has stopped due to an exception. It&apos;s used by various plug-ins like the different checkers.&lt;/p&gt;&lt;p&gt;Select&lt;ul&gt;&lt;li&gt;&lt;b&gt;&apos;Yes&apos;&lt;/b&gt; to restart the client, but abort the last job&lt;/li&gt;&lt;li&gt;&lt;b&gt;&apos;Retry&apos;&lt;/b&gt; to restart the client and the last job&lt;/li&gt;&lt;li&gt;&lt;b&gt;&apos;No&apos;&lt;/b&gt; to leave the client off.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="426"/>
+        <location filename="../Utilities/BackgroundService.py" line="428"/>
         <source>The background client for &lt;b&gt;{0}&lt;/b&gt; disconnected because of an unknown reason.&lt;br&gt;Should it be restarted?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1690,11 +1621,6 @@
         <translation>Alt+U</translation>
     </message>
     <message>
-        <location filename="../ViewManager/BookmarkedFilesDialog.ui" line="169"/>
-        <source>Select the file via a file selection dialog</source>
-        <translation type="obsolete">Selezione il file con il dialogo</translation>
-    </message>
-    <message>
         <location filename="../ViewManager/BookmarkedFilesDialog.ui" line="115"/>
         <source>Move down</source>
         <translation>Sposta giù</translation>
@@ -1766,13 +1692,6 @@
         <translation>Inserisci il nome del file</translation>
     </message>
     <message>
-        <location filename="../ViewManager/BookmarkedFilesDialog.ui" line="172"/>
-        <source>&lt;b&gt;File&lt;/b&gt;
-&lt;p&gt;Select the file to be bookmarked via a file selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;File&lt;/b&gt;
-&lt;p&gt;Seleziona il file da segnare con il dialogo di selezione.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../ViewManager/BookmarkedFilesDialog.ui" line="170"/>
         <source>&lt;b&gt;File&lt;/b&gt;
 &lt;p&gt;Enter the filename of the bookmarked file.&lt;/p&gt;</source>
@@ -1881,16 +1800,6 @@
         <translation>Cancella</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Bookmarks/BookmarksImportDialog.py" line="94"/>
-        <source>Choose Directory ...</source>
-        <translation type="obsolete">Scegli cartella...</translation>
-    </message>
-    <message>
-        <location filename="../Helpviewer/Bookmarks/BookmarksImportDialog.py" line="104"/>
-        <source>Choose File ...</source>
-        <translation type="obsolete">Scegli file...</translation>
-    </message>
-    <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksImportDialog.py" line="103"/>
         <source>&lt;b&gt;Importing from {0}&lt;/b&gt;</source>
         <translation>&lt;b&gt;Importa da {0}&lt;/b&gt;</translation>
@@ -1906,11 +1815,6 @@
         <translation>Errore nell&apos;importare i segnalibri</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Bookmarks/BookmarksImportDialog.ui" line="145"/>
-        <source>Shows the name of the bookmarks file or directory</source>
-        <translation type="obsolete">Mostra il nome del file o della cartella dei segnalibri</translation>
-    </message>
-    <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksImportDialog.ui" line="180"/>
         <source>Next &gt;</source>
         <translation>Successivo&gt;</translation>
@@ -2038,8 +1942,8 @@
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksMenu.py" line="145"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
-        <translation>Apri in una nuova linguetta &amp;Tab	Ctrl+LMB</translation>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Apri in una nuova linguetta &amp;Tab<byte value="x9"/>Ctrl+LMB</translation>
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksMenu.py" line="151"/>
@@ -2058,7 +1962,7 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksMenu.py" line="166"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2142,8 +2046,8 @@
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksToolBar.py" line="93"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
-        <translation>Apri in una nuova linguetta &amp;Tab	Ctrl+LMB</translation>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Apri in una nuova linguetta &amp;Tab<byte value="x9"/>Ctrl+LMB</translation>
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksToolBar.py" line="104"/>
@@ -2157,7 +2061,7 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksToolBar.py" line="90"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -3070,6 +2974,86 @@
     </message>
 </context>
 <context>
+    <name>CodeDocumentationViewer</name>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="232"/>
+        <source>Code Info Provider:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="244"/>
+        <source>Select the code info provider</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="246"/>
+        <source>&lt;disabled&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="258"/>
+        <source>Main Menu</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="266"/>
+        <source>Rich Text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="270"/>
+        <source>Plain Text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="442"/>
+        <source>No documentation available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="471"/>
+        <source>Definition: {0}{1}
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="478"/>
+        <source>Info: {0}
+
+----
+
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="499"/>
+        <source>No source code documentation provider has been registered. This function has been disabled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewer.py" line="504"/>
+        <source>This function has been disabled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewerTemplate.py" line="121"/>
+        <source>No further documentation available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewerTemplate.py" line="59"/>
+        <source>&lt;p&gt;&lt;b&gt;Definition:&lt;/b&gt; &lt;span class=&quot;def&quot;&gt;@NAME@@ARGSPEC@&lt;/span&gt;&lt;/p&gt;</source>
+        <comment>Just translate &apos;Definition:&apos; and leave the rest intact.</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/CodeDocumentationViewerTemplate.py" line="64"/>
+        <source>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; @NOTE@&lt;/p&gt;</source>
+        <comment>Just translate &apos;Note:&apos; and leave the rest intact.</comment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>CodeMetricsDialog</name>
     <message>
         <location filename="../DataViews/CodeMetricsDialog.py" line="204"/>
@@ -3278,51 +3262,26 @@
         <translation>Premi per iniziare l&apos;esecuzione del controllo dello stile di codifica</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="63"/>
-        <source>Start</source>
-        <translation type="obsolete">Inizio</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="668"/>
         <source>Press to fix the selected issues</source>
         <translation>Premi per correggere le problemi selezionati</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="73"/>
-        <source>Fix Selected</source>
-        <translation type="obsolete">Correggi selezionato</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="691"/>
         <source>Press to load the default values</source>
         <translation>Premi per caricare i valori di default</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="96"/>
-        <source>Load Defaults</source>
-        <translation type="obsolete">Carica predefiniti</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="701"/>
         <source>Press to store the current values as defaults</source>
         <translation>Premi per salvare i valori corrente come predefiniti</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="106"/>
-        <source>Store Defaults</source>
-        <translation type="obsolete">Salva predefiniti</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="711"/>
         <source>Press to reset the default values</source>
         <translation>Premi per resettare i valori predefiniti</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="116"/>
-        <source>Reset Defaults</source>
-        <translation type="obsolete">Resetta predefiniti</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="76"/>
         <source>Exclude Messages:</source>
         <translation>Escludi Messaggi:</translation>
@@ -4353,11 +4312,6 @@
         <translation>Confronta files</translation>
     </message>
     <message>
-        <location filename="../UI/CompareDialog.py" line="448"/>
-        <source>Select file to compare</source>
-        <translation type="obsolete">Seleziona file da confrontare</translation>
-    </message>
-    <message>
         <location filename="../UI/CompareDialog.ui" line="14"/>
         <source>File Comparison</source>
         <translation>Confronto File</translation>
@@ -4373,11 +4327,6 @@
         <translation>Inserisci il nome del primo file</translation>
     </message>
     <message>
-        <location filename="../UI/CompareDialog.ui" line="82"/>
-        <source>Press to select the file via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezionare il file con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../UI/CompareDialog.ui" line="55"/>
         <source>File &amp;2:</source>
         <translation>File &amp;2:</translation>
@@ -4519,7 +4468,7 @@
         <translation>Gestore plugin</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="443"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="446"/>
         <source>Printer</source>
         <translation>Stampante</translation>
     </message>
@@ -4559,11 +4508,6 @@
         <translation>Debugger</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="206"/>
-        <source>Ruby</source>
-        <translation type="obsolete">Ruby</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="221"/>
         <source>Editor</source>
         <translation>Editor</translation>
@@ -4584,92 +4528,92 @@
         <translation>Calltips</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="241"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="244"/>
         <source>General</source>
         <translation>Generale</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="261"/>
-        <source>Typing</source>
-        <translation>Digitazione</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="264"/>
+        <source>Typing</source>
+        <translation>Digitazione</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationDialog.py" line="267"/>
         <source>Exporters</source>
         <translation>Esportatori</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="268"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="271"/>
         <source>Highlighters</source>
         <translation>Evidenziatori</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="272"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="275"/>
         <source>Filetype Associations</source>
         <translation>Associazione tipi file</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="276"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="279"/>
         <source>Styles</source>
         <translation>Stili</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="292"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="295"/>
         <source>Help</source>
         <translation>Aiuto</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="450"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="453"/>
         <source>Help Documentation</source>
         <translation>Aiuto Documentazione</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="299"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="302"/>
         <source>Help Viewers</source>
         <translation>Aiuto visualizzatori</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationDialog.py" line="313"/>
+        <source>Project</source>
+        <translation>Progetto</translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="310"/>
-        <source>Project</source>
-        <translation>Progetto</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="307"/>
         <source>Project Viewer</source>
         <translation>Visualizzatore progetto</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="313"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="316"/>
         <source>Multiproject</source>
         <translation>Multiprogetto</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="437"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="440"/>
         <source>Interface</source>
         <translation>Interfaccia</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="324"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="327"/>
         <source>Viewmanager</source>
         <translation>Gestrore viste</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="717"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="720"/>
         <source>Configuration Page Error</source>
         <translation>Configurazione pagine errore</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="244"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="247"/>
         <source>Filehandling</source>
         <translation>Gestione file</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="248"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="251"/>
         <source>Searching</source>
         <translation>Ricerca</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="455"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="458"/>
         <source>Appearance</source>
         <translation>Aspetto</translation>
     </message>
@@ -4679,34 +4623,34 @@
         <translation>QScintilla</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="255"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="258"/>
         <source>Style</source>
         <translation>Stile</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="283"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="286"/>
         <source>Properties</source>
         <translation>Proprietà</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="639"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="642"/>
         <source>Preferences</source>
         <translation>Preferenze</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="644"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="647"/>
         <source>Please select an entry of the list 
 to display the configuration page.</source>
         <translation>Selezionare un elemento della lista
 da mostrare nella pagina di configurazione.</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="440"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="443"/>
         <source>Network</source>
         <translation>Rete</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="471"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="474"/>
         <source>Spell checking</source>
         <translation>Correzione automatica</translation>
     </message>
@@ -4716,12 +4660,12 @@
         <translation>Python3</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="717"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="720"/>
         <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;La pagina di configurazione &lt;b&gt;{0}&lt;/b&gt; non può essere caricata.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="280"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="283"/>
         <source>Keywords</source>
         <translation>Parole chiave</translation>
     </message>
@@ -4731,26 +4675,21 @@
         <translation>Cooperazione</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="487"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="490"/>
         <source>Tray Starter</source>
         <translation>Tray Starter</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="466"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="469"/>
         <source>VirusTotal Interface</source>
         <translation>Interfaccia VirusTotal</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="446"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="449"/>
         <source>Security</source>
         <translation>Sicurezza</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="428"/>
-        <source>Enter filter text...</source>
-        <translation type="obsolete">Insirisci il testo del filtro...</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="171"/>
         <source>Notifications</source>
         <translation>Notificazioni</translation>
@@ -4761,14 +4700,14 @@
         <translation>IRC</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="258"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="261"/>
         <source>Code Checkers</source>
         <translation>Correttori di codice</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="458"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="461"/>
         <source>eric6 Web Browser</source>
-        <translation type="unfinished">Web Browser di eric5 {6 ?}</translation>
+        <translation type="unfinished">Web Browser di eric6</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationDialog.py" line="162"/>
@@ -4781,27 +4720,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="577"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="580"/>
         <source>Enter search text...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="287"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="290"/>
         <source>Mouse Click Handlers</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="462"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="465"/>
         <source>Flash Cookie Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="500"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="503"/>
         <source>Hex Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationDialog.py" line="357"/>
+        <location filename="../Preferences/ConfigurationDialog.py" line="360"/>
         <source>Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4810,6 +4749,11 @@
         <source>Diff</source>
         <translation type="unfinished">Diff</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ConfigurationDialog.py" line="241"/>
+        <source>Documentation Viewer</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Connection</name>
@@ -5408,11 +5352,6 @@
         <translation>&lt;b&gt;Nota:&lt;/b&gt; Lascia questa entry vuota per usare il valore di defaut (omniidl or omniidl.exe).</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/CorbaPage.py" line="55"/>
-        <source>Select IDL compiler</source>
-        <translation type="obsolete">Seleziona il compilatore IDL</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/CorbaPage.ui" line="17"/>
         <source>&lt;b&gt;Configure CORBA support&lt;/b&gt;</source>
         <translation>&lt;b&gt;Configura il supporto per CORBA&lt;/b&gt;</translation>
@@ -5544,30 +5483,30 @@
         <translation>modificato</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugServer.py" line="744"/>
+        <location filename="../Debugger/DebugServer.py" line="746"/>
         <source>Connection from illegal host</source>
         <translation>Connessione da un non vietato</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugServer.py" line="1364"/>
+        <location filename="../Debugger/DebugServer.py" line="1372"/>
         <source>
 Not connected
 </source>
         <translation>Non connesso</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugServer.py" line="744"/>
+        <location filename="../Debugger/DebugServer.py" line="746"/>
         <source>&lt;p&gt;A connection was attempted by the illegal host &lt;b&gt;{0}&lt;/b&gt;. Accept this connection?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Una connessione è stata tentata da un host vietato &lt;b&gt;{0}&lt;/b&gt;.  Accettare questa connessione ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugServer.py" line="1544"/>
+        <location filename="../Debugger/DebugServer.py" line="1552"/>
         <source>Passive debug connection received
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugServer.py" line="1558"/>
+        <location filename="../Debugger/DebugServer.py" line="1566"/>
         <source>Passive debug connection closed
 </source>
         <translation type="unfinished"></translation>
@@ -5586,730 +5525,648 @@
 <context>
     <name>DebugUI</name>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1808"/>
+        <location filename="../Debugger/DebugUI.py" line="1845"/>
         <source>Run Script</source>
         <translation>Esegui Script</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="173"/>
+        <location filename="../Debugger/DebugUI.py" line="175"/>
         <source>&amp;Run Script...</source>
         <translation>Esegui Sc&amp;ript...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="178"/>
+        <location filename="../Debugger/DebugUI.py" line="180"/>
         <source>Run the current Script</source>
         <translation>Esegui lo script corrente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="179"/>
+        <location filename="../Debugger/DebugUI.py" line="181"/>
         <source>&lt;b&gt;Run Script&lt;/b&gt;&lt;p&gt;Set the command line arguments and run the script outside the debugger. If the file has unsaved changes it may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Esegui Script&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando ed esegue lo script al di fuori del debugger. Se il file non è stato salvato può essere salvato prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1822"/>
+        <location filename="../Debugger/DebugUI.py" line="1860"/>
         <source>Run Project</source>
         <translation>Esegui Progetto</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="188"/>
+        <location filename="../Debugger/DebugUI.py" line="190"/>
         <source>Run &amp;Project...</source>
         <translation>Esegui &amp;Progetto...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="193"/>
+        <location filename="../Debugger/DebugUI.py" line="195"/>
         <source>Run the current Project</source>
         <translation>Esegui il progetto corrente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="194"/>
+        <location filename="../Debugger/DebugUI.py" line="196"/>
         <source>&lt;b&gt;Run Project&lt;/b&gt;&lt;p&gt;Set the command line arguments and run the current project outside the debugger. If files of the current project have unsaved changes they may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Esegui Progetto&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando ed esegue il progetto corrente fuori dal debugger. Se file del progetto corrente non sono stati salvati, è possibile salvarli prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="204"/>
+        <location filename="../Debugger/DebugUI.py" line="206"/>
         <source>Coverage run of Script</source>
         <translation>Esecuzione sotto analisi dello Script</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="204"/>
+        <location filename="../Debugger/DebugUI.py" line="206"/>
         <source>Coverage run of Script...</source>
         <translation>Esecuzione sotto analisi del progetto...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="209"/>
-        <source>Perform a coverage run of the current Script</source>
-        <translation>Esegui un&apos;esecuzione coperta dello script corrente</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="211"/>
+        <source>Perform a coverage run of the current Script</source>
+        <translation>Esegui un&apos;esecuzione coperta dello script corrente</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="213"/>
         <source>&lt;b&gt;Coverage run of Script&lt;/b&gt;&lt;p&gt;Set the command line arguments and run the script under the control of a coverage analysis tool. If the file has unsaved changes it may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Copertura eseguzione dello scitp&lt;/b&gt;&lt;p&gt;Imposta gli argomenti alla linea di comando ed esegui lo script sotto il controllo di uno strumento di analisi. Se il file ha delle modifiche non salvate è possibile salvarlo prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="220"/>
+        <location filename="../Debugger/DebugUI.py" line="222"/>
         <source>Coverage run of Project</source>
         <translation>Esecuzione sotto analisi del progetto</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="220"/>
+        <location filename="../Debugger/DebugUI.py" line="222"/>
         <source>Coverage run of Project...</source>
         <translation>Esecuzione sotto analisi del progetto...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="225"/>
-        <source>Perform a coverage run of the current Project</source>
-        <translation>Esegui un&apos;esecuzione coperta del progetto corrente</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="227"/>
+        <source>Perform a coverage run of the current Project</source>
+        <translation>Esegui un&apos;esecuzione coperta del progetto corrente</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="229"/>
         <source>&lt;b&gt;Coverage run of Project&lt;/b&gt;&lt;p&gt;Set the command line arguments and run the current project under the control of a coverage analysis tool. If files of the current project have unsaved changes they may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Esecuzione sotto analisi del progetto&lt;/b&gt;&lt;p&gt;Imposta gli argomenti alla linea di comando ed esegui il progetto sotto il controllo di uno strumento di analisi. Se ci sono file del progetto con modifiche non salvate è possibile salvarli prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="237"/>
+        <location filename="../Debugger/DebugUI.py" line="239"/>
         <source>Profile Script</source>
         <translation>Profila Script</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="237"/>
+        <location filename="../Debugger/DebugUI.py" line="239"/>
         <source>Profile Script...</source>
         <translation>Profila Script...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="241"/>
+        <location filename="../Debugger/DebugUI.py" line="243"/>
         <source>Profile the current Script</source>
         <translation>Profile lo script corrente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="242"/>
+        <location filename="../Debugger/DebugUI.py" line="244"/>
         <source>&lt;b&gt;Profile Script&lt;/b&gt;&lt;p&gt;Set the command line arguments and profile the script. If the file has unsaved changes it may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Profila Script&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando profila lo script. Se il file non è stato salvato può essere salvato prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="250"/>
+        <location filename="../Debugger/DebugUI.py" line="252"/>
         <source>Profile Project</source>
         <translation>Profila Progetto</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="250"/>
+        <location filename="../Debugger/DebugUI.py" line="252"/>
         <source>Profile Project...</source>
         <translation>Profila Progetto...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="255"/>
-        <source>Profile the current Project</source>
-        <translation>Profila il progetto corrente</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="257"/>
+        <source>Profile the current Project</source>
+        <translation>Profila il progetto corrente</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="259"/>
         <source>&lt;b&gt;Profile Project&lt;/b&gt;&lt;p&gt;Set the command line arguments and profile the current project. If files of the current project have unsaved changes they may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Profila Progetto&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando e profila il progetto. Se file del progetto corrente non sono stati salvati, è possibile salvarli prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1939"/>
+        <location filename="../Debugger/DebugUI.py" line="1981"/>
         <source>Debug Script</source>
         <translation>Debug dello script</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="266"/>
+        <location filename="../Debugger/DebugUI.py" line="268"/>
         <source>&amp;Debug Script...</source>
         <translation>&amp;Debug dello script...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="271"/>
+        <location filename="../Debugger/DebugUI.py" line="273"/>
         <source>Debug the current Script</source>
         <translation>Debug dello script corrente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="272"/>
+        <location filename="../Debugger/DebugUI.py" line="274"/>
         <source>&lt;b&gt;Debug Script&lt;/b&gt;&lt;p&gt;Set the command line arguments and set the current line to be the first executable Python statement of the current editor window. If the file has unsaved changes it may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Debug dello Script&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando e imposta la linea corrente per essere la prima istruzione eseguibile di Python della finestra dell&apos;editor. Se il file ha modifiche non salvate è possibile salvarle prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1953"/>
+        <location filename="../Debugger/DebugUI.py" line="1997"/>
         <source>Debug Project</source>
         <translation>Debug del Progetto</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="282"/>
+        <location filename="../Debugger/DebugUI.py" line="284"/>
         <source>Debug &amp;Project...</source>
         <translation>Debug del &amp;Progetto...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="287"/>
-        <source>Debug the current Project</source>
-        <translation>Debug del progetto corrente</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="289"/>
+        <source>Debug the current Project</source>
+        <translation>Debug del progetto corrente</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="291"/>
         <source>&lt;b&gt;Debug Project&lt;/b&gt;&lt;p&gt;Set the command line arguments and set the current line to be the first executable Python statement of the main script of the current project. If files of the current project have unsaved changes they may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Debug del Progetto&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando e imposta la linea corrente per essere la prima istruzione eseguibile di Python della finestra dell&apos;editor. Se il progetto ha modifiche non salvate è possibile salvarle prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="303"/>
+        <location filename="../Debugger/DebugUI.py" line="305"/>
         <source>Restart the last debugged script</source>
         <translation>Riavvia l&apos;ultimo script debuggato</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="330"/>
+        <location filename="../Debugger/DebugUI.py" line="332"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="330"/>
+        <location filename="../Debugger/DebugUI.py" line="332"/>
         <source>&amp;Continue</source>
         <translation>&amp;Continua</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="335"/>
-        <source>Continue running the program from the current line</source>
-        <translation>Continua l&apos;esecuzione del programma dalla linea corrente</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="337"/>
+        <source>Continue running the program from the current line</source>
+        <translation>Continua l&apos;esecuzione del programma dalla linea corrente</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="339"/>
         <source>&lt;b&gt;Continue&lt;/b&gt;&lt;p&gt;Continue running the program from the current line. The program will stop when it terminates or when a breakpoint is reached.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Continua&lt;/b&gt;&lt;p&gt;Continua l&apos;esecuzione del programma dalla linea corrente. Il programma si fermerà quando finirà o quando incontrerà un breakpoint.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="382"/>
+        <location filename="../Debugger/DebugUI.py" line="384"/>
         <source>Single Step</source>
         <translation>Step Singolo</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="382"/>
+        <location filename="../Debugger/DebugUI.py" line="384"/>
         <source>Sin&amp;gle Step</source>
         <translation>Step Sin&amp;golo</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="387"/>
+        <location filename="../Debugger/DebugUI.py" line="389"/>
         <source>Execute a single Python statement</source>
         <translation>Esegui una singola istruzione Python</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="388"/>
+        <location filename="../Debugger/DebugUI.py" line="390"/>
         <source>&lt;b&gt;Single Step&lt;/b&gt;&lt;p&gt;Execute a single Python statement. If the statement is an &lt;tt&gt;import&lt;/tt&gt; statement, a class constructor, or a method or function call then control is returned to the debugger at the next statement.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Passo singolo&lt;/b&gt;&lt;p&gt;Esegue una singola istruzione Python. Se l&apos;istruzione è una &lt;tt&gt;import&lt;/tt&gt;, un costruttore di una classe, o un metodo o una chiamata di funzione allora il controllo verrà tornato al debugger alla prossima istruzione.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="398"/>
+        <location filename="../Debugger/DebugUI.py" line="400"/>
         <source>Step Over</source>
         <translation>Step Over</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="398"/>
+        <location filename="../Debugger/DebugUI.py" line="400"/>
         <source>Step &amp;Over</source>
         <translation>Step &amp;Over</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="403"/>
+        <location filename="../Debugger/DebugUI.py" line="405"/>
         <source>Execute a single Python statement staying in the current frame</source>
         <translation>Esegui una singola istruzione Python restando nella stessa struttura</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="406"/>
+        <location filename="../Debugger/DebugUI.py" line="408"/>
         <source>&lt;b&gt;Step Over&lt;/b&gt;&lt;p&gt;Execute a single Python statement staying in the same frame. If the statement is an &lt;tt&gt;import&lt;/tt&gt; statement, a class constructor, or a method or function call then control is returned to the debugger after the statement has completed.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Singolo passor&lt;/b&gt;&lt;p&gt;Esegui una singola istruzione Python restando nella stessa struttura. Se l&apos;istruzione e&apos; un &lt;tt&gt;import&lt;/tt&gt;, un costruttore di classe, o un metodo o una chiamata di funzione allora il controllo tornerà al debugger dopo che l&apos;istruzione è completata.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="417"/>
+        <location filename="../Debugger/DebugUI.py" line="419"/>
         <source>Step Out</source>
         <translation>Step Out</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="417"/>
+        <location filename="../Debugger/DebugUI.py" line="419"/>
         <source>Step Ou&amp;t</source>
         <translation>Step Ou&amp;t</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="422"/>
+        <location filename="../Debugger/DebugUI.py" line="424"/>
         <source>Execute Python statements until leaving the current frame</source>
         <translation>Esegue istruzioni Python fino a quando esce dal blocco corrente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="425"/>
+        <location filename="../Debugger/DebugUI.py" line="427"/>
         <source>&lt;b&gt;Step Out&lt;/b&gt;&lt;p&gt;Execute Python statements until leaving the current frame. If the statements are inside an &lt;tt&gt;import&lt;/tt&gt; statement, a class constructor, or a method or function call then control is returned to the debugger after the current frame has been left.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Step Out&lt;/b&gt;&lt;p&gt;Esegue istruzioni Python fino a quando esce dal blocco corrente. Se l&apos;istruzione e&apos; un &lt;tt&gt;import&lt;/tt&gt;, un costruttore di classe, o un metodo o una chiamata di funzione allora il controllo tornerà al debugger dopo l&apos;uscita dal blocco corrente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="436"/>
+        <location filename="../Debugger/DebugUI.py" line="438"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="436"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Stop</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="441"/>
-        <source>Stop debugging</source>
-        <translation>Ferma il debug</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="442"/>
-        <source>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;Stop the running debugging session.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;Ferma la sessione di debug.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="2209"/>
-        <source>Evaluate</source>
-        <translation type="obsolete">Valuta</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="434"/>
-        <source>E&amp;valuate...</source>
-        <translation type="obsolete">&amp;Valuta...</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="438"/>
-        <source>Evaluate in current context</source>
-        <translation type="obsolete">Valuta nel contesto corrente</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="2238"/>
-        <source>Execute</source>
-        <translation type="obsolete">Esegui</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="448"/>
-        <source>E&amp;xecute...</source>
-        <translation type="obsolete">E&amp;xegui...</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="452"/>
-        <source>Execute a one line statement in the current context</source>
-        <translation type="obsolete">Esegui un&apos;istruzione di una riga nel blocco corrente</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="454"/>
-        <source>&lt;b&gt;Execute&lt;/b&gt;&lt;p&gt;Execute a one line statement in the current context of the debugged program.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Esegui&lt;/b&gt;&lt;p&gt;Esegui un&apos;istruzione di una riga nel blocco corrente del programma in debug.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="465"/>
+        <source>&amp;Stop</source>
+        <translation>&amp;Stop</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="443"/>
+        <source>Stop debugging</source>
+        <translation>Ferma il debug</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="444"/>
+        <source>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;Stop the running debugging session.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;Ferma la sessione di debug.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="467"/>
         <source>Exceptions Filter</source>
         <translation>Filtro per le eccezioni</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="465"/>
+        <location filename="../Debugger/DebugUI.py" line="467"/>
         <source>&amp;Exceptions Filter...</source>
         <translation>Filtro per le &amp;Eccezioni...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="469"/>
-        <source>Configure exceptions filter</source>
-        <translation>Configura il filtro per le eccezioni</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="471"/>
+        <source>Configure exceptions filter</source>
+        <translation>Configura il filtro per le eccezioni</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="473"/>
         <source>&lt;b&gt;Exceptions Filter&lt;/b&gt;&lt;p&gt;Configure the exceptions filter. Only exception types that are listed are highlighted during a debugging session.&lt;/p&gt;&lt;p&gt;Please note, that all unhandled exceptions are highlighted indepent from the filter list.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Filtro per le Eccezioni&lt;/b&gt;&lt;p&gt;Configura il filtro per le eccezioni. Solo i tipi di eccezione che sono elencati sono evidenziati durante una sessione di debug.&lt;/p&gt;&lt;p&gt;Notare che, tutte le eccezioni non gestite sono evidenziate indipendentemente dalla lista del filtro.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="507"/>
+        <location filename="../Debugger/DebugUI.py" line="509"/>
         <source>Toggle Breakpoint</source>
         <translation>Toggle Breakpoint</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="508"/>
+        <location filename="../Debugger/DebugUI.py" line="510"/>
         <source>&lt;b&gt;Toggle Breakpoint&lt;/b&gt;&lt;p&gt;Toggles a breakpoint at the current line of the current editor.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Toggle Breakpoint&lt;/b&gt;&lt;p&gt;Attiva un breakpoint sulla linea corrente dell&apos;editor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="522"/>
+        <location filename="../Debugger/DebugUI.py" line="524"/>
         <source>Edit Breakpoint</source>
         <translation>Modifica Breakpoint</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="516"/>
+        <location filename="../Debugger/DebugUI.py" line="518"/>
         <source>Edit Breakpoint...</source>
         <translation>Modifica Breakpoint...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="523"/>
+        <location filename="../Debugger/DebugUI.py" line="525"/>
         <source>&lt;b&gt;Edit Breakpoint&lt;/b&gt;&lt;p&gt;Opens a dialog to edit the breakpoints properties. It works at the current line of the current editor.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Modifica Breakpoint&lt;/b&gt;&lt;p&gt;Apre un dialogo per modificare le proprietà del breakpoint. Lavora sulla linea corrente dell&apos;editor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="538"/>
+        <location filename="../Debugger/DebugUI.py" line="540"/>
         <source>Next Breakpoint</source>
         <translation>Prossimo Breakpoint</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="539"/>
+        <location filename="../Debugger/DebugUI.py" line="541"/>
         <source>&lt;b&gt;Next Breakpoint&lt;/b&gt;&lt;p&gt;Go to next breakpoint of the current editor.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Prossimo Breakpoint&lt;/b&gt;&lt;p&gt;Va al prossimo breakpoint dell&apos;editor corrente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="553"/>
+        <location filename="../Debugger/DebugUI.py" line="555"/>
         <source>Previous Breakpoint</source>
         <translation>Breakpoint Precedente</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="554"/>
+        <location filename="../Debugger/DebugUI.py" line="556"/>
         <source>&lt;b&gt;Previous Breakpoint&lt;/b&gt;&lt;p&gt;Go to previous breakpoint of the current editor.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Breakpoint Precedente&lt;/b&gt;&lt;p&gt;Va al breakpoint precedente dell&apos;editor corrente.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="567"/>
+        <location filename="../Debugger/DebugUI.py" line="569"/>
         <source>Clear Breakpoints</source>
         <translation>Pulisci i Breakpoint</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="568"/>
+        <location filename="../Debugger/DebugUI.py" line="570"/>
         <source>&lt;b&gt;Clear Breakpoints&lt;/b&gt;&lt;p&gt;Clear breakpoints of all editors.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Pulisci i Breakpoints&lt;/b&gt;&lt;p&gt;Elimina i breakpoint di tutti gli editor.&lt;/p&gt;</translation>
     </message>
     <message>
+        <location filename="../Debugger/DebugUI.py" line="600"/>
+        <source>&amp;Breakpoints</source>
+        <translation>&amp;Breakpoints</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1120"/>
+        <source>The program being debugged contains an unspecified syntax error.</source>
+        <translation>Il programma che viene debuggato contiene un errore di sintassi non specificato.</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1157"/>
+        <source>An unhandled exception occured. See the shell window for details.</source>
+        <translation>Un&apos;eccezione non gestita è occorso. Guarda la finestra di shell per dettagli.</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1282"/>
+        <source>The program being debugged has terminated unexpectedly.</source>
+        <translation>Il programma debuggato è terminato in maniera inaspettata.</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1592"/>
+        <source>Coverage of Project</source>
+        <translation>Analisi del Progetto</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1579"/>
+        <source>Coverage of Script</source>
+        <translation>Analisi delle Script</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1860"/>
+        <source>There is no main script defined for the current project. Aborting</source>
+        <translation>Non c&apos;è uno script principale definito per il progetto. Esco</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1725"/>
+        <source>Profile of Project</source>
+        <translation>Profilazione del progetto</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1712"/>
+        <source>Profile of Script</source>
+        <translation>Profilazione dello script</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1997"/>
+        <source>There is no main script defined for the current project. No debugging possible.</source>
+        <translation>Non c&apos;è uno script principale per il progetto. Non è possibile il debug.</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="348"/>
+        <source>Continue to Cursor</source>
+        <translation>Continua fino al cursore</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="348"/>
+        <source>Continue &amp;To Cursor</source>
+        <translation>Con&amp;tinua fino al Cursore</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="353"/>
+        <source>Continue running the program from the current line to the current cursor position</source>
+        <translation>Continua l&apos;esecuzione del programma dalla linea attuale fino alla posizione del cursore</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="356"/>
+        <source>&lt;b&gt;Continue To Cursor&lt;/b&gt;&lt;p&gt;Continue running the program from the current line to the current cursor position.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Continua fino al cursore&lt;/b&gt;&lt;p&gt;Continua l&apos;esecuzione del programma dalla linea attuale fino alla posizione del cursore.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="451"/>
+        <source>Variables Type Filter</source>
+        <translation>Filtro per i tipi di variabili</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="451"/>
+        <source>Varia&amp;bles Type Filter...</source>
+        <translation>Filtro per i tipi di varia&amp;bili...</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="455"/>
+        <source>Configure variables type filter</source>
+        <translation>Configura il filtro per i tipi di variabile</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="457"/>
+        <source>&lt;b&gt;Variables Type Filter&lt;/b&gt;&lt;p&gt;Configure the variables type filter. Only variable types that are not selected are displayed in the global or local variables window during a debugging session.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Filtro tipo variabili&lt;/b&gt;&lt;p&gt;Configura il filtro per i tipi variabile. Solo i tipi di variabile che non sono selezionati sono mostrati nella finestra delle variabili globali o locali durante una sessione di debug. &lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1351"/>
+        <source>Breakpoint Condition Error</source>
+        <translation>Errore condizione di interruzione</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="533"/>
+        <source>Ctrl+Shift+PgDown</source>
+        <comment>Debug|Next Breakpoint</comment>
+        <translation>Ctrl+Shift+PgDown</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="548"/>
+        <source>Ctrl+Shift+PgUp</source>
+        <comment>Debug|Previous Breakpoint</comment>
+        <translation>Ctrl+Shift+PgUp</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="563"/>
+        <source>Ctrl+Shift+C</source>
+        <comment>Debug|Clear Breakpoints</comment>
+        <translation>Ctrl+Shift+C</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="596"/>
+        <source>&amp;Debug</source>
+        <translation>&amp;Debug</translation>
+    </message>
+    <message>
         <location filename="../Debugger/DebugUI.py" line="598"/>
-        <source>&amp;Breakpoints</source>
-        <translation>&amp;Breakpoints</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1093"/>
-        <source>The program being debugged contains an unspecified syntax error.</source>
-        <translation>Il programma che viene debuggato contiene un errore di sintassi non specificato.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1130"/>
-        <source>An unhandled exception occured. See the shell window for details.</source>
-        <translation>Un&apos;eccezione non gestita è occorso. Guarda la finestra di shell per dettagli.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1255"/>
-        <source>The program being debugged has terminated unexpectedly.</source>
-        <translation>Il programma debuggato è terminato in maniera inaspettata.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1564"/>
-        <source>Coverage of Project</source>
-        <translation>Analisi del Progetto</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1552"/>
-        <source>Coverage of Script</source>
-        <translation>Analisi delle Script</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1822"/>
-        <source>There is no main script defined for the current project. Aborting</source>
-        <translation>Non c&apos;è uno script principale definito per il progetto. Esco</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1692"/>
-        <source>Profile of Project</source>
-        <translation>Profilazione del progetto</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1680"/>
-        <source>Profile of Script</source>
-        <translation>Profilazione dello script</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1953"/>
-        <source>There is no main script defined for the current project. No debugging possible.</source>
-        <translation>Non c&apos;è uno script principale per il progetto. Non è possibile il debug.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="2209"/>
-        <source>Enter the statement to evaluate</source>
-        <translation type="obsolete">Inserisci l&apos;istruzione da valutare</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="2238"/>
-        <source>Enter the statement to execute</source>
-        <translation type="obsolete">Inserisci l&apos;istruzione da eseguire</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="346"/>
-        <source>Continue to Cursor</source>
-        <translation>Continua fino al cursore</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="346"/>
-        <source>Continue &amp;To Cursor</source>
-        <translation>Con&amp;tinua fino al Cursore</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="351"/>
-        <source>Continue running the program from the current line to the current cursor position</source>
-        <translation>Continua l&apos;esecuzione del programma dalla linea attuale fino alla posizione del cursore</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="354"/>
-        <source>&lt;b&gt;Continue To Cursor&lt;/b&gt;&lt;p&gt;Continue running the program from the current line to the current cursor position.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Continua fino al cursore&lt;/b&gt;&lt;p&gt;Continua l&apos;esecuzione del programma dalla linea attuale fino alla posizione del cursore.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="449"/>
-        <source>Variables Type Filter</source>
-        <translation>Filtro per i tipi di variabili</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="449"/>
-        <source>Varia&amp;bles Type Filter...</source>
-        <translation>Filtro per i tipi di varia&amp;bili...</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="453"/>
-        <source>Configure variables type filter</source>
-        <translation>Configura il filtro per i tipi di variabile</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="455"/>
-        <source>&lt;b&gt;Variables Type Filter&lt;/b&gt;&lt;p&gt;Configure the variables type filter. Only variable types that are not selected are displayed in the global or local variables window during a debugging session.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Filtro tipo variabili&lt;/b&gt;&lt;p&gt;Configura il filtro per i tipi variabile. Solo i tipi di variabile che non sono selezionati sono mostrati nella finestra delle variabili globali o locali durante una sessione di debug. &lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1324"/>
-        <source>Breakpoint Condition Error</source>
-        <translation>Errore condizione di interruzione</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="531"/>
-        <source>Ctrl+Shift+PgDown</source>
-        <comment>Debug|Next Breakpoint</comment>
-        <translation>Ctrl+Shift+PgDown</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="546"/>
-        <source>Ctrl+Shift+PgUp</source>
-        <comment>Debug|Previous Breakpoint</comment>
-        <translation>Ctrl+Shift+PgUp</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="561"/>
-        <source>Ctrl+Shift+C</source>
-        <comment>Debug|Clear Breakpoints</comment>
-        <translation>Ctrl+Shift+C</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="594"/>
-        <source>&amp;Debug</source>
-        <translation>&amp;Debug</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="596"/>
         <source>&amp;Start</source>
         <translation>&amp;Avvia</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="641"/>
+        <location filename="../Debugger/DebugUI.py" line="643"/>
         <source>Start</source>
         <translation>Inizia</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="655"/>
+        <location filename="../Debugger/DebugUI.py" line="657"/>
         <source>Debug</source>
         <translation>Debug</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="320"/>
+        <location filename="../Debugger/DebugUI.py" line="322"/>
         <source>Stop the running script.</source>
         <translation>Ferma lo script in esecuzione.</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="439"/>
-        <source>&lt;b&gt;Evaluate&lt;/b&gt;&lt;p&gt;Evaluate an expression in the current context of the debugged program. The result is displayed in the shell window.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Valuta&lt;/b&gt;&lt;p&gt;Valuta un&apos;espressione nel contesto corrente del programma debuggato. Il risultato è mostrato nella shell.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1360"/>
+        <location filename="../Debugger/DebugUI.py" line="1387"/>
         <source>Watch Expression Error</source>
         <translation>Errore espressione di watch</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1400"/>
+        <location filename="../Debugger/DebugUI.py" line="1427"/>
         <source>Watch expression already exists</source>
         <translation>L&apos;espressione di controllo esiste già</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="482"/>
+        <location filename="../Debugger/DebugUI.py" line="484"/>
         <source>Ignored Exceptions</source>
         <translation>Eccezione ignorata</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="482"/>
+        <location filename="../Debugger/DebugUI.py" line="484"/>
         <source>&amp;Ignored Exceptions...</source>
         <translation>Eccezione &amp;ignorata...</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="486"/>
-        <source>Configure ignored exceptions</source>
-        <translation>Configura eccezioni ignorate</translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="488"/>
+        <source>Configure ignored exceptions</source>
+        <translation>Configura eccezioni ignorate</translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="490"/>
         <source>&lt;b&gt;Ignored Exceptions&lt;/b&gt;&lt;p&gt;Configure the ignored exceptions. Only exception types that are not listed are highlighted during a debugging session.&lt;/p&gt;&lt;p&gt;Please note, that unhandled exceptions cannot be ignored.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Eccezioni ignorate&lt;/b&gt;&lt;p&gt;Configura le eccezioni da ignorare. Solo i tipi di eccezione che non sono elencati sono evidenziati durante una sessione di debug.&lt;/p&gt;&lt;p&gt;Per favore nota che le eccezioni non gestite non possono essere ignorate.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="501"/>
+        <location filename="../Debugger/DebugUI.py" line="503"/>
         <source>Shift+F11</source>
         <comment>Debug|Toggle Breakpoint</comment>
         <translation>Shift+F11</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="516"/>
+        <location filename="../Debugger/DebugUI.py" line="518"/>
         <source>Shift+F12</source>
         <comment>Debug|Edit Breakpoint</comment>
         <translation>Shift+F12</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1036"/>
-        <source>&lt;p&gt;The program has terminated with an exit status of {0}.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Il programma è terminato con uno stato di uscita di {0}.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1041"/>
-        <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; has terminated with an exit status of {1}.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; è terminato con lo stato di uscita {1}.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1112"/>
+        <location filename="../Debugger/DebugUI.py" line="1139"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; contains the syntax error &lt;b&gt;{1}&lt;/b&gt; at line &lt;b&gt;{2}&lt;/b&gt;, character &lt;b&gt;{3}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; contiene l&apos;errore di sintassi &lt;b&gt;{1}&lt;/b&gt; alla linea &lt;b&gt;{2}&lt;/b&gt;, carattere &lt;b&gt;{3}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1177"/>
+        <location filename="../Debugger/DebugUI.py" line="1204"/>
         <source>&lt;p&gt;The debugged program raised the exception &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;&quot;&lt;b&gt;{1}&lt;/b&gt;&quot;&lt;br&gt;File: &lt;b&gt;{2}&lt;/b&gt;, Line: &lt;b&gt;{3}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Break here?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il programma in debug ha sollevato un&apos;eccezione &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;&quot;&lt;b&gt;{1}&lt;/b&gt;&quot;&lt;br&gt;File: &lt;b&gt;{2}&lt;/b&gt;, Linea: &lt;b&gt;{3}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Interrompere qui ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1192"/>
+        <location filename="../Debugger/DebugUI.py" line="1219"/>
         <source>&lt;p&gt;The debugged program raised the exception &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;&quot;&lt;b&gt;{1}&lt;/b&gt;&quot;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il programma debuggato ha sollevato un&apos;eccezione &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;&quot;&lt;b&gt;{1}&lt;/b&gt;&quot;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1324"/>
+        <location filename="../Debugger/DebugUI.py" line="1351"/>
         <source>&lt;p&gt;The condition of the breakpoint &lt;b&gt;{0}, {1}&lt;/b&gt; contains a syntax error.&lt;/p&gt;</source>
         <translation>&lt;p&gt;La condizione del breakpoint &lt;b&gt;{0}, {1}&lt;/b&gt; contiene un errore di sintassi.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1360"/>
+        <location filename="../Debugger/DebugUI.py" line="1387"/>
         <source>&lt;p&gt;The watch expression &lt;b&gt;{0}&lt;/b&gt; contains a syntax error.&lt;/p&gt;</source>
         <translation>&lt;p&gt;L&apos;espressione  &lt;b&gt;{0}&lt;/b&gt; contiene un errore di sintassi.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1390"/>
+        <location filename="../Debugger/DebugUI.py" line="1417"/>
         <source>&lt;p&gt;A watch expression &apos;&lt;b&gt;{0}&lt;/b&gt;&apos; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;L&apos;espressione &apos;&lt;b&gt;{0}&lt;/b&gt;&apos; esiste già.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1394"/>
+        <location filename="../Debugger/DebugUI.py" line="1421"/>
         <source>&lt;p&gt;A watch expression &apos;&lt;b&gt;{0}&lt;/b&gt;&apos; for the variable &lt;b&gt;{1}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;L&apos;espressione  &apos;&lt;b&gt;{0}&lt;/b&gt;&apos; per la variabile &lt;b&gt;{1}&lt;/b&gt; esiste già.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Debugger/DebugUI.py" line="1062"/>
-        <source>The program has terminated with an exit status of {0}.
-</source>
-        <translation type="obsolete">Il programma è terminato con uno stato di uscita di {0}.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1066"/>
-        <source>&quot;{0}&quot; has terminated with an exit status of {1}.
-</source>
-        <translation type="obsolete">&quot;{0}&quot; è terminato con lo stato di uscita {1}.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1062"/>
+        <source>&lt;p&gt;The program has terminated with an exit status of {0}.&lt;/p&gt;{1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1089"/>
         <source>Program terminated</source>
         <translation>Programma terminato</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1050"/>
-        <source>The program has terminated with an exit status of {0}.</source>
-        <translation type="obsolete">Il programma è terminato con un &apos;exit status&apos; di {0}.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1053"/>
-        <source>&quot;{0}&quot; has terminated with an exit status of {1}.</source>
-        <translation type="obsolete">&quot;{0}&quot; è terminato con un &apos;exit status&quot; di {1}.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="299"/>
+        <location filename="../Debugger/DebugUI.py" line="301"/>
         <source>Restart</source>
         <translation>Riavvio</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="305"/>
+        <location filename="../Debugger/DebugUI.py" line="307"/>
         <source>&lt;b&gt;Restart&lt;/b&gt;&lt;p&gt;Set the command line arguments and set the current line to be the first executable Python statement of the script that was debugged last. If there are unsaved changes, they may be saved first.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Riavvia&lt;/b&gt;&lt;p&gt;Imposta gli argomenti della linea di comando e imposta la linea corrente per essere la prima istruzione eseguibile di Python dell&apos;ultimo script in debug. Se il file ha modifiche non salvate è possibile salvarle prima.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="321"/>
+        <location filename="../Debugger/DebugUI.py" line="323"/>
         <source>&lt;b&gt;Stop&lt;/b&gt;&lt;p&gt;This stops the script running in the debugger backend.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ferma&lt;/b&gt;&lt;p&gt;Questo ferma lo script in esecuzione nel backend del debugger.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1241"/>
+        <location filename="../Debugger/DebugUI.py" line="1268"/>
         <source>&lt;p&gt;The program generate the signal &quot;{0}&quot;.&lt;br/&gt;File: &lt;b&gt;{1}&lt;/b&gt;, Line: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1029"/>
+        <location filename="../Debugger/DebugUI.py" line="1056"/>
         <source>&lt;p&gt;Message: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1035"/>
-        <source>&lt;p&gt;The program has terminated with an exit status of {0}.&lt;/p&gt;{1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1040"/>
-        <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; has terminated with an exit status of {1}.&lt;/p&gt;{2}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1048"/>
-        <source>Message: {0}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1055"/>
-        <source>The program has terminated with an exit status of {0}.
-{1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebugUI.py" line="1058"/>
-        <source>&quot;{0}&quot; has terminated with an exit status of {1}.
-{2}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Debugger/DebugUI.py" line="1067"/>
+        <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; has terminated with an exit status of {1}.&lt;/p&gt;{2}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1075"/>
+        <source>Message: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1082"/>
+        <source>The program has terminated with an exit status of {0}.
+{1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1085"/>
+        <source>&quot;{0}&quot; has terminated with an exit status of {1}.
+{2}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Debugger/DebugUI.py" line="1094"/>
         <source>The program has terminated with an exit status of {0}.
 {1}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="1071"/>
+        <location filename="../Debugger/DebugUI.py" line="1098"/>
         <source>&quot;{0}&quot; has terminated with an exit status of {1}.
 {2}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="362"/>
+        <location filename="../Debugger/DebugUI.py" line="364"/>
         <source>Move Instruction Pointer to Cursor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="362"/>
+        <location filename="../Debugger/DebugUI.py" line="364"/>
         <source>&amp;Jump To Cursor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="367"/>
+        <location filename="../Debugger/DebugUI.py" line="369"/>
         <source>Skip the code from the current line to the current cursor position</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebugUI.py" line="370"/>
+        <location filename="../Debugger/DebugUI.py" line="372"/>
         <source>&lt;b&gt;Move Instruction Pointer to Cursor&lt;/b&gt;&lt;p&gt;Move the Python internal instruction pointer to the current cursor position without executing the code in between.&lt;/p&gt;&lt;p&gt;It&apos;s not possible to jump out of a function or jump in a code block, e.g. a loop. In these cases, a error message is printed to the log window.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6769,158 +6626,59 @@
 <context>
     <name>DebuggerInterfacePython</name>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="370"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="376"/>
         <source>Start Debugger</source>
         <translation type="unfinished">Avvia Debugger</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="370"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="376"/>
         <source>&lt;p&gt;The debugger backend could not be started.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Il debugger non può essere avviato.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="844"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="850"/>
         <source>Parent Process</source>
         <translation type="unfinished">Processo padre</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="845"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="851"/>
         <source>Child process</source>
         <translation type="unfinished">Processo figlio</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="846"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="852"/>
         <source>Client forking</source>
         <translation type="unfinished">Lancio processo figlio in corso</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="846"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="852"/>
         <source>Select the fork branch to follow.</source>
         <translation type="unfinished">Seleziona il client da seguire.</translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="147"/>
-        <source>&lt;p&gt;No Python2 interpreter configured.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Nessun interprete Python2 configurato.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="152"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="155"/>
         <source>&lt;p&gt;No {0} interpreter configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="891"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="897"/>
         <source>Debug Protocol Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/DebuggerInterfacePython.py" line="891"/>
+        <location filename="../Debugger/DebuggerInterfacePython.py" line="897"/>
         <source>&lt;p&gt;The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.&lt;/p&gt;&lt;p&gt;Error: {0}&lt;/p&gt;&lt;p&gt;Data:&lt;br/&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>DebuggerInterfacePython2</name>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="143"/>
-        <source>&lt;p&gt;No Python2 interpreter configured.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Nessun interprete Python2 configurato.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="348"/>
-        <source>&lt;p&gt;The debugger backend could not be started.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Il debugger non può essere avviato.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="822"/>
-        <source>Parent Process</source>
-        <translation type="obsolete">Processo padre</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="823"/>
-        <source>Child process</source>
-        <translation type="obsolete">Processo figlio</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="824"/>
-        <source>Client forking</source>
-        <translation type="obsolete">Lancio processo figlio in corso</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython2.py" line="824"/>
-        <source>Select the fork branch to follow.</source>
-        <translation type="obsolete">Seleziona il client da seguire.</translation>
-    </message>
-</context>
-<context>
-    <name>DebuggerInterfacePython3</name>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="348"/>
-        <source>Start Debugger</source>
-        <translation type="obsolete">Avvia Debugger</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="348"/>
-        <source>&lt;p&gt;The debugger backend could not be started.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Il debugger non può essere avviato.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="822"/>
-        <source>Parent Process</source>
-        <translation type="obsolete">Processo padre</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="823"/>
-        <source>Child process</source>
-        <translation type="obsolete">Processo figlio</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="824"/>
-        <source>Client forking</source>
-        <translation type="obsolete">Lancio processo figlio in corso</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="824"/>
-        <source>Select the fork branch to follow.</source>
-        <translation type="obsolete">Seleziona il client da seguire.</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfacePython3.py" line="143"/>
-        <source>&lt;p&gt;No Python3 interpreter configured.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Nessun interprete Python2 configurato.&lt;/p&gt; {3 ?}</translation>
-    </message>
-</context>
-<context>
-    <name>DebuggerInterfaceRuby</name>
-    <message>
-        <location filename="../Debugger/DebuggerInterfaceRuby.py" line="346"/>
-        <source>Start Debugger</source>
-        <translation type="obsolete">Avvia il Debugger</translation>
-    </message>
-    <message>
-        <location filename="../Debugger/DebuggerInterfaceRuby.py" line="346"/>
-        <source>&lt;p&gt;The debugger backend could not be started.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Il debugger non può essere avviato.&lt;/p&gt;</translation>
-    </message>
-</context>
-<context>
     <name>DebuggerPropertiesDialog</name>
     <message>
-        <location filename="../Project/DebuggerPropertiesDialog.py" line="119"/>
-        <source>Select interpreter for Debug Client</source>
-        <translation type="obsolete">Seleziona l&apos;interprete per il client di debug</translation>
-    </message>
-    <message>
         <location filename="../Project/DebuggerPropertiesDialog.py" line="131"/>
         <source>All Files (*)</source>
         <translation>Tutti i file (*)</translation>
     </message>
     <message>
-        <location filename="../Project/DebuggerPropertiesDialog.py" line="136"/>
-        <source>Select Debug Client</source>
-        <translation type="obsolete">Seleziona il client di Debug</translation>
-    </message>
-    <message>
         <location filename="../Project/DebuggerPropertiesDialog.ui" line="14"/>
         <source>Debugger Properties</source>
         <translation>Proprietà Debugger</translation>
@@ -6936,11 +6694,6 @@
         <translation>Inserisci il percorso del Client Debug da usare. Lascia vuoto per usare il default.</translation>
     </message>
     <message>
-        <location filename="../Project/DebuggerPropertiesDialog.ui" line="36"/>
-        <source>Press to select the Debug Client via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezionare il Client Debug con un dialogo di selezione</translation>
-    </message>
-    <message>
         <location filename="../Project/DebuggerPropertiesDialog.ui" line="49"/>
         <source>Interpreter for Debug Client</source>
         <translation>Interprete per il Client Debug</translation>
@@ -6951,11 +6704,6 @@
         <translation>Inserisci il path dell&apos;interprete da usare dal Client Debug.</translation>
     </message>
     <message>
-        <location filename="../Project/DebuggerPropertiesDialog.ui" line="59"/>
-        <source>Press to select the interpreter via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezionare l&apos;interprete con un dialogo di selezione</translation>
-    </message>
-    <message>
         <location filename="../Project/DebuggerPropertiesDialog.ui" line="75"/>
         <source>Environment for Debug Client</source>
         <translation>Ambiente per il Client Debug</translation>
@@ -7105,7 +6853,7 @@
     <message>
         <location filename="../Project/DebuggerPropertiesDialog.ui" line="240"/>
         <source>Select to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</source>
-        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma in debug all&apos;IDE di eric5 {6 ?}</translation>
+        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma in debug all&apos;IDE di eric6</translation>
     </message>
     <message>
         <location filename="../Project/DebuggerPropertiesDialog.ui" line="39"/>
@@ -7171,16 +6919,6 @@
         <translation>Custom</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.ui" line="72"/>
-        <source>Select the multi threaded debug client</source>
-        <translation type="obsolete">Selezione il client di debug multi threaded</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.ui" line="75"/>
-        <source>Multi Threaded</source>
-        <translation type="obsolete">Multi Threaded</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.ui" line="98"/>
         <source>Source association</source>
         <translation>Associazione sorgenti</translation>
@@ -7206,16 +6944,6 @@
         <translation>Non impostare l&apos;encoding del client di debug</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.py" line="94"/>
-        <source>Select Python interpreter for Debug Client</source>
-        <translation type="obsolete">Seleziona l&apos;interprete Python per il client di debug</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.py" line="109"/>
-        <source>Select Debug Client</source>
-        <translation type="obsolete">Seleziona il client di Debug</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.py" line="40"/>
         <source>Python Files (*.py *.py3)</source>
         <translation>File Python (*.py *.py3)</translation>
@@ -7228,7 +6956,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPython3Page.ui" line="120"/>
         <source>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</source>
-        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma debuggato all&apos;IDE di eric5 {6 ?}</translation>
+        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma debuggato all&apos;IDE di eric6</translation>
     </message>
 </context>
 <context>
@@ -7279,16 +7007,6 @@
         <translation>Custom</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.ui" line="72"/>
-        <source>Select the multi threaded debug client</source>
-        <translation type="obsolete">Selezione il client di debug multi threaded</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.ui" line="75"/>
-        <source>Multi Threaded</source>
-        <translation type="obsolete">Multi Threaded</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.ui" line="123"/>
         <source>Redirect stdin/stdout/stderr</source>
         <translation>Ridirezione stdin/stdout/stderr</translation>
@@ -7304,16 +7022,6 @@
         <translation>Non impostare l&apos;encoding del client di debug</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.py" line="94"/>
-        <source>Select Python interpreter for Debug Client</source>
-        <translation type="obsolete">Seleziona l&apos;interprete Python per il client di debug</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.py" line="109"/>
-        <source>Select Debug Client</source>
-        <translation type="obsolete">Seleziona il client di Debug</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.ui" line="17"/>
         <source>&lt;b&gt;Configure Python Debugger&lt;/b&gt;</source>
         <translation>&lt;b&gt;Configura il Debugger Python &lt;/b&gt;</translation>
@@ -7341,45 +7049,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/DebuggerPythonPage.ui" line="120"/>
         <source>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</source>
-        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma debuggato all&apos;IDE di eric5 {6 ?}</translation>
-    </message>
-</context>
-<context>
-    <name>DebuggerRubyPage</name>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="37"/>
-        <source>Ruby Interpreter for Debug Client</source>
-        <translation type="obsolete">Interprete Ruby per il Client di Debug</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="43"/>
-        <source>Enter the path of the Ruby interpreter to be used by the debug client.</source>
-        <translation type="obsolete">Inserisci il path dell&apos;interprete Ruby da usare dal client di debug.</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="50"/>
-        <source>Press to select the Ruby interpreter via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezionare l&apos;interprete Ruby con un dialogo di selezione</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="63"/>
-        <source>Redirect stdin/stdout/stderr</source>
-        <translation type="obsolete">Ridirezione stdin/stdout/stderr</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.py" line="64"/>
-        <source>Select Ruby interpreter for Debug Client</source>
-        <translation type="obsolete">Seleziona l&apos;interprete Ruby per il client di debug</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Ruby Debugger&lt;/b&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Configura il Debugger Ruby &lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/DebuggerRubyPage.ui" line="60"/>
-        <source>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</source>
-        <translation type="obsolete">Seleziona per ridirezionare lo stdin, stdout e stderr del programma debuggato all&apos;IDE di eric5 {6 ?}</translation>
+        <translation type="unfinished">Seleziona per ridirezionare lo stdin, stdout e stderr del programma debuggato all&apos;IDE di eric6</translation>
     </message>
 </context>
 <context>
@@ -7521,11 +7191,6 @@
         <translation>Non ci sono differenze.</translation>
     </message>
     <message>
-        <location filename="../UI/DiffDialog.py" line="467"/>
-        <source>Select file to compare</source>
-        <translation type="obsolete">Seleziona file da confrontare</translation>
-    </message>
-    <message>
         <location filename="../UI/DiffDialog.ui" line="14"/>
         <source>File Differences</source>
         <translation>File differenze</translation>
@@ -7541,11 +7206,6 @@
         <translation>Inserisci il nome del primo file</translation>
     </message>
     <message>
-        <location filename="../UI/DiffDialog.ui" line="67"/>
-        <source>Press to select the file via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezionare il file con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../UI/DiffDialog.ui" line="52"/>
         <source>File &amp;2:</source>
         <translation>File &amp;2:</translation>
@@ -7944,89 +7604,89 @@
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.ui" line="26"/>
+        <location filename="../WebBrowser/Download/DownloadItem.ui" line="38"/>
         <source>Icon</source>
         <translation>Icona</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.ui" line="41"/>
+        <location filename="../WebBrowser/Download/DownloadItem.ui" line="66"/>
         <source>Filename</source>
         <translation>Nome file</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.ui" line="78"/>
+        <location filename="../Helpviewer/Download/DownloadItem.ui" line="103"/>
         <source>Press to repeat the download</source>
         <translation>Premi per ripetere il download</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.ui" line="78"/>
+        <location filename="../WebBrowser/Download/DownloadItem.ui" line="103"/>
         <source>Press to cancel the download</source>
         <translation>Premi per cancellare il download</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.ui" line="88"/>
+        <location filename="../WebBrowser/Download/DownloadItem.ui" line="113"/>
         <source>Press to open the downloaded file</source>
         <translation>Premi per aprire il file scaricato</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="257"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="261"/>
         <source>Download canceled: {0}</source>
         <translation>Download cancellato: {0}</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="203"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="207"/>
         <source>Save File</source>
         <translation>Salva file</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="285"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="290"/>
         <source>Download directory ({0}) couldn&apos;t be created.</source>
         <translation>La directory ({0}) per il download non può essere creata.</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.py" line="421"/>
+        <location filename="../Helpviewer/Download/DownloadItem.py" line="428"/>
         <source>Error opening save file: {0}</source>
         <translation>Errore nell&apos;apertura del file: {0}</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.py" line="434"/>
+        <location filename="../Helpviewer/Download/DownloadItem.py" line="441"/>
         <source>Error saving: {0}</source>
         <translation>Errore nel salvataggio di: {0}</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.py" line="447"/>
+        <location filename="../Helpviewer/Download/DownloadItem.py" line="454"/>
         <source>Network Error: {0}</source>
         <translation>Errore di rete: {0}</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="458"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="465"/>
         <source>?</source>
         <translation>?</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="469"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="476"/>
         <source>{0} of {1} - Stopped</source>
         <translation>{0} di {1} - Fermati</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="188"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="192"/>
         <source>VirusTotal scan scheduled: {0}</source>
         <translation>Scansione VirusTotal schedulata: {0}</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.ui" line="88"/>
+        <location filename="../Helpviewer/Download/DownloadItem.ui" line="113"/>
         <source>Press to pause the download</source>
         <translation>Premi per mettere in pausa il download</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="457"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="464"/>
         <source>{0} of {1} ({2}/sec)
 {3}</source>
         <translation>{0} di {1} ({2}/sec)
 {3}</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadItem.py" line="573"/>
+        <location filename="../Helpviewer/Download/DownloadItem.py" line="580"/>
         <source>{0} downloaded
 SHA1: {1}
 MD5: {2}</source>
@@ -8035,35 +7695,40 @@
 MD5: {2}</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="466"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="473"/>
         <source>{0} downloaded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="214"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="218"/>
         <source>Web Archive (*.mhtml *.mht)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="215"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="219"/>
         <source>HTML File (*.html *.htm)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="216"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="220"/>
         <source>HTML File with all resources (*.html *.htm)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadItem.py" line="226"/>
+        <location filename="../WebBrowser/Download/DownloadItem.py" line="230"/>
         <source>Save Web Page</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/Download/DownloadItem.ui" line="47"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="383"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="395"/>
         <source>Downloads</source>
         <translation>Downloads</translation>
     </message>
@@ -8078,7 +7743,7 @@
         <translation>0 elementi</translation>
     </message>
     <message numerus="yes">
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="372"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="384"/>
         <source>%n Download(s)</source>
         <translation>
             <numerusform>%n Download(s)</numerusform>
@@ -8086,7 +7751,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="151"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="153"/>
         <source>There are %n downloads in progress.
 Do you want to quit anyway?</source>
         <translation>
@@ -8102,47 +7767,47 @@
         <translation>Pulisci lista</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/Download/DownloadManager.py" line="91"/>
+        <location filename="../Helpviewer/Download/DownloadManager.py" line="93"/>
         <source>Retry</source>
         <translation>Ritenta</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="91"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="93"/>
         <source>Open</source>
         <translation>Apri</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="95"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="97"/>
         <source>Cancel</source>
         <translation>Cancella</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="99"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="101"/>
         <source>Open Containing Folder</source>
         <translation>Apri la cartella di destinazione</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="103"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="105"/>
         <source>Go to Download Page</source>
         <translation>Vai alla pagina dei download</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="106"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="108"/>
         <source>Copy Download Link</source>
         <translation>Copia il link per il download</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="110"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="112"/>
         <source>Select All</source>
         <translation>Seleziona tutti</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="117"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="119"/>
         <source>Remove From List</source>
         <translation>Rimuovi dalla lista</translation>
     </message>
     <message numerus="yes">
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="380"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="392"/>
         <source>Downloading %n file(s)</source>
         <translation>
             <numerusform>Scaricamento %n file(s)</numerusform>
@@ -8150,12 +7815,12 @@
         </translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="180"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="182"/>
         <source>Suspicuous URL detected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/Download/DownloadManager.py" line="180"/>
+        <location filename="../WebBrowser/Download/DownloadManager.py" line="182"/>
         <source>&lt;p&gt;The URL &lt;b&gt;{0}&lt;/b&gt; was found in the Safe Browsing database.&lt;/p&gt;{1}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8200,54 +7865,6 @@
     </message>
 </context>
 <context>
-    <name>E5ErrorMessage</name>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="110"/>
-        <source>Debug Message:</source>
-        <translation type="obsolete">Messaggio del debug:</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="113"/>
-        <source>Warning:</source>
-        <translation type="obsolete">Attenzione:</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="116"/>
-        <source>Critical:</source>
-        <translation type="obsolete">Critico:</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="119"/>
-        <source>Fatal Error:</source>
-        <translation type="obsolete">Errore fatale:</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="153"/>
-        <source>Warning</source>
-        <translation type="obsolete">Attenzione</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="156"/>
-        <source>Critical</source>
-        <translation type="obsolete">Critico</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="159"/>
-        <source>Fatal Error</source>
-        <translation type="obsolete">Errore fatale</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="150"/>
-        <source>Debug Message</source>
-        <translation type="obsolete">Messaggio del debug</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessage.py" line="195"/>
-        <source>No message handler installed.</source>
-        <translation type="obsolete">Gestore dei messaggi non installato.</translation>
-    </message>
-</context>
-<context>
     <name>E5ErrorMessageFilterDialog</name>
     <message>
         <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="14"/>
@@ -8255,46 +7872,6 @@
         <translation>Filtro dei messaggi di errore</translation>
     </message>
     <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="40"/>
-        <source>Enter search term for message</source>
-        <translation type="obsolete">Inserisci termine di ricerca per il messaggio</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="77"/>
-        <source>Press to add filter to the list</source>
-        <translation type="obsolete">Premi per aggiungere un filtro alla lista</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="80"/>
-        <source>&amp;Add...</source>
-        <translation type="obsolete">&amp;Aggiungi...</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="97"/>
-        <source>Press to remove the selected entries</source>
-        <translation type="obsolete">Premi per rimuovere gli elementi selezionati</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="100"/>
-        <source>&amp;Remove</source>
-        <translation type="obsolete">&amp;Rimuovi</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="110"/>
-        <source>Press to remove all entries</source>
-        <translation type="obsolete">Premi per rimuovere tutti gli elementi</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="113"/>
-        <source>R&amp;emove All</source>
-        <translation type="obsolete">Rimuov&amp;e tutto</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5ErrorMessageFilterDialog.py" line="51"/>
-        <source>Enter message filter to add to the list:</source>
-        <translation type="obsolete">Digita un filtro dei messaggi da aggiungere alla lista:</translation>
-    </message>
-    <message>
         <location filename="../E5Gui/E5ErrorMessageFilterDialog.py" line="39"/>
         <source>&lt;b&gt;Error Message Filters&lt;/b&gt;&lt;p&gt;This list shows the configured message filters used to suppress error messages from within Qt.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
@@ -9335,7 +8912,7 @@
     <message>
         <location filename="../E5Gui/E5StringListEditWidget.ui" line="119"/>
         <source>R&amp;emove All</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rimozione global&amp;e</translation>
     </message>
     <message>
         <location filename="../E5Gui/E5StringListEditWidget.py" line="89"/>
@@ -9376,22 +8953,17 @@
         <translation type="unfinished">Tutta la parola</translation>
     </message>
     <message>
-        <location filename="../E5Gui/E5TextEditSearchWidget.ui" line="75"/>
+        <location filename="../E5Gui/E5TextEditSearchWidget.ui" line="80"/>
         <source>Press to find the previous occurrence</source>
         <translation type="unfinished">Premi per trovare l&apos;occorrenza precedente</translation>
     </message>
     <message>
-        <location filename="../E5Gui/E5TextEditSearchWidget.ui" line="82"/>
+        <location filename="../E5Gui/E5TextEditSearchWidget.ui" line="87"/>
         <source>Press to find the next occurrence</source>
         <translation type="unfinished">Premi per trovare la prossima occorrenza</translation>
     </message>
     <message>
-        <location filename="../E5Gui/E5TextEditSearchWidget.py" line="140"/>
-        <source>Find</source>
-        <translation type="unfinished">Trova</translation>
-    </message>
-    <message>
-        <location filename="../E5Gui/E5TextEditSearchWidget.py" line="140"/>
+        <location filename="../E5Gui/E5TextEditSearchWidget.py" line="242"/>
         <source>&apos;{0}&apos; was not found.</source>
         <translation type="unfinished">&apos;{0}&apos; non è stato trovato.</translation>
     </message>
@@ -9581,11 +9153,6 @@
 <context>
     <name>EditBreakpointDialog</name>
     <message>
-        <location filename="../Debugger/EditBreakpointDialog.py" line="129"/>
-        <source>Select filename of the breakpoint</source>
-        <translation type="obsolete">Seleziona il nome file dei breakpoint</translation>
-    </message>
-    <message>
         <location filename="../Debugger/EditBreakpointDialog.ui" line="14"/>
         <source>Edit Breakpoint</source>
         <translation>Modifica breakpoint</translation>
@@ -9611,11 +9178,6 @@
         <translation>Linea numero:</translation>
     </message>
     <message>
-        <location filename="../Debugger/EditBreakpointDialog.ui" line="165"/>
-        <source>Press to open a file selection dialog</source>
-        <translation type="obsolete">Premi per aprire un dialogo si selezione</translation>
-    </message>
-    <message>
         <location filename="../Debugger/EditBreakpointDialog.ui" line="53"/>
         <source>Enter the linenumber of the breakpoint</source>
         <translation>Inserisci il numero di riga del breakpoint</translation>
@@ -9737,910 +9299,885 @@
 <context>
     <name>Editor</name>
     <message>
-        <location filename="../QScintilla/Editor.py" line="668"/>
+        <location filename="../QScintilla/Editor.py" line="698"/>
         <source>Undo</source>
         <translation>Annulla</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="671"/>
-        <source>Redo</source>
-        <translation>Rifai</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="674"/>
-        <source>Revert to last saved state</source>
-        <translation>Ritorna all&apos;ultimo stato salvato</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="678"/>
-        <source>Cut</source>
-        <translation>Taglia</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="681"/>
-        <source>Copy</source>
-        <translation>Copia</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="684"/>
-        <source>Paste</source>
-        <translation>Incolla</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="689"/>
-        <source>Indent</source>
-        <translation>Identa</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="692"/>
-        <source>Unindent</source>
-        <translation>Annulla identazione</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="695"/>
-        <source>Comment</source>
-        <translation>Commenta</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="698"/>
-        <source>Uncomment</source>
-        <translation>Annulla commenta</translation>
-    </message>
-    <message>
         <location filename="../QScintilla/Editor.py" line="701"/>
-        <source>Stream Comment</source>
-        <translation>Flusso commento</translation>
+        <source>Redo</source>
+        <translation>Rifai</translation>
     </message>
     <message>
         <location filename="../QScintilla/Editor.py" line="704"/>
-        <source>Box Comment</source>
-        <translation>Commenti nel riquadro</translation>
+        <source>Revert to last saved state</source>
+        <translation>Ritorna all&apos;ultimo stato salvato</translation>
     </message>
     <message>
         <location filename="../QScintilla/Editor.py" line="708"/>
-        <source>Select to brace</source>
-        <translation>Seleziona per parentesizzare</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="710"/>
-        <source>Select all</source>
-        <translation>Seleziona tutti</translation>
+        <source>Cut</source>
+        <translation>Taglia</translation>
     </message>
     <message>
         <location filename="../QScintilla/Editor.py" line="711"/>
-        <source>Deselect all</source>
-        <translation>Deseleziona tutti</translation>
+        <source>Copy</source>
+        <translation>Copia</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="714"/>
+        <source>Paste</source>
+        <translation>Incolla</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="719"/>
+        <source>Indent</source>
+        <translation>Identa</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="722"/>
+        <source>Unindent</source>
+        <translation>Annulla identazione</translation>
     </message>
     <message>
         <location filename="../QScintilla/Editor.py" line="725"/>
+        <source>Comment</source>
+        <translation>Commenta</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="728"/>
+        <source>Uncomment</source>
+        <translation>Annulla commenta</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="731"/>
+        <source>Stream Comment</source>
+        <translation>Flusso commento</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="734"/>
+        <source>Box Comment</source>
+        <translation>Commenti nel riquadro</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="738"/>
+        <source>Select to brace</source>
+        <translation>Seleziona per parentesizzare</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="740"/>
+        <source>Select all</source>
+        <translation>Seleziona tutti</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="741"/>
+        <source>Deselect all</source>
+        <translation>Deseleziona tutti</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="755"/>
         <source>Shorten empty lines</source>
         <translation>Abbrevia righe vuote</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="917"/>
+        <location filename="../QScintilla/Editor.py" line="952"/>
         <source>Languages</source>
         <translation>Linguaggi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="732"/>
+        <location filename="../QScintilla/Editor.py" line="762"/>
         <source>Use Monospaced Font</source>
         <translation>Usa un font Monospaced</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="726"/>
-        <source>Autocompletion enabled</source>
-        <translation type="obsolete">Autocompletamento abilitato</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="847"/>
+        <location filename="../QScintilla/Editor.py" line="882"/>
         <source>Check</source>
         <translation>Controlla</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="867"/>
+        <location filename="../QScintilla/Editor.py" line="902"/>
         <source>Show</source>
         <translation>Mostra</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="778"/>
+        <location filename="../QScintilla/Editor.py" line="810"/>
         <source>Close</source>
         <translation>Chiudi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="784"/>
+        <location filename="../QScintilla/Editor.py" line="816"/>
         <source>Save</source>
         <translation>Salva</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="787"/>
+        <location filename="../QScintilla/Editor.py" line="819"/>
         <source>Save As...</source>
         <translation>Salva come...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="803"/>
+        <location filename="../QScintilla/Editor.py" line="835"/>
         <source>Print</source>
         <translation>Stampa</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="869"/>
+        <location filename="../QScintilla/Editor.py" line="904"/>
         <source>Code metrics...</source>
         <translation>Statistiche codice...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="870"/>
+        <location filename="../QScintilla/Editor.py" line="905"/>
         <source>Code coverage...</source>
         <translation>Analisi codice...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="878"/>
+        <location filename="../QScintilla/Editor.py" line="913"/>
         <source>Profile data...</source>
         <translation>Profilazione dati...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1163"/>
+        <location filename="../QScintilla/Editor.py" line="1198"/>
         <source>Toggle bookmark</source>
         <translation>Inverti bookmark</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1165"/>
+        <location filename="../QScintilla/Editor.py" line="1200"/>
         <source>Next bookmark</source>
         <translation>Prossimo segnalibro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1167"/>
+        <location filename="../QScintilla/Editor.py" line="1202"/>
         <source>Previous bookmark</source>
         <translation>Segnalibro precedente</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1169"/>
+        <location filename="../QScintilla/Editor.py" line="1204"/>
         <source>Clear all bookmarks</source>
         <translation>Pulisci di tutti di segnalibri</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1189"/>
+        <location filename="../QScintilla/Editor.py" line="1224"/>
         <source>Toggle breakpoint</source>
         <translation>Abilita/Disabilita breakpoint</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1194"/>
+        <location filename="../QScintilla/Editor.py" line="1229"/>
         <source>Edit breakpoint...</source>
         <translation>Modifica Breakpoint...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5178"/>
+        <location filename="../QScintilla/Editor.py" line="5290"/>
         <source>Enable breakpoint</source>
         <translation>Abilita breakpoint</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1199"/>
+        <location filename="../QScintilla/Editor.py" line="1234"/>
         <source>Next breakpoint</source>
         <translation>Prossimo breakpoint</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1201"/>
+        <location filename="../QScintilla/Editor.py" line="1236"/>
         <source>Previous breakpoint</source>
         <translation>Breakpoint precedente</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1203"/>
+        <location filename="../QScintilla/Editor.py" line="1238"/>
         <source>Clear all breakpoints</source>
         <translation>Elimina tutti i breakpoint</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1223"/>
+        <location filename="../QScintilla/Editor.py" line="1258"/>
         <source>LMB toggles bookmarks</source>
         <translation>Inverti bookmark LMB</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1227"/>
+        <location filename="../QScintilla/Editor.py" line="1262"/>
         <source>LMB toggles breakpoints</source>
         <translation>Toggle Breakpoint LMB</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1764"/>
+        <location filename="../QScintilla/Editor.py" line="1799"/>
         <source>Modification of Read Only file</source>
         <translation>Modifica di un file di sola lettura</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1764"/>
+        <location filename="../QScintilla/Editor.py" line="1799"/>
         <source>You are attempting to change a read only file. Please save to a different file first.</source>
         <translation>Stai tentando di modificare un file in sola lettura. Per favore prima salva come un file diverso.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2455"/>
+        <location filename="../QScintilla/Editor.py" line="2490"/>
         <source>Printing...</source>
         <translation>In stampa...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2472"/>
+        <location filename="../QScintilla/Editor.py" line="2507"/>
         <source>Printing completed</source>
         <translation>Stampa completata</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2474"/>
+        <location filename="../QScintilla/Editor.py" line="2509"/>
         <source>Error while printing</source>
         <translation>Errore durante la stampa</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2477"/>
+        <location filename="../QScintilla/Editor.py" line="2512"/>
         <source>Printing aborted</source>
         <translation>Stampa annullata</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2890"/>
+        <location filename="../QScintilla/Editor.py" line="2925"/>
         <source>Open File</source>
         <translation>Apri File</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="3053"/>
+        <location filename="../QScintilla/Editor.py" line="3088"/>
         <source>Save File</source>
         <translation>Salva file</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2835"/>
+        <location filename="../QScintilla/Editor.py" line="2870"/>
         <source>File Modified</source>
         <translation>File modificato</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4451"/>
+        <location filename="../QScintilla/Editor.py" line="4500"/>
         <source>Autocompletion</source>
         <translation>Autocompletamento</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4451"/>
+        <location filename="../QScintilla/Editor.py" line="4500"/>
         <source>Autocompletion is not available because there is no autocompletion source set.</source>
         <translation>L&apos;autocomplentamento non è disponibile perchè non ci sono fonti impostate.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5181"/>
+        <location filename="../QScintilla/Editor.py" line="5293"/>
         <source>Disable breakpoint</source>
         <translation>Disabilita breakpoint</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5555"/>
+        <location filename="../QScintilla/Editor.py" line="5667"/>
         <source>Code Coverage</source>
         <translation>Analisi codice</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5555"/>
+        <location filename="../QScintilla/Editor.py" line="5667"/>
         <source>Please select a coverage file</source>
         <translation>Per favore seleziona un file per l&apos;analisi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5733"/>
+        <location filename="../QScintilla/Editor.py" line="5845"/>
         <source>Profile Data</source>
         <translation>Profilazione dati</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5733"/>
+        <location filename="../QScintilla/Editor.py" line="5845"/>
         <source>Please select a profile file</source>
         <translation>Per favore seleziona un file per la profilazione</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6208"/>
+        <location filename="../QScintilla/Editor.py" line="6320"/>
         <source>Macro Name</source>
         <translation>Nome Macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6208"/>
+        <location filename="../QScintilla/Editor.py" line="6320"/>
         <source>Select a macro name:</source>
         <translation>Seleziona un nome per la macro:</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6279"/>
+        <location filename="../QScintilla/Editor.py" line="6391"/>
         <source>Macro files (*.macro)</source>
         <translation>File Macro (*.macro)</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6236"/>
+        <location filename="../QScintilla/Editor.py" line="6348"/>
         <source>Load macro file</source>
         <translation>Carica un file di macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6259"/>
+        <location filename="../QScintilla/Editor.py" line="6371"/>
         <source>Error loading macro</source>
         <translation>Errore nel caricamento della macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6279"/>
+        <location filename="../QScintilla/Editor.py" line="6391"/>
         <source>Save macro file</source>
         <translation>Salva un file di macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6296"/>
+        <location filename="../QScintilla/Editor.py" line="6408"/>
         <source>Save macro</source>
         <translation>Salva macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6312"/>
+        <location filename="../QScintilla/Editor.py" line="6424"/>
         <source>Error saving macro</source>
         <translation>Errore nel salvataggio della macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6325"/>
+        <location filename="../QScintilla/Editor.py" line="6437"/>
         <source>Start Macro Recording</source>
         <translation>Avvia registrazione della macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6351"/>
+        <location filename="../QScintilla/Editor.py" line="6463"/>
         <source>Macro Recording</source>
         <translation>Registrazione Macro</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6351"/>
+        <location filename="../QScintilla/Editor.py" line="6463"/>
         <source>Enter name of the macro:</source>
         <translation>Inserisci un nome per la macro:</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6489"/>
+        <location filename="../QScintilla/Editor.py" line="6601"/>
         <source>File changed</source>
         <translation>File modificato</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="737"/>
+        <location filename="../QScintilla/Editor.py" line="767"/>
         <source>Autosave enabled</source>
         <translation>Salvataggio automatico abilitato</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1172"/>
+        <location filename="../QScintilla/Editor.py" line="1207"/>
         <source>Goto syntax error</source>
         <translation>Vai all&apos;errore di sintassi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1176"/>
+        <location filename="../QScintilla/Editor.py" line="1211"/>
         <source>Clear syntax error</source>
         <translation>Elimina errori di sintassi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6793"/>
+        <location filename="../QScintilla/Editor.py" line="6905"/>
         <source>Drop Error</source>
         <translation>Errore Drop</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1174"/>
-        <source>Show syntax error message</source>
-        <translation>Mostra i messaggi degli errori di sintassi</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="5893"/>
-        <source>Syntax Error</source>
-        <translation>Errore di sintassi</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="5893"/>
-        <source>No syntax error message available.</source>
-        <translation>Nessun messaggio degli errori di sintassi disponibile.</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1191"/>
-        <source>Toggle temporary breakpoint</source>
-        <translation>Abilita/Disabilita breakpoint temporaneo</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="872"/>
-        <source>Show code coverage annotations</source>
-        <translation>Mostra le annotazioni dell&apos;analisi del codice</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="875"/>
-        <source>Hide code coverage annotations</source>
-        <translation>Nascondi le annotazioni dell&apos;analisi del codice</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1206"/>
-        <source>Next uncovered line</source>
-        <translation>Prossimo file non analizzato</translation>
-    </message>
-    <message>
         <location filename="../QScintilla/Editor.py" line="1209"/>
+        <source>Show syntax error message</source>
+        <translation>Mostra i messaggi degli errori di sintassi</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6005"/>
+        <source>Syntax Error</source>
+        <translation>Errore di sintassi</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6005"/>
+        <source>No syntax error message available.</source>
+        <translation>Nessun messaggio degli errori di sintassi disponibile.</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1226"/>
+        <source>Toggle temporary breakpoint</source>
+        <translation>Abilita/Disabilita breakpoint temporaneo</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="907"/>
+        <source>Show code coverage annotations</source>
+        <translation>Mostra le annotazioni dell&apos;analisi del codice</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="910"/>
+        <source>Hide code coverage annotations</source>
+        <translation>Nascondi le annotazioni dell&apos;analisi del codice</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1241"/>
+        <source>Next uncovered line</source>
+        <translation>Prossimo file non analizzato</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1244"/>
         <source>Previous uncovered line</source>
         <translation>File non analizzato precedente</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5618"/>
+        <location filename="../QScintilla/Editor.py" line="5730"/>
         <source>Show Code Coverage Annotations</source>
         <translation>Mostra le annotazioni dell&apos;analisi del codice</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5611"/>
+        <location filename="../QScintilla/Editor.py" line="5723"/>
         <source>All lines have been covered.</source>
         <translation>Tutte le linee sono state analizzate.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="5618"/>
+        <location filename="../QScintilla/Editor.py" line="5730"/>
         <source>There is no coverage file available.</source>
         <translation>Non ci sono file di analisi disponibili.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="891"/>
+        <location filename="../QScintilla/Editor.py" line="926"/>
         <source>Diagrams</source>
         <translation>Diagrammi</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="893"/>
+        <location filename="../QScintilla/Editor.py" line="928"/>
         <source>Class Diagram...</source>
         <translation>Diagrammi di classe...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="895"/>
+        <location filename="../QScintilla/Editor.py" line="930"/>
         <source>Package Diagram...</source>
         <translation>Diagrammi del package...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="897"/>
+        <location filename="../QScintilla/Editor.py" line="932"/>
         <source>Imports Diagram...</source>
         <translation>Importa diagrammi...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="899"/>
+        <location filename="../QScintilla/Editor.py" line="934"/>
         <source>Application Diagram...</source>
         <translation>Diagrammi dell&apos;applicazione...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="920"/>
+        <location filename="../QScintilla/Editor.py" line="955"/>
         <source>No Language</source>
         <translation>Nessun linguaggio</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6814"/>
+        <location filename="../QScintilla/Editor.py" line="6926"/>
         <source>Resources</source>
         <translation>Risorse</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6816"/>
+        <location filename="../QScintilla/Editor.py" line="6928"/>
         <source>Add file...</source>
         <translation>Aggiungi file...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6818"/>
+        <location filename="../QScintilla/Editor.py" line="6930"/>
         <source>Add files...</source>
         <translation>Aggiungi files...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6820"/>
+        <location filename="../QScintilla/Editor.py" line="6932"/>
         <source>Add aliased file...</source>
         <translation>Aggiungi file sinonimo...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6823"/>
+        <location filename="../QScintilla/Editor.py" line="6935"/>
         <source>Add localized resource...</source>
         <translation>Aggiungi una risorsa localizzata...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6846"/>
+        <location filename="../QScintilla/Editor.py" line="6958"/>
         <source>Add file resource</source>
         <translation>Aggiungi un file risorse</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6862"/>
-        <source>Add file resources</source>
-        <translation>Aggiundi dei file risorse</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6890"/>
-        <source>Add aliased file resource</source>
-        <translation>Aggiungi file sinonimo delle risorse</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6954"/>
-        <source>Package Diagram</source>
-        <translation>Diagrammi del package</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6954"/>
-        <source>Include class attributes?</source>
-        <translation>Includi gli attributi della classe ?</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6988"/>
-        <source>Application Diagram</source>
-        <translation>Diagrammi dell&apos;applicazione</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6988"/>
-        <source>Include module names?</source>
-        <translation>Includi i nomi dei moduli ?</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6827"/>
-        <source>Add resource frame</source>
-        <translation>Aggiungi riquadro delle risorse</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6325"/>
-        <source>Macro recording is already active. Start new?</source>
-        <translation>Registrazione macro già attiva. Avvia nuovamente ?</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="797"/>
-        <source>Autocomplete</source>
-        <translation type="obsolete">Autocompletamento</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="829"/>
-        <source>Complete from Document</source>
-        <translation type="unfinished">dal Documento</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="831"/>
-        <source>Complete from APIs</source>
-        <translation type="unfinished">dalle APIs</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="833"/>
-        <source>Complete from Document and APIs</source>
-        <translation type="unfinished">dal Documento e dalle APIs</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1212"/>
-        <source>Next task</source>
-        <translation>Prossimo task</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1214"/>
-        <source>Previous task</source>
-        <translation>Task precedente</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1040"/>
-        <source>Export as</source>
-        <translation>Esporta come</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1263"/>
-        <source>Export source</source>
-        <translation>Esporta sorgenti</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1263"/>
-        <source>No export format given. Aborting...</source>
-        <translation>Nessun formato di export impostato. Annullamento...</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6974"/>
-        <source>Imports Diagram</source>
-        <translation>Importa diagrammi</translation>
-    </message>
-    <message>
         <location filename="../QScintilla/Editor.py" line="6974"/>
+        <source>Add file resources</source>
+        <translation>Aggiundi dei file risorse</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7002"/>
+        <source>Add aliased file resource</source>
+        <translation>Aggiungi file sinonimo delle risorse</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7066"/>
+        <source>Package Diagram</source>
+        <translation>Diagrammi del package</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7066"/>
+        <source>Include class attributes?</source>
+        <translation>Includi gli attributi della classe ?</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7100"/>
+        <source>Application Diagram</source>
+        <translation>Diagrammi dell&apos;applicazione</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7100"/>
+        <source>Include module names?</source>
+        <translation>Includi i nomi dei moduli ?</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6939"/>
+        <source>Add resource frame</source>
+        <translation>Aggiungi riquadro delle risorse</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6437"/>
+        <source>Macro recording is already active. Start new?</source>
+        <translation>Registrazione macro già attiva. Avvia nuovamente ?</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="864"/>
+        <source>Complete from Document</source>
+        <translation type="unfinished">dal Documento</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="866"/>
+        <source>Complete from APIs</source>
+        <translation type="unfinished">dalle APIs</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="868"/>
+        <source>Complete from Document and APIs</source>
+        <translation type="unfinished">dal Documento e dalle APIs</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1247"/>
+        <source>Next task</source>
+        <translation>Prossimo task</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1249"/>
+        <source>Previous task</source>
+        <translation>Task precedente</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1075"/>
+        <source>Export as</source>
+        <translation>Esporta come</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1298"/>
+        <source>Export source</source>
+        <translation>Esporta sorgenti</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1298"/>
+        <source>No export format given. Aborting...</source>
+        <translation>Nessun formato di export impostato. Annullamento...</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7086"/>
+        <source>Imports Diagram</source>
+        <translation>Importa diagrammi</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7086"/>
         <source>Include imports from external modules?</source>
         <translation>Includi gli import dai moduli esterni ?</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="816"/>
-        <source>dynamic</source>
-        <translation type="obsolete">dinamico</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="756"/>
+        <location filename="../QScintilla/Editor.py" line="786"/>
         <source>Calltip</source>
         <translation>Calltip</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="800"/>
+        <location filename="../QScintilla/Editor.py" line="832"/>
         <source>Print Preview</source>
         <translation>Anteprima Stampa</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="410"/>
+        <location filename="../QScintilla/Editor.py" line="436"/>
         <source>&lt;b&gt;A Source Editor Window&lt;/b&gt;&lt;p&gt;This window is used to display and edit a source file.  You can open as many of these as you like. The name of the file is displayed in the window&apos;s titlebar.&lt;/p&gt;&lt;p&gt;In order to set breakpoints just click in the space between the line numbers and the fold markers. Via the context menu of the margins they may be edited.&lt;/p&gt;&lt;p&gt;In order to set bookmarks just Shift click in the space between the line numbers and the fold markers.&lt;/p&gt;&lt;p&gt;These actions can be reversed via the context menu.&lt;/p&gt;&lt;p&gt;Ctrl clicking on a syntax error marker shows some info about this error.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Una finesta di edit&lt;/b&gt;&lt;p&gt;Questa finestra è usata per visualizzare e modificare un file sorgente. Si possono aprire quante finestre si vogliono. Il nome del file è mostrato nella barra dei titolo della finestra.&lt;/p&gt;&lt;p&gt;Per impostare dei breakpoint basta cliccare nello spazio tra i numeri di riga e i marcatori di compressione. Con il menù contestuale del margine possono essere modificati.&lt;/p&gt;&lt;p&gt;Per impostare un segnalibro basta cliccare con lo Shift premuto nello spazio tra il numero di linea e i marcatori di compressione.&lt;/p&gt;&lt;p&gt;Queste azioni possono essere invertite con il menù contestuale.&lt;/p&gt;&lt;p&gt; Cliccare con il tasto Ctrl premuto un  marcatore di errore della sintassi mostra delle informazioni sull&apos;errore.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="741"/>
+        <location filename="../QScintilla/Editor.py" line="771"/>
         <source>Typing aids enabled</source>
         <translation>Aiuti alla digitazione abilitati</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1004"/>
+        <location filename="../QScintilla/Editor.py" line="1039"/>
         <source>End-of-Line Type</source>
         <translation>Tipo di fine-linea</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1008"/>
+        <location filename="../QScintilla/Editor.py" line="1043"/>
         <source>Unix</source>
         <translation>Unix</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1015"/>
+        <location filename="../QScintilla/Editor.py" line="1050"/>
         <source>Windows</source>
         <translation>Windows</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1022"/>
+        <location filename="../QScintilla/Editor.py" line="1057"/>
         <source>Macintosh</source>
         <translation>Macintosh</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="963"/>
+        <location filename="../QScintilla/Editor.py" line="998"/>
         <source>Encodings</source>
         <translation>Codifica</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="943"/>
+        <location filename="../QScintilla/Editor.py" line="978"/>
         <source>Guessed</source>
         <translation>Indovinato</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1278"/>
+        <location filename="../QScintilla/Editor.py" line="1313"/>
         <source>Alternatives</source>
         <translation>Alternative</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1294"/>
+        <location filename="../QScintilla/Editor.py" line="1329"/>
         <source>Pygments Lexer</source>
         <translation>Analizzatore lessicale Pygments</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1294"/>
+        <location filename="../QScintilla/Editor.py" line="1329"/>
         <source>Select the Pygments lexer to apply.</source>
         <translation>Selezione l&apos;analizzatore lessicale di Pygments da applicare.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7266"/>
+        <location filename="../QScintilla/Editor.py" line="7378"/>
         <source>Check spelling...</source>
         <translation>Controllo sillabazione...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="717"/>
+        <location filename="../QScintilla/Editor.py" line="747"/>
         <source>Check spelling of selection...</source>
         <translation>Controllo sillabazione della selezione...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7269"/>
+        <location filename="../QScintilla/Editor.py" line="7381"/>
         <source>Add to dictionary</source>
         <translation>Aggiungi al dizionario</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7271"/>
+        <location filename="../QScintilla/Editor.py" line="7383"/>
         <source>Ignore All</source>
         <translation>Ignora tutto</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="721"/>
+        <location filename="../QScintilla/Editor.py" line="751"/>
         <source>Remove from dictionary</source>
         <translation>Rimuovi dal dizionario</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="350"/>
+        <location filename="../QScintilla/Editor.py" line="354"/>
         <source>&lt;p&gt;The size of the file &lt;b&gt;{0}&lt;/b&gt; is &lt;b&gt;{1} KB&lt;/b&gt;. Do you really want to load it?&lt;/p&gt;</source>
         <translation>&lt;p&gt;La dimensione del file &lt;b&gt;{0}&lt;/b&gt; è &lt;b&gt;{1} KB&lt;/b&gt;. Sei sicuro di volerlo caricare ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1255"/>
+        <location filename="../QScintilla/Editor.py" line="1290"/>
         <source>&lt;p&gt;No exporter available for the export format &lt;b&gt;{0}&lt;/b&gt;. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nessun esportatore disponibile per il formato di export&lt;b&gt;{0}&lt;/b&gt;. Termino...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1274"/>
+        <location filename="../QScintilla/Editor.py" line="1309"/>
         <source>Alternatives ({0})</source>
         <translation>Alternative ({0})</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2835"/>
+        <location filename="../QScintilla/Editor.py" line="2870"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; has unsaved changes.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; contiene modifiche non salvate.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2890"/>
+        <location filename="../QScintilla/Editor.py" line="2925"/>
         <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;Il file &lt;b&gt;{0}&lt;/b&gt; non può essere aperto.&lt;br /&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="2994"/>
+        <location filename="../QScintilla/Editor.py" line="3029"/>
         <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;Il file &lt;b&gt;{0}&lt;/b&gt; non può essere salvato.&lt;br /&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6250"/>
+        <location filename="../QScintilla/Editor.py" line="6362"/>
         <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;Il file macro &lt;b&gt;{0}&lt;/b&gt; non può essere letto.&lt;/p&gt;</translation>
     </message>
     <message>
+        <location filename="../QScintilla/Editor.py" line="6371"/>
+        <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; is corrupt.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Il file macro &lt;b&gt;{0}&lt;/b&gt; è danneggiato.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6424"/>
+        <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;Il file macro &lt;b&gt;{0}&lt;/b&gt; non può essere scritto.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6765"/>
+        <source>{0} (ro)</source>
+        <translation>{0} (ro)</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6905"/>
+        <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; non è un file.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="7002"/>
+        <source>Alias for file &lt;b&gt;{0}&lt;/b&gt;:</source>
+        <translation>Alias per il file &lt;b&gt;{0}&lt;/b&gt;:</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1214"/>
+        <source>Next warning</source>
+        <translation>Warning successivo</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1217"/>
+        <source>Previous warning</source>
+        <translation>Warning precedente</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1219"/>
+        <source>Show warning message</source>
+        <translation>Mostra Warning</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="1221"/>
+        <source>Clear warnings</source>
+        <translation>Pulisci warning</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="3088"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; esiste già. Sovrascriverlo ?&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="6408"/>
+        <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Il file  delle macro &lt;b&gt;{0}&lt;/b&gt; esiste già.Sovrascriverlo ?&lt;/p&gt;</translation>
+    </message>
+    <message>
         <location filename="../QScintilla/Editor.py" line="6259"/>
-        <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; is corrupt.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Il file macro &lt;b&gt;{0}&lt;/b&gt; è danneggiato.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6312"/>
-        <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;Il file macro &lt;b&gt;{0}&lt;/b&gt; non può essere scritto.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6653"/>
-        <source>{0} (ro)</source>
-        <translation>{0} (ro)</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6793"/>
-        <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; non è un file.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6890"/>
-        <source>Alias for file &lt;b&gt;{0}&lt;/b&gt;:</source>
-        <translation>Alias per il file &lt;b&gt;{0}&lt;/b&gt;:</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1179"/>
-        <source>Next warning</source>
-        <translation>Warning successivo</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1182"/>
-        <source>Previous warning</source>
-        <translation>Warning precedente</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1184"/>
-        <source>Show warning message</source>
-        <translation>Mostra Warning</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="1186"/>
-        <source>Clear warnings</source>
-        <translation>Pulisci warning</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="3053"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; esiste già. Sovrascriverlo ?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6296"/>
-        <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Il file  delle macro &lt;b&gt;{0}&lt;/b&gt; esiste già.Sovrascriverlo ?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="6147"/>
         <source>Warning: {0}</source>
         <translation>Attenzione: {0}</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6154"/>
+        <location filename="../QScintilla/Editor.py" line="6266"/>
         <source>Error: {0}</source>
         <translation>Errore: {0}</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6485"/>
+        <location filename="../QScintilla/Editor.py" line="6597"/>
         <source>&lt;br&gt;&lt;b&gt;Warning:&lt;/b&gt; You will lose your changes upon reopening it.</source>
         <translation>&lt;br&gt;&lt;b&gt;Attenzione:&lt;/b&gt; con la riapertura le modifiche andranno perse.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4556"/>
-        <source>Activating Auto-Completion Provider</source>
-        <translation>Fornitore Autocompletamento in attivazione</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="4556"/>
-        <source>Auto-completion provider cannot be connected because there is already another one active. Please check your configuration.</source>
-        <translation>Il fornitore di autocompletamento non può essere connesso perchè è gia attivo un altro. Per cortesia controlla la configurazione.</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="4876"/>
-        <source>Activating Calltip Provider</source>
-        <translation>Fornitore CallTip in attivazione</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="4876"/>
-        <source>Calltip provider cannot be connected because there is already another one active. Please check your configuration.</source>
-        <translation>Il fornitore di autocompletamento non può essere connesso perchè è gia attivo un altro. Per cortesia controlla la configurazione.</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="796"/>
+        <location filename="../QScintilla/Editor.py" line="828"/>
         <source>Open &apos;rejection&apos; file</source>
         <translation>Apri file &apos;rifiuto&apos;</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="903"/>
+        <location filename="../QScintilla/Editor.py" line="938"/>
         <source>Load Diagram...</source>
         <translation>Carica Diagramma...</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1217"/>
+        <location filename="../QScintilla/Editor.py" line="1252"/>
         <source>Next change</source>
         <translation>Modifica successiva</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="1220"/>
+        <location filename="../QScintilla/Editor.py" line="1255"/>
         <source>Previous change</source>
         <translation>Modifica precedente</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7683"/>
+        <location filename="../QScintilla/Editor.py" line="7795"/>
         <source>Sort Lines</source>
         <translation>Righe ordinate</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7683"/>
+        <location filename="../QScintilla/Editor.py" line="7795"/>
         <source>The selection contains illegal data for a numerical sort.</source>
         <translation>La selezione contiene dati non validi per un ordinamento numerico.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6083"/>
+        <location filename="../QScintilla/Editor.py" line="6195"/>
         <source>Warning</source>
         <translation>Attenzione</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6083"/>
+        <location filename="../QScintilla/Editor.py" line="6195"/>
         <source>No warning messages available.</source>
         <translation>Nessun messaggio di attenzione disponibile.</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6144"/>
+        <location filename="../QScintilla/Editor.py" line="6256"/>
         <source>Style: {0}</source>
         <translation>Stile: {0}</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="770"/>
+        <location filename="../QScintilla/Editor.py" line="802"/>
         <source>New Document View</source>
         <translation>Nuova vista Documento</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="773"/>
+        <location filename="../QScintilla/Editor.py" line="805"/>
         <source>New Document View (with new split)</source>
         <translation>Nuova vista Documento (con nuova divisione)</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="857"/>
+        <location filename="../QScintilla/Editor.py" line="892"/>
         <source>Tools</source>
         <translation>Strumenti</translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="985"/>
+        <location filename="../QScintilla/Editor.py" line="1020"/>
         <source>Re-Open With Encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="6479"/>
+        <location filename="../QScintilla/Editor.py" line="6591"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; has been changed while it was opened in eric6. Reread it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; è stato modificato mentre era aperto in eric5. Rileggerlo ?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Editor.py" line="748"/>
+        <translation type="unfinished">&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; è stato modificato mentre era aperto in eric6. Rileggerlo ?&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="778"/>
         <source>Automatic Completion enabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="826"/>
+        <location filename="../QScintilla/Editor.py" line="858"/>
         <source>Complete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4605"/>
+        <location filename="../QScintilla/Editor.py" line="4615"/>
         <source>Auto-Completion Provider</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4605"/>
+        <location filename="../QScintilla/Editor.py" line="4615"/>
         <source>The completion list provider &apos;{0}&apos; was already registered. Ignoring duplicate request.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4919"/>
+        <location filename="../QScintilla/Editor.py" line="4874"/>
         <source>Call-Tips Provider</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="4919"/>
+        <location filename="../QScintilla/Editor.py" line="4874"/>
         <source>The call-tips provider &apos;{0}&apos; was already registered. Ignoring duplicate request.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7770"/>
+        <location filename="../QScintilla/Editor.py" line="7882"/>
         <source>Register Mouse Click Handler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="7770"/>
+        <location filename="../QScintilla/Editor.py" line="7882"/>
         <source>A mouse click handler for &quot;{0}&quot; was already registered by &quot;{1}&quot;. Aborting request by &quot;{2}&quot;...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../QScintilla/Editor.py" line="790"/>
+        <location filename="../QScintilla/Editor.py" line="822"/>
         <source>Save Copy...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="861"/>
+        <source>Clear Completions Cache</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../QScintilla/Editor.py" line="788"/>
+        <source>Code Info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>EditorAPIsPage</name>
@@ -10680,21 +10217,11 @@
         <translation>Premi per selezionare un file APIs con un dialogo</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAPIsPage.ui" line="116"/>
-        <source>Enter a file to be added</source>
-        <translation type="obsolete">Inserisci un file da aggiungere</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorAPIsPage.ui" line="100"/>
         <source>List of API files</source>
         <translation>Lista di file API</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAPIsPage.py" line="142"/>
-        <source>Select API file</source>
-        <translation type="obsolete">Seleziona file API</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorAPIsPage.py" line="41"/>
         <source>API File (*.api);;All Files (*)</source>
         <translation>File API (*.api);;Tutti i files(*)</translation>
@@ -10783,47 +10310,47 @@
 <context>
     <name>EditorAutocompletionPage</name>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="37"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="76"/>
         <source>Select this to enable autocompletion</source>
         <translation>Seleziona per abilitare l&apos;autocompletamento</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="82"/>
+        <source>Automatic Completion Enabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="43"/>
-        <source>Automatic Completion Enabled</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="59"/>
         <source>Select this to have case sensitive auto-completion lists</source>
         <translation>Seleziona per avere l&apos;autocompletamento case-sensitive</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="62"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="46"/>
         <source>Case sensitive</source>
         <translation>Case sensitive</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="81"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="91"/>
         <source>Threshold:</source>
         <translation>Thereshold:</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="88"/>
-        <source>Move to set the threshold for display of an autocompletion list</source>
-        <translation>Muovi per impostare il threshold per visualizzare la lista di autocompletamento</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="107"/>
+        <source>Move to set the threshold for display of an autocompletion list</source>
+        <translation>Muovi per impostare il threshold per visualizzare la lista di autocompletamento</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="126"/>
         <source>Displays the selected autocompletion threshold</source>
         <translation>Visualizza il threshold di autocompletamento selezionato</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="69"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="53"/>
         <source>Select this, if the word to the right should be replaced by the selected entry</source>
         <translation>Seleziona, se la parola a destra deve essere sostituita da un elemento selezionato</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="72"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="56"/>
         <source>Replace word</source>
         <translation>Sostituisci parola</translation>
     </message>
@@ -10833,44 +10360,109 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="40"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="79"/>
         <source>&lt;b&gt;Autocompletion Enabled&lt;/b&gt;&lt;p&gt;Select to enable autocompletion. In order to get autocompletion from alternative autocompletion providers (if installed), these have to be enabled on their respective configuration page. Only one alternative provider might be enabled.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Autocompletamento abilitato&lt;/b&gt;&lt;p&gt;Seleziona abilitare l&apos;autocompletamento. Per avere l&apos;autocompletamendo da fonti alternative (se installare), queste devono essere abilitate nelle rispettive pagine di configurazione. Solo una fonte alternativa puo&apos; essere abilitata.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="53"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="37"/>
         <source>General</source>
         <translation>Generale</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="128"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="184"/>
         <source>Plug-In Behavior</source>
         <translation type="unfinished">Comportamento Plug-in</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="137"/>
-        <source>Qscintilla provided completions are shown, if this option is enabled and completions shall be provided by plug-ins (see completions sub-page of the plug-in) and the plugin-ins don&apos;t deliver any completions.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="140"/>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="63"/>
+        <source>Select to show completions of type &apos;public&apos; first</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="66"/>
+        <source>Show &apos;public&apos; completions first</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="156"/>
+        <source>Enter the time in milliseconds after which a list with completion proposals shall be shown</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="165"/>
+        <source> ms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="273"/>
+        <source>Completions Cache</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="279"/>
+        <source>Size:</source>
+        <translation type="unfinished">DImensione:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="292"/>
+        <source>Enter the maximum number of entries to be kept in the completions cache</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="301"/>
+        <source> entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="330"/>
+        <source>Timeout:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="337"/>
+        <source>Enter the time in seconds after which a cached completion entry should be removed from the completions cache</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="346"/>
+        <source> s</source>
+        <translation type="unfinished"> s</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="98"/>
+        <source>Time to start completion:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="190"/>
+        <source>Select to show QScintilla provided completions, if the selected plug-ins fail</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="196"/>
         <source>Show QScintilla completions, if plug-ins fail</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="134"/>
-        <source>Select to show QScintilla provided completions, if the selected plug-ins fail</source>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="205"/>
+        <source>Maximum time to wait:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="227"/>
+        <source>Enter the time in seconds after which QSintilla should be used</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionPage.ui" line="193"/>
+        <source>QScintilla provided completions are shown, if this option is enabled and completions shall be provided by plug-ins (see completions sub-page of the plug-in) and the plugin-ins don&apos;t deliver any completions.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>EditorAutocompletionQScintillaPage</name>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.ui" line="16"/>
-        <source>&lt;b&gt;Configure QScintilla Autocompletion&lt;/b&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Configura Autocompletamento di QScintilla&lt;/b&gt;</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.ui" line="37"/>
         <source>Select this, if single entries shall be inserted automatically</source>
         <translation>Seleziona, se un elemento singolo deve essere inserito automaticamente</translation>
@@ -11157,6 +10749,54 @@
     </message>
 </context>
 <context>
+    <name>EditorDocViewerPage</name>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="17"/>
+        <source>&lt;b&gt;Configure Documentation Viewer Settings&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="37"/>
+        <source>Select to enable the display of code documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="40"/>
+        <source>Enable Documentation Viewer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="49"/>
+        <source>Select to show documentation when entering a &apos;(&apos; character</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="52"/>
+        <source>Show documentation upon &apos;(&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="59"/>
+        <source>Select to show code documentation as rich text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="62"/>
+        <source>Show documentation as rich text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="71"/>
+        <source>Documentation Provider:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="84"/>
+        <source>Select the documentation provider to be used</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>EditorExportersPage</name>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorExportersPage.ui" line="20"/>
@@ -11579,31 +11219,16 @@
         <translation>Anteprima del file</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="451"/>
-        <source>Extensions of HTML files:</source>
-        <translation type="obsolete">Estensioni dei file HTML:</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="464"/>
         <source>Enter the filename extensions of HTML files that may be previewed (separated by a space)</source>
         <translation>Digita le estensioni dei nomi file HTML che verranno visti in anteprima (separati da uno spazio)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="465"/>
-        <source>Extensions of Markdown files:</source>
-        <translation type="obsolete">Estensioni dei file Markdown:</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="487"/>
         <source>Enter the filename extensions of Markdown files that may be previewed (separated by a space)</source>
         <translation>Digita le estensioni dei nomi file Markdown che verranno visti in anteprima (separati da uno spazio)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="479"/>
-        <source>Extensions of ReST files:</source>
-        <translation type="obsolete">Estensioni dei file ReSTL:</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="540"/>
         <source>Enter the filename extensions of ReStructuredText files that may be previewed (separated by a space)</source>
         <translation>Digita le estensioni dei nomi file ReStructuredTest che verranno visti in anteprima (separati da uno spazio)</translation>
@@ -12966,31 +12591,11 @@
         <translation>File delle parole personali:</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="237"/>
-        <source>Enter the filename of the personal word list</source>
-        <translation type="obsolete">Inserici il nome file per la lista di parole personali</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="272"/>
-        <source>Select the personal word list file via a file selection dialog</source>
-        <translation type="obsolete">Selezione il file personale delle parole con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="250"/>
         <source>Personal exclude list file:</source>
         <translation>Lista file esclusi personale:</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="251"/>
-        <source>Enter the filename of the personal exclude list</source>
-        <translation type="obsolete">Inserici il nome file per la lista di esclusione</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="279"/>
-        <source>Select the personal exclude list file via a file selection dialog</source>
-        <translation type="obsolete">Selezione il file personale di esclusione con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="270"/>
         <source>&lt;b&gt;Note:&lt;/b&gt; leave these entries empty to use the default</source>
         <translation>&lt;b&gt;Nota:&lt;/b&gt; lascia queste voci vuote per usare il default</translation>
@@ -13021,16 +12626,6 @@
         <translation>Inserisci il numero di linee da controllare per esecuzione. Valori altri aumentano la velocità di controllo ma diminuiscono la reattività della GUI</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.py" line="115"/>
-        <source>Select personal word list</source>
-        <translation type="obsolete">Seleziona lista di parole personale</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.py" line="129"/>
-        <source>Select personal exclude list</source>
-        <translation type="obsolete">Seleziona lista di esclusione personale</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.py" line="38"/>
         <source>Dictionary File (*.dic);;All Files (*)</source>
         <translation>File Dizionario (*.dic);;Tutti i file (*)</translation>
@@ -14446,11 +14041,6 @@
         <translation>Seleziona per usare TLS</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EmailPage.ui" line="131"/>
-        <source>Use TLS</source>
-        <translation type="obsolete">Usa TLS</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EmailPage.ui" line="156"/>
         <source>Enter the port of the mail server</source>
         <translation>Inserisci la porta del server di posta</translation>
@@ -14461,11 +14051,6 @@
         <translation>Server di posta in uscita (SMTP):</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EmailPage.ui" line="53"/>
-        <source>Outgoing mail server port:</source>
-        <translation type="obsolete">Porta server di posta in uscita:</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EmailPage.ui" line="267"/>
         <source>Press to test the login data</source>
         <translation>Premi per testare i dati di accesso</translation>
@@ -14750,16 +14335,6 @@
 <context>
     <name>EricapiConfigDialog</name>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py" line="197"/>
-        <source>Select output file</source>
-        <translation type="obsolete">Seleziona un file di output</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py" line="228"/>
-        <source>Select directory to exclude</source>
-        <translation type="obsolete">Seleziona la directory da escludere</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui" line="14"/>
         <source>Ericapi Configuration</source>
         <translation>Configurazione Ericapi</translation>
@@ -14770,11 +14345,6 @@
         <translation>Inserici un nome per il file di output</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui" line="45"/>
-        <source>Press to open a file selection dialog</source>
-        <translation type="obsolete">Premi per aprire il dialogo di selezione del file</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui" line="25"/>
         <source>Output File:</source>
         <translation>File di Output:</translation>
@@ -14835,11 +14405,6 @@
         <translation>Cancella</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui" line="222"/>
-        <source>Press to open a directory selection dialog</source>
-        <translation type="obsolete">Premi per aprire un dialogo di selezione della directory</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui" line="184"/>
         <source>List of directory basenames to be ignored</source>
         <translation>Lista di nomi base di directory da ignorare</translation>
@@ -14951,52 +14516,37 @@
     <message>
         <location filename="../Plugins/PluginEricapi.py" line="59"/>
         <source>Eric6 API File Generator</source>
-        <translation type="unfinished">Generatore file API Eric5 {6 ?}</translation>
+        <translation type="unfinished">Generatore file API Eric6</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricapi.py" line="100"/>
         <source>Generate API file (eric6_api)</source>
-        <translation type="unfinished">Genera file API (eric5_api) {6_?}</translation>
+        <translation type="unfinished">Genera file API (eric6_api)</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricapi.py" line="100"/>
         <source>Generate &amp;API file (eric6_api)</source>
-        <translation type="unfinished">Genera file &amp;API (eric5_api) {6_?}</translation>
+        <translation type="unfinished">Genera file &amp;API (eric6_api)</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricapi.py" line="104"/>
         <source>Generate an API file using eric6_api</source>
-        <translation type="unfinished">Genera un file API usando eric5_api {6_?}</translation>
+        <translation type="unfinished">Genera un file API usando eric6_api</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricapi.py" line="106"/>
         <source>&lt;b&gt;Generate API file&lt;/b&gt;&lt;p&gt;Generate an API file using eric6_api.&lt;/p&gt;</source>
-        <translation type="unfinished">&lt;b&gt;Genera file API&lt;/b&gt;&lt;p&gt;Genera un file API usando eric5_api.&lt;/p&gt; {6_?}</translation>
+        <translation type="unfinished">&lt;b&gt;Genera file API&lt;/b&gt;&lt;p&gt;Genera un file API usando eric6_api.&lt;/p&gt;</translation>
     </message>
 </context>
 <context>
     <name>EricdocConfigDialog</name>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="305"/>
-        <source>Select output directory</source>
-        <translation type="obsolete">Seleziona la directory di output</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="330"/>
-        <source>Select directory to exclude</source>
-        <translation type="obsolete">Seleziona una directory da escludere</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="53"/>
         <source>Style sheet (*.css);;All files (*)</source>
         <translation>Fogli di stile (*.css);;Tutti i file (*)</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="370"/>
-        <source>Select CSS style sheet</source>
-        <translation type="obsolete">Seleziona un foglio di stile CSS</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui" line="14"/>
         <source>Ericdoc Configuration</source>
         <translation>Configurazione Ericdoc</translation>
@@ -15012,11 +14562,6 @@
         <translation>Inserisci una directory di output</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui" line="400"/>
-        <source>Press to open a directory selection dialog</source>
-        <translation type="obsolete">Premi per aprire un dialogo di selezione della directory</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui" line="390"/>
         <source>Output Directory:</source>
         <translation>Directory di Output:</translation>
@@ -15107,11 +14652,6 @@
         <translation>Inserisci il nome di un foglio di stile CSS. Lascia vuoto per usare i colori definiti sotto.</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui" line="243"/>
-        <source>Press to open a file selection dialog</source>
-        <translation type="obsolete">Premi per aprire un dialogo si selezione dei file</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui" line="262"/>
         <source>Colours</source>
         <translation>Colori</translation>
@@ -15297,11 +14837,6 @@
         <translation>Genera i file QtHelp collection</translation>
     </message>
     <message>
-        <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="519"/>
-        <source>Select output directory for QtHelp files</source>
-        <translation type="obsolete">Seleziona la directory di destinazione per i file QtHelp</translation>
-    </message>
-    <message>
         <location filename="../Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py" line="63"/>
         <source>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body style=&quot;background-color:{BodyBgColor};color:{BodyColor}&quot;&gt;&lt;h1 style=&quot;background-color:{Level1HeaderBgColor};color:{Level1HeaderColor}&quot;&gt;Level 1 Header&lt;/h1&gt;&lt;h3 style=&quot;background-color:{Level2HeaderBgColor};color:{Level2HeaderColor}&quot;&gt;Level 2 Header&lt;/h3&gt;&lt;h2 style=&quot;background-color:{CFBgColor};color:{CFColor}&quot;&gt;Class and Function Header&lt;/h2&gt;Standard body text with &lt;a style=&quot;color:{LinkColor}&quot;&gt;some links&lt;/a&gt; embedded.&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body style=&quot;background-color:{BodyBgColor};color:{BodyColor}&quot;&gt;&lt;h1 style=&quot;background-color:{Level1HeaderBgColor};color:{Level1HeaderColor}&quot;&gt;Level 1 Header&lt;/h1&gt;&lt;h3 style=&quot;background-color:{Level2HeaderBgColor};color:{Level2HeaderColor}&quot;&gt;Level 2 Header&lt;/h3&gt;&lt;h2 style=&quot;background-color:{CFBgColor};color:{CFColor}&quot;&gt;Class and Function Header&lt;/h2&gt;Standard body text with &lt;a style=&quot;color:{LinkColor}&quot;&gt;some links&lt;/a&gt; embedded.&lt;/body&gt;&lt;/html&gt;</translation>
@@ -15380,27 +14915,27 @@
     <message>
         <location filename="../Plugins/PluginEricdoc.py" line="59"/>
         <source>Eric6 Documentation Generator</source>
-        <translation type="unfinished">Generatore di documentazione di Eric5 {6 ?}</translation>
+        <translation type="unfinished">Generatore di documentazione di Eric6</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricdoc.py" line="135"/>
         <source>Generate documentation (eric6_doc)</source>
-        <translation type="unfinished">Genera documentazione (eric5_doc) {6_?}</translation>
+        <translation type="unfinished">Genera documentazione (eric6_doc)</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricdoc.py" line="135"/>
         <source>Generate &amp;documentation (eric6_doc)</source>
-        <translation type="unfinished">Genera &amp;documentazione (eric5_doc) {6_?}</translation>
+        <translation type="unfinished">Genera &amp;documentazione (eric6_doc)</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricdoc.py" line="139"/>
         <source>Generate API documentation using eric6_doc</source>
-        <translation type="unfinished">Genera la documentazione delle API usando eric5_doc {6_?}</translation>
+        <translation type="unfinished">Genera la documentazione delle API usando eric6_doc</translation>
     </message>
     <message>
         <location filename="../Plugins/PluginEricdoc.py" line="141"/>
         <source>&lt;b&gt;Generate documentation&lt;/b&gt;&lt;p&gt;Generate API documentation using eric6_doc.&lt;/p&gt;</source>
-        <translation type="unfinished">&lt;b&gt;Genera documentazione&lt;/b&gt;&lt;p&gt;Genera la documentazione delle API usando eric5_doc.&lt;/p&gt; {6_?}</translation>
+        <translation type="unfinished">&lt;b&gt;Genera documentazione&lt;/b&gt;&lt;p&gt;Genera la documentazione delle API usando eric6_doc.&lt;/p&gt;</translation>
     </message>
 </context>
 <context>
@@ -15585,19 +15120,6 @@
     </message>
 </context>
 <context>
-    <name>ExporterBase</name>
-    <message>
-        <location filename="../QScintilla/Exporters/ExporterBase.py" line="58"/>
-        <source>Export source</source>
-        <translation type="obsolete">Esporta sorgenti</translation>
-    </message>
-    <message>
-        <location filename="../QScintilla/Exporters/ExporterBase.py" line="58"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; esiste già. Sovrascriverlo ?&lt;/p&gt;</translation>
-    </message>
-</context>
-<context>
     <name>ExporterHTML</name>
     <message>
         <location filename="../QScintilla/Exporters/ExporterHTML.py" line="505"/>
@@ -16479,11 +16001,6 @@
 <context>
     <name>FindFileDialog</name>
     <message>
-        <location filename="../UI/FindFileDialog.py" line="553"/>
-        <source>Select directory</source>
-        <translation type="obsolete">Seleziona una directory</translation>
-    </message>
-    <message>
         <location filename="../UI/FindFileDialog.ui" line="14"/>
         <source>Find in Files</source>
         <translation>Cerca nei file</translation>
@@ -16559,11 +16076,6 @@
         <translation>Insersci la directory dove cercare</translation>
     </message>
     <message>
-        <location filename="../UI/FindFileDialog.ui" line="288"/>
-        <source>Select the directory via a directory selection dialog</source>
-        <translation type="obsolete">Seleziona la directory con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../UI/FindFileDialog.ui" line="90"/>
         <source>Select to match case sensitive</source>
         <translation>Seleziona per confrontare case sensitive</translation>
@@ -16799,11 +16311,6 @@
         <translation>Inserisci la directory nella quale deve essere cercato</translation>
     </message>
     <message>
-        <location filename="../UI/FindFileNameDialog.ui" line="86"/>
-        <source>Press to select the directory, the file should be searched in</source>
-        <translation type="obsolete">Inserisci per selezionare la directory nella quale deve essere cercato</translation>
-    </message>
-    <message>
         <location filename="../UI/FindFileNameDialog.ui" line="99"/>
         <source>Select to search in the project path</source>
         <translation>Seleziona per cercare nel percorso del progetto</translation>
@@ -16854,11 +16361,6 @@
         <translation>Premi per fermare la ricerca</translation>
     </message>
     <message>
-        <location filename="../UI/FindFileNameDialog.py" line="205"/>
-        <source>Select search directory</source>
-        <translation type="obsolete">Seleziona directory di ricerca</translation>
-    </message>
-    <message>
         <location filename="../UI/FindFileNameDialog.py" line="55"/>
         <source>Stop</source>
         <translation>Ferma</translation>
@@ -17693,16 +17195,6 @@
         <translation>Inserisci il nome del foglio di stile dell&apos;utente</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpAppearancePage.ui" line="182"/>
-        <source>Select the user style sheet via a file selection dialog</source>
-        <translation type="obsolete">Seleziona il file di stile dell&apos;utente con un dialogo di selezione</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpAppearancePage.py" line="137"/>
-        <source>Select Style Sheet</source>
-        <translation type="obsolete">Seleziona foglio di stile</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpAppearancePage.ui" line="98"/>
         <source>Colours</source>
         <translation>Colori</translation>
@@ -17747,8 +17239,8 @@
     <name>HelpBrowser</name>
     <message>
         <location filename="../Helpviewer/HelpBrowserWV.py" line="1219"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
-        <translation>Apri link in una Nuova Scheda	Ctrl+LMB</translation>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Apri link in una Nuova Scheda<byte value="x9"/>Ctrl+LMB</translation>
     </message>
     <message>
         <location filename="../Helpviewer/HelpBrowserWV.py" line="745"/>
@@ -18068,7 +17560,7 @@
     <message>
         <location filename="../Helpviewer/HelpBrowserWV.py" line="2607"/>
         <source>eric6 Web Browser</source>
-        <translation type="unfinished">Web Browser di eric5 {6 ?}</translation>
+        <translation type="unfinished">Web Browser di eric6</translation>
     </message>
     <message>
         <location filename="../Helpviewer/HelpBrowserWV.py" line="2607"/>
@@ -18255,11 +17747,6 @@
         <translation>Documentazione Qt4</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="126"/>
-        <source>Press to select the Qt4 documentation directory via a dialog</source>
-        <translation type="obsolete">Premi per selezionare la directory della documentazione di Qt4 con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="157"/>
         <source>Enter the Qt4 documentation directory</source>
         <translation>Inserisci la directory della documentazione di Qt4</translation>
@@ -18295,11 +17782,6 @@
         <translation>Documentazione PySide</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="258"/>
-        <source>Press to select the PySide documentation directory via a dialog</source>
-        <translation type="obsolete">Premi per selezionare la directory della documentazione PySide con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="297"/>
         <source>Enter the PySide documentation directory</source>
         <translation>Inserisci la directory della documentazione PySide</translation>
@@ -18315,16 +17797,6 @@
         <translation>HTML Files (*.html *.htm);;All Files (*)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="145"/>
-        <source>Select Qt4 documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione di Qt4</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="201"/>
-        <source>Select PySide documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione di PySide</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="42"/>
         <source>HTML Files (*.html *.htm);;Compressed Help Files (*.chm);;All Files (*)</source>
         <translation>File HTML (*.html *.htm);;File HTML Compressi (*.chm);;All Files (*)</translation>
@@ -18335,11 +17807,6 @@
         <translation>Documentazione Python 2</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="60"/>
-        <source>Press to select the Python 2 documentation directory via a dialog</source>
-        <translation type="obsolete">Premi per selezionare la directory di documentazione del Python 2 con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="87"/>
         <source>Enter the Python 2 documentation directory</source>
         <translation>Inserisci la directory di documentazione di Python 2</translation>
@@ -18355,11 +17822,6 @@
         <translation>Documentazione Python 3</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="93"/>
-        <source>Press to select the Python 3 documentation directory via a dialog</source>
-        <translation type="obsolete">Premi per selezionare la directory di documentazione del Python 3 con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="122"/>
         <source>Enter the Python 3 documentation directory</source>
         <translation>Inserisci la directory di documentazione di Python 3</translation>
@@ -18370,26 +17832,11 @@
         <translation>&lt;b&gt;Nota&lt;/b&gt;: Lascia vuoto per usare la variabile d&apos;ambiente PYTHON3DOCDIR, se impostata.</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="111"/>
-        <source>Select Python 2 documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione del Python 2</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="128"/>
-        <source>Select Python 3 documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione del Python 3</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="177"/>
         <source>Qt5 Documentation</source>
         <translation>Documentazione Qt5</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="159"/>
-        <source>Press to select the Qt5 documentation directory via a dialog</source>
-        <translation type="obsolete">Premere per selezionare la cartella della documentazione di Qt5 con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="192"/>
         <source>Enter the Qt5 documentation directory</source>
         <translation>Inserisci la cartella della documentazione di Qt5</translation>
@@ -18400,21 +17847,11 @@
         <translation>&lt;b&gt;Nota&lt;/b&gt;: Lasciare vuoto per usare la variabile d&apos;ambiente QT4DOCDIR, se impostata.</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="159"/>
-        <source>Select Qt5 documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione di Qt5</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="247"/>
         <source>PyQt5 Documentation</source>
         <translation>Documentazione PyQt5</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="225"/>
-        <source>Press to select the PyQt5 documentation directory via a dialog</source>
-        <translation type="obsolete">Premi per selezionare la cartella della documentazione di PyQt5 con una finestra di dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="262"/>
         <source>Enter the PyQt5 documentation directory</source>
         <translation>Inserisci la cartella di documentazione di PyQt5</translation>
@@ -18425,11 +17862,6 @@
         <translation>&lt;b&gt;Nota&lt;/b&gt;: Lascia vuoto per usare la variabile d&apos;ambiente PYQT4DOCDIR, se impostata.</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="187"/>
-        <source>Select PyQt5 documentation entry</source>
-        <translation type="obsolete">Seleziona l&apos;elemento della documentazione di PyQt5</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="37"/>
         <source>eric API Documentation</source>
         <translation type="unfinished"></translation>
@@ -18569,21 +18001,11 @@
         <translation>Inserisci il nome del foglio di stile</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpInterfacePage.ui" line="67"/>
-        <source>Select the style sheet file via a file selection dialog</source>
-        <translation type="obsolete">Seleziona il file di stile con una finestra di dialogo file</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpInterfacePage.py" line="62"/>
         <source>System</source>
         <translation>Sistema</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpInterfacePage.py" line="78"/>
-        <source>Select style sheet file</source>
-        <translation type="obsolete">Seleziona il foglio di stile</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpInterfacePage.py" line="36"/>
         <source>Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;All files (*)</source>
         <translation>foglii di stile Qt  (*.qss);;fogli di stile a cascata (*.css);;Tutti i file (*)</translation>
@@ -18796,7 +18218,7 @@
     <message>
         <location filename="../Helpviewer/HelpTabWidget.py" line="668"/>
         <source>eric6 Web Browser</source>
-        <translation type="unfinished">Web Browser di eric5 {6 ?}</translation>
+        <translation type="unfinished">Web Browser di eric6</translation>
     </message>
     <message>
         <location filename="../Helpviewer/HelpTabWidget.py" line="614"/>
@@ -18874,11 +18296,6 @@
         <translation>Inserisci il visualizzatore personalizzato da utilizzare</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpViewersPage.ui" line="58"/>
-        <source>Press to select the custom viewer via a file selection dialog</source>
-        <translation type="obsolete">Premi per selezione il visualizzatore personalizzato con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpViewersPage.ui" line="76"/>
         <source>Select to use a custom viewer</source>
         <translation>Premi per usare un visualizzatore personalizzato</translation>
@@ -18899,26 +18316,6 @@
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpViewersPage.py" line="84"/>
-        <source>Select Custom Viewer</source>
-        <translation type="obsolete">Seleziona visualizzatore personalizzato</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpViewersPage.py" line="98"/>
-        <source>Select Web-Browser</source>
-        <translation type="obsolete">Seleziona Browser Web</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpViewersPage.py" line="112"/>
-        <source>Select PDF-Viewer</source>
-        <translation type="obsolete">Seleziona visualizzatore PDF</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/HelpViewersPage.py" line="126"/>
-        <source>Select CHM-Viewer</source>
-        <translation type="obsolete">Seleziona visualizzatore CHM</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpViewersPage.ui" line="17"/>
         <source>&lt;b&gt;Configure help viewers&lt;/b&gt;</source>
         <translation>Configura i visualizzatori dell&apos;Help</translation>
@@ -19095,11 +18492,6 @@
         <translation>Seleziona per abilitare plugin nelle pagine web</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/HelpWebBrowserPage.ui" line="260"/>
-        <source>Enable Plugins</source>
-        <translation type="obsolete">Abilita Plugins</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/HelpWebBrowserPage.ui" line="456"/>
         <source>Browser Cache</source>
         <translation>Cache del Browser</translation>
@@ -20469,11 +19861,6 @@
         <translation>Pulisci dati privati</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/HelpWindow.py" line="1350"/>
-        <source>&amp;Clear private data</source>
-        <translation type="obsolete">Pulis&amp;ci dati privati</translation>
-    </message>
-    <message>
         <location filename="../Helpviewer/HelpWindow.py" line="1359"/>
         <source>&lt;b&gt;Clear private data&lt;/b&gt;&lt;p&gt;Clears the private data like browsing history, search history or the favicons database.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Pulisci dati privati&lt;/b&gt;&lt;p&gt;Pulische i dati privati come la cronologia di navigazione, cronologia ricerche o il database delle favicon.&lt;/p&gt;</translation>
@@ -20941,11 +20328,6 @@
         <translation>IBM</translation>
     </message>
     <message>
-        <location filename="../Helpviewer/HelpWindow.py" line="3498"/>
-        <source>Default Encoding</source>
-        <translation type="obsolete">Encoding di default</translation>
-    </message>
-    <message>
         <location filename="../Helpviewer/HelpWindow.py" line="1488"/>
         <source>Downloads</source>
         <translation>Downloads</translation>
@@ -21263,7 +20645,7 @@
     <message>
         <location filename="../Helpviewer/HelpWindow.py" line="2912"/>
         <source>eric6 Web Browser</source>
-        <translation type="unfinished">Web Browser di eric5 {6 ?}</translation>
+        <translation type="unfinished">Web Browser di eric6</translation>
     </message>
     <message>
         <location filename="../Helpviewer/HelpWindow.py" line="703"/>
@@ -21993,16 +21375,6 @@
         <translation type="unfinished">Ctrl+R</translation>
     </message>
     <message>
-        <location filename="../HexEdit/HexEditMainWindow.py" line="493"/>
-        <source>Replace some text</source>
-        <translation type="obsolete">Sostituisci del testo</translation>
-    </message>
-    <message>
-        <location filename="../HexEdit/HexEditMainWindow.py" line="494"/>
-        <source>&lt;b&gt;Replace&lt;/b&gt;&lt;p&gt;Search for some text in the current editor and replace it. A dialog is shown to enter the searchtext, the replacement text and options for the search and replace.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Sostituisci&lt;/b&gt;&lt;p&gt;Cerca per del testo nell&apos;editor corrente e lo sostituisce. Viene mostrato in dialogo per inserire il testo cercato, il testo sostituto e le opzioni per la ricerca e la sostituzione.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../HexEdit/HexEditMainWindow.py" line="552"/>
         <source>About</source>
         <translation type="unfinished">About</translation>
@@ -22724,21 +22096,11 @@
 <context>
     <name>Hg</name>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="285"/>
-        <source>The hg process finished with the exit code {0}</source>
-        <translation type="obsolete">Il processo hg è terminato con codice di uscita {0}</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="1790"/>
         <source>The hg process did not finish within 30s.</source>
         <translation>Il processo hg non è finito entro i 30s.</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="292"/>
-        <source>Could not start the hg executable.</source>
-        <translation type="obsolete">Non posso avviare l&apos;eseguibile hg.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="285"/>
         <source>Create project repository</source>
         <translation>Crea il repository del progetto</translation>
@@ -24464,18 +23826,6 @@
         <translation>MNercurial Copy</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui" line="64"/>
-        <source>Press to open a selection dialog</source>
-        <translation type="obsolete">Premi per aprire un dialogo di selezione</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui" line="67"/>
-        <source>&lt;b&gt;Target directory&lt;/b&gt;
-&lt;p&gt;Select the target name for the operation via a selection dialog.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Target directory&lt;/b&gt;
-&lt;p&gt;Seleziona il nome per il target per l&apos;operazione con un dialogo.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui" line="23"/>
         <source>Source:</source>
         <translation>Sorgente:</translation>
@@ -24518,11 +23868,6 @@
         <translation>Mercurial Move</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py" line="89"/>
-        <source>Select target</source>
-        <translation type="obsolete">Seleziona target</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui" line="63"/>
         <source>&lt;b&gt;Target name&lt;/b&gt;
 &lt;p&gt;Enter the new name in this field. The target must be the new name or an absolute path.&lt;/p&gt;</source>
@@ -24620,46 +23965,6 @@
         <translation>Errori</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="89"/>
-        <source>Input</source>
-        <translation type="obsolete">Input</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="111"/>
-        <source>Press to send the input to the hg process</source>
-        <translation type="obsolete">Premi per spedire l&apos;input al processo hg</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="114"/>
-        <source>&amp;Send</source>
-        <translation type="obsolete">&amp;Spedisci</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="117"/>
-        <source>Alt+S</source>
-        <translation type="obsolete">Alt+S</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="124"/>
-        <source>Enter data to be sent to the hg process</source>
-        <translation type="obsolete">Inserisci i dati da inviare al processo hg</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="131"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation type="obsolete">Seleziona per impostare il campo di input in modalità password</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="134"/>
-        <source>&amp;Password Mode</source>
-        <translation type="obsolete">Modo &amp;Password</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui" line="137"/>
-        <source>Alt+P</source>
-        <translation type="obsolete">Alt+P</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py" line="107"/>
         <source>Process Generation Error</source>
         <translation>Errore Generazione Processo</translation>
@@ -25554,11 +24859,6 @@
         <translation>Messaggio</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="207"/>
-        <source>Enter the regular expression to filter on</source>
-        <translation type="obsolete">Inserisci l&apos;espressione regolare su cui filtrare</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="206"/>
         <source>Branch</source>
         <translation>Branch</translation>
@@ -25614,16 +24914,6 @@
         <translation>Ferma su Copy/Move</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="398"/>
-        <source>Press to compare two revisions</source>
-        <translation type="obsolete">Premi per confrontare due revisioni</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="401"/>
-        <source>&amp;Compare Revisions</source>
-        <translation type="obsolete">&amp;Confronta revisioni</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="506"/>
         <source>Errors</source>
         <translation>Errori</translation>
@@ -25719,26 +25009,6 @@
         <translation>Graph</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="378"/>
-        <source>Press to generate a diff to the first parent revision</source>
-        <translation type="obsolete">Premi per generare un diff con la revisione precedente</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="381"/>
-        <source>Diff to Parent &amp;1</source>
-        <translation type="obsolete">Diff con il predecessore &amp;1</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="388"/>
-        <source>Press to generate a diff to the second parent revision</source>
-        <translation type="obsolete">Premi per generare un diff con la seconda revisione precedente</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="391"/>
-        <source>Diff to Parent &amp;2</source>
-        <translation type="obsolete">Diff con il predecessore &amp;2</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui" line="112"/>
         <source>Branch:</source>
         <translation>Branch:</translation>
@@ -25800,12 +25070,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2075"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2076"/>
         <source>Copy Changesets</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2391"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2392"/>
         <source>The project should be reread. Do this now?</source>
         <translation type="unfinished">Il progetto deve essere riletto. Farlo ora ?</translation>
     </message>
@@ -25830,7 +25100,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2127"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2128"/>
         <source>Switch</source>
         <translation type="unfinished"></translation>
     </message>
@@ -25895,12 +25165,12 @@
         <translation type="unfinished">&lt;tr&gt;&lt;td&gt;&lt;b&gt;Segnalibri&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2531"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2532"/>
         <source>Find Commit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2531"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2532"/>
         <source>&apos;{0}&apos; was not found.</source>
         <translation type="unfinished">&apos;{0}&apos; non è stato trovato.</translation>
     </message>
@@ -25925,7 +25195,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2258"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2259"/>
         <source>Pull Changes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -25955,12 +25225,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2222"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2223"/>
         <source>Fetch Changes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2301"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2302"/>
         <source>Strip Changesets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -25995,27 +25265,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2148"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2149"/>
         <source>Define Bookmark</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2148"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2149"/>
         <source>Enter bookmark name for changeset &quot;{0}&quot;:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2170"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2171"/>
         <source>Move Bookmark</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2170"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2171"/>
         <source>Select the bookmark to be moved  to changeset &quot;{0}&quot;:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2113"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2114"/>
         <source>Select bookmark to switch to (leave empty to use revision):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -26076,7 +25346,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2391"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2392"/>
         <source>Apply Changegroup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -26136,42 +25406,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2575"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2576"/>
         <source>Differences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2585"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2586"/>
         <source>Differences to Parent {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2601"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2602"/>
         <source>Diff to Parent {0}{1}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2626"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2627"/>
         <source>There is no difference.</source>
         <translation type="unfinished">Non ci sono differenze.</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2769"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2770"/>
         <source>Save Diff</source>
         <translation type="unfinished">Salva Diff</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2736"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2737"/>
         <source>Patch Files (*.diff)</source>
         <translation type="unfinished">File Patch (*.diff)</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2753"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2754"/>
         <source>&lt;p&gt;The patch file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Il file  patch &lt;b&gt;{0}&lt;/b&gt; esiste già.Sovrascriverlo ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2769"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2770"/>
         <source>&lt;p&gt;The patch file &lt;b&gt;{0}&lt;/b&gt; could not be saved.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; non può essere salvato.&lt;br /&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
@@ -26181,181 +25451,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2574"/>
+        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py" line="2575"/>
         <source>Generating differences ...</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>HgLogDialog</name>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="14"/>
-        <source>Mercurial Log</source>
-        <translation type="obsolete">Mercurial Log</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="26"/>
-        <source>Log</source>
-        <translation type="obsolete">Log</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="32"/>
-        <source>&lt;b&gt;Mercurial Log&lt;/b&gt;&lt;p&gt;This shows the output of the hg log command. By clicking on the links you may show the difference between revisions.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Log Mercurial&lt;/b&gt;&lt;p&gt;Mostra l&apos;output del comando hg log.Premendo sul link puoi vedere le differenze tra le versioni.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="61"/>
-        <source>Errors</source>
-        <translation type="obsolete">Errori</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="67"/>
-        <source>&lt;b&gt;Mercurial log errors&lt;/b&gt;&lt;p&gt;This shows possible error messages of the hg log command.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Log errori Mercurial&lt;/b&gt;&lt;p&gt;Mostra gli eventuali messaggi di errore del comando hg log.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="83"/>
-        <source>Input</source>
-        <translation type="obsolete">Input</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="105"/>
-        <source>Press to send the input to the hg process</source>
-        <translation type="obsolete">Premi per spedire l&apos;input al processo hg</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="108"/>
-        <source>&amp;Send</source>
-        <translation type="obsolete">&amp;Spedisci</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="111"/>
-        <source>Alt+S</source>
-        <translation type="obsolete">Alt+S</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="118"/>
-        <source>Enter data to be sent to the hg process</source>
-        <translation type="obsolete">Inserisci i dati da inviare al processo hg</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="125"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation type="obsolete">Seleziona per impostare il campo di input in modalità password</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="128"/>
-        <source>&amp;Password Mode</source>
-        <translation type="obsolete">Modo &amp;Password</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui" line="131"/>
-        <source>Alt+P</source>
-        <translation type="obsolete">Alt+P</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="64"/>
-        <source>&lt;b&gt;Processing your request, please wait...&lt;/b&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Esecuzione in corso, attendere prego...&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="74"/>
-        <source>Revision</source>
-        <translation type="obsolete">Revisione</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="215"/>
-        <source>Process Generation Error</source>
-        <translation type="obsolete">Errore Generazione Processo</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="215"/>
-        <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
-        <translation type="obsolete">Il processo {0}  non può essere avviato. Assicurarsi che sia nel path.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="306"/>
-        <source>No log available for &apos;{0}&apos;</source>
-        <translation type="obsolete">Nessun log disponibile per &apos;{0}&apos;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="344"/>
-        <source>diff to {0}</source>
-        <translation type="obsolete">diff su {0}</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="358"/>
-        <source>Tags: {0}&lt;br /&gt;
-</source>
-        <translation type="obsolete">Tags: {0}&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="364"/>
-        <source>Parents: {0}&lt;br /&gt;
-</source>
-        <translation type="obsolete">Parents: {0}&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="367"/>
-        <source>&lt;i&gt;Author: {0}&lt;/i&gt;&lt;br /&gt;
-</source>
-        <translation type="obsolete">&lt;i&gt;Autore: {0}&lt;/i&gt;&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="371"/>
-        <source>&lt;i&gt;Date: {0}, {1}&lt;/i&gt;&lt;br /&gt;
-</source>
-        <translation type="obsolete">&lt;i&gt;Data: {0}&lt;/i&gt;&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="387"/>
-        <source>Added {0}&lt;br /&gt;
-</source>
-        <translation type="obsolete">Aggiunti: {0}&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="393"/>
-        <source>Modified {0}&lt;br /&gt;
-</source>
-        <translation type="obsolete">Modificati {0}&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="399"/>
-        <source>Deleted {0}&lt;br /&gt;
-</source>
-        <translation type="obsolete">Cancellati {0}&lt;br /&gt;
-</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="270"/>
-        <source>The hg process did not finish within 30s.</source>
-        <translation type="obsolete">Il processo hg non è finito entro i 30s.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="273"/>
-        <source>Could not start the hg executable.</source>
-        <translation type="obsolete">Non posso avviare l&apos;eseguibile hg.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="276"/>
-        <source>Mercurial Error</source>
-        <translation type="obsolete">Mercurial Error</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py" line="382"/>
-        <source>Added {0} (copied from {1})&lt;br /&gt;
-</source>
-        <translation type="obsolete">Aggiunti {0} (copiati da {1})&lt;br /&gt;
-</translation>
-    </message>
-</context>
-<context>
     <name>HgMergeDialog</name>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.ui" line="14"/>
@@ -26563,26 +25664,11 @@
 &lt;p&gt;Per repository remoti l&apos;URL deve contenere il nome dell&apos;host&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="28"/>
-        <source>&amp;Protocol:</source>
-        <translation type="obsolete">&amp;Protocollo:</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="38"/>
-        <source>Select the protocol to access the repository</source>
-        <translation type="obsolete">Seleziona il protocollo per l&apos;accesso al repository</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="122"/>
         <source>&amp;URL:</source>
         <translation>&amp;URL:</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="62"/>
-        <source>Select the repository url via a directory selection dialog</source>
-        <translation type="obsolete">Seleziona l&apos;url del repository con un dialogo</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="54"/>
         <source>&amp;Revision:</source>
         <translation>&amp;Revisione:</translation>
@@ -26612,16 +25698,6 @@
 a messo in questa directory.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py" line="98"/>
-        <source>Select Repository-Directory</source>
-        <translation type="obsolete">Seleziona la directory del Repository</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py" line="113"/>
-        <source>Select Project Directory</source>
-        <translation type="obsolete">Seleziona la directory del progetto</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui" line="95"/>
         <source>Download all versions of all large files</source>
         <translation type="unfinished"></translation>
@@ -26650,15 +25726,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.ui" line="17"/>
-        <source>&lt;b&gt;Repository Infos Dialog&lt;/b&gt;
-&lt;p&gt;Enter the various infos into the entry fields. These values are used to generate a new project in the repository. If the checkbox is selected, the URL must end in the project name. A directory tree with project/tags, project/branches and project/trunk will be generated in the repository. If the checkbox is not selected, the URL must contain the complete path in the repository.&lt;/p&gt;
-&lt;p&gt;For remote repositories the URL must contain the hostname.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Dialogo informazioni repository&lt;/b&gt;
-&lt;p&gt;Inserisci le informazioni in questo campo. Questi valori sono usato per generare un nuovo progetto nel repository. Se il checkbox è selezionato, l&apos;URL deve finire con il nome del progetto. Un albero di directory con progetto/tags, progetto/banches e progetto/trunk verrà generato nel repositoru. Se il checkbox non è selezioanto, l&apos;URL deve contenere il percorso completo nel repository.&lt;/p&gt;
-&lt;p&gt;Per repository remoti, l&apos;URL deve contenere l&apos;hostname.&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.ui" line="29"/>
         <source>Commit &amp;Message:</source>
         <translation>&amp;Messaggio di commit:</translation>
@@ -26763,11 +25830,6 @@
         <translation>Rimuovi dal repository (e dal disco)</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py" line="548"/>
-        <source>Show log</source>
-        <translation type="obsolete">Mostra log</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py" line="544"/>
         <source>Show log browser</source>
         <translation>Mostra il browser dei log</translation>
@@ -27027,11 +26089,6 @@
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py" line="271"/>
-        <source>&lt;b&gt;Show log&lt;/b&gt;&lt;p&gt;This shows the log of the local project.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;b&gt;Mostra log&lt;/b&gt;&lt;p&gt;Mostra i log del progetto locale.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py" line="271"/>
         <source>&lt;b&gt;Show log browser&lt;/b&gt;&lt;p&gt;This shows a dialog to browse the log of the local project. A limited number of entries is shown first. More can be retrieved later on.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Mostra borwser log&lt;/b&gt;&lt;p&gt;Mostra un dialogo per navigare i log del progetto locale. Inizialmente viene mostrato un numero limitato di elementi. Altri possono essere scaricati in seguito.&lt;/p&gt;</translation>
     </message>
@@ -29697,16 +28754,6 @@
         <translation>Premi per aggiornare lo stato</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py" line="113"/>
-        <source>Commit changes to repository...</source>
-        <translation type="obsolete">Committa le modifica nel repository...</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py" line="122"/>
-        <source>Add to repository</source>
-        <translation type="obsolete">Aggiungi al repository</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py" line="142"/>
         <source>Commit the selected changes</source>
         <translation type="unfinished"></translation>
@@ -29807,11 +28854,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.ui" line="136"/>
-        <source>&amp;Add<