Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).

Sat, 09 Jan 2010 19:43:36 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 09 Jan 2010 19:43:36 +0000
changeset 42
23b45a742e17
parent 41
572a009369f0
child 43
2fdc635b106a

Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
DebugClients/Python3/DebugClientBase.py file | annotate | diff | comparison | revisions
Debugger/VariablesViewer.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/eric5.E4XML.XMLHandlerBase.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Project.CreateDialogCodeDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.UI.EmailDialog.html file | annotate | diff | comparison | revisions
E4XML/XMLHandlerBase.py file | annotate | diff | comparison | revisions
E4XML/XMLWriterBase.py file | annotate | diff | comparison | revisions
Examples/rhallo.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockDialog.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockManager.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockSubscription.py file | annotate | diff | comparison | revisions
Helpviewer/DownloadDialog.py file | annotate | diff | comparison | revisions
Helpviewer/DownloadDialog.ui file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchEngine.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordManager.py file | annotate | diff | comparison | revisions
IconEditor/IconEditorWindow.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnLogDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnStatusMonitorThread.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/subversion.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerRubyPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
Project/CreateDialogCodeDialog.py file | annotate | diff | comparison | revisions
Project/DebuggerPropertiesDialog.ui file | annotate | diff | comparison | revisions
Project/PropertiesDialog.py file | annotate | diff | comparison | revisions
Project/TranslationPropertiesDialog.ui file | annotate | diff | comparison | revisions
QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlBrowserWidget.ui file | annotate | diff | comparison | revisions
Tools/UIPreviewer.py file | annotate | diff | comparison | revisions
UI/CompareDialog.py file | annotate | diff | comparison | revisions
UI/DiffDialog.py file | annotate | diff | comparison | revisions
UI/EmailDialog.py file | annotate | diff | comparison | revisions
UI/FindFileDialog.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Fri Jan 08 19:14:19 2010 +0000
+++ b/APIs/Python3/eric5.api	Sat Jan 09 19:43:36 2010 +0000
@@ -1444,12 +1444,10 @@
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endFloat?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endInt?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endList?4()
-eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endLong?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endNone?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endPickle?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endString?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endTuple?4()
-eric5.E4XML.XMLHandlerBase.XMLHandlerBase.endUnicode?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.startDictionary?4(attrs)
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.startDocument?4()
 eric5.E4XML.XMLHandlerBase.XMLHandlerBase.startElement?4(name, attrs)
@@ -1570,7 +1568,7 @@
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.abort?4()
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.readData?4(maxlen)
 eric5.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply?1(request, rule, parent = None)
-eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addCustomRule?4(rule)
+eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addCustomRule?4(rule = "")
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.model?4()
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.setCurrentIndex?4(index)
 eric5.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog?1(parent = None)
@@ -4953,6 +4951,7 @@
 eric5.UI.EmailDialog.EmailDialog.on_sendButton_clicked?4()
 eric5.UI.EmailDialog.EmailDialog.on_subject_textChanged?4(txt)
 eric5.UI.EmailDialog.EmailDialog?1(mode = "bug", parent = None)
+eric5.UI.EmailDialog._encode_base64?5(msg)
 eric5.UI.FindFileDialog.FindFileDialog.endRole?7
 eric5.UI.FindFileDialog.FindFileDialog.lineRole?7
 eric5.UI.FindFileDialog.FindFileDialog.on_buttonBox_clicked?4(button)
--- a/DebugClients/Python3/DebugClientBase.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/DebugClients/Python3/DebugClientBase.py	Sat Jan 09 19:43:36 2010 +0000
@@ -205,7 +205,7 @@
         
         self.compile_command = codeop.CommandCompiler()
         
-        self.coding_re = re.compile(r"coding[:=]\s*([-\w_.]+)")
+        self.coding_re = re.compile(br"coding[:=]\s*([-\w_.]+)")
         self.defaultCoding = 'utf-8'
         self.__coding = self.defaultCoding
         self.noencoding = False
@@ -241,7 +241,7 @@
             for l in text.splitlines():
                 m = self.coding_re.search(l)
                 if m:
-                    self.__coding = m.group(1)
+                    self.__coding = m.group(1).decode()
                     return
             self.__coding = default
 
--- a/Debugger/VariablesViewer.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Debugger/VariablesViewer.py	Sat Jan 09 19:43:36 2010 +0000
@@ -522,7 +522,6 @@
 ##        @param s the string to be converted (string)
 ##        @return unicode representation of s (unicode object)
 ##        """
-##        # TODO: remove me
 ##        if isinstance(s, type("")):
 ##            return s
 ##        try:
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Fri Jan 08 19:14:19 2010 +0000
+++ b/Documentation/Help/source.qhp	Sat Jan 09 19:43:36 2010 +0000
@@ -2966,12 +2966,10 @@
       <keyword name="XMLHandlerBase.endFloat" id="XMLHandlerBase.endFloat" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endFloat" />
       <keyword name="XMLHandlerBase.endInt" id="XMLHandlerBase.endInt" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endInt" />
       <keyword name="XMLHandlerBase.endList" id="XMLHandlerBase.endList" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endList" />
-      <keyword name="XMLHandlerBase.endLong" id="XMLHandlerBase.endLong" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endLong" />
       <keyword name="XMLHandlerBase.endNone" id="XMLHandlerBase.endNone" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endNone" />
       <keyword name="XMLHandlerBase.endPickle" id="XMLHandlerBase.endPickle" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endPickle" />
       <keyword name="XMLHandlerBase.endString" id="XMLHandlerBase.endString" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endString" />
       <keyword name="XMLHandlerBase.endTuple" id="XMLHandlerBase.endTuple" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endTuple" />
-      <keyword name="XMLHandlerBase.endUnicode" id="XMLHandlerBase.endUnicode" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.endUnicode" />
       <keyword name="XMLHandlerBase.startDictionary" id="XMLHandlerBase.startDictionary" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.startDictionary" />
       <keyword name="XMLHandlerBase.startDocument" id="XMLHandlerBase.startDocument" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.startDocument" />
       <keyword name="XMLHandlerBase.startElement" id="XMLHandlerBase.startElement" ref="eric5.E4XML.XMLHandlerBase.html#XMLHandlerBase.startElement" />
@@ -3697,6 +3695,7 @@
       <keyword name="BrowserSysPathItem (Constructor)" id="BrowserSysPathItem (Constructor)" ref="eric5.UI.BrowserModel.html#BrowserSysPathItem.__init__" />
       <keyword name="EmailDialog (Module)" id="EmailDialog (Module)" ref="eric5.UI.EmailDialog.html" />
       <keyword name="EmailDialog" id="EmailDialog" ref="eric5.UI.EmailDialog.html#EmailDialog" />
+      <keyword name="_encode_base64" id="_encode_base64" ref="eric5.UI.EmailDialog.html#_encode_base64" />
       <keyword name="EmailDialog (Constructor)" id="EmailDialog (Constructor)" ref="eric5.UI.EmailDialog.html#EmailDialog.__init__" />
       <keyword name="EmailDialog.__createMultipartMail" id="EmailDialog.__createMultipartMail" ref="eric5.UI.EmailDialog.html#EmailDialog.__createMultipartMail" />
       <keyword name="EmailDialog.__createSimpleMail" id="EmailDialog.__createSimpleMail" ref="eric5.UI.EmailDialog.html#EmailDialog.__createSimpleMail" />
@@ -4536,6 +4535,7 @@
       <keyword name="CreateDialogCodeDialog.__className" id="CreateDialogCodeDialog.__className" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__className" />
       <keyword name="CreateDialogCodeDialog.__generateCode" id="CreateDialogCodeDialog.__generateCode" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__generateCode" />
       <keyword name="CreateDialogCodeDialog.__generatePythonCode" id="CreateDialogCodeDialog.__generatePythonCode" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__generatePythonCode" />
+      <keyword name="CreateDialogCodeDialog.__mapType" id="CreateDialogCodeDialog.__mapType" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__mapType" />
       <keyword name="CreateDialogCodeDialog.__objectName" id="CreateDialogCodeDialog.__objectName" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__objectName" />
       <keyword name="CreateDialogCodeDialog.__signatures" id="CreateDialogCodeDialog.__signatures" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__signatures" />
       <keyword name="CreateDialogCodeDialog.__updateSlotsModel" id="CreateDialogCodeDialog.__updateSlotsModel" ref="eric5.Project.CreateDialogCodeDialog.html#CreateDialogCodeDialog.__updateSlotsModel" />
@@ -8844,7 +8844,6 @@
       <file>eric5.DebugClients.Python.DebugThread.html</file>
       <file>eric5.DebugClients.Python.FlexCompleter.html</file>
       <file>eric5.DebugClients.Python.PyProfile.html</file>
-      <file>eric5.DebugClients.Python.eric4dbgstub.html</file>
       <file>eric5.DebugClients.Python.eric5dbgstub.html</file>
       <file>eric5.DebugClients.Python.getpass.html</file>
       <file>eric5.DebugClients.Python3.AsyncFile.html</file>
@@ -8860,7 +8859,6 @@
       <file>eric5.DebugClients.Python3.DebugThread.html</file>
       <file>eric5.DebugClients.Python3.FlexCompleter.html</file>
       <file>eric5.DebugClients.Python3.PyProfile.html</file>
-      <file>eric5.DebugClients.Python3.eric4dbgstub.html</file>
       <file>eric5.DebugClients.Python3.eric5dbgstub.html</file>
       <file>eric5.DebugClients.Python3.getpass.html</file>
       <file>eric5.DebugClients.Ruby.AsyncFile.html</file>
--- a/Documentation/Source/eric5.E4XML.XMLHandlerBase.html	Fri Jan 08 19:14:19 2010 +0000
+++ b/Documentation/Source/eric5.E4XML.XMLHandlerBase.html	Sat Jan 09 19:43:36 2010 +0000
@@ -93,9 +93,6 @@
 <td><a href="#XMLHandlerBase.endList">endList</a></td>
 <td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#108;&#105;&#115;&#116;" &#101;&#110;&#100; &#116;&#97;&#103;.</td>
 </tr><tr>
-<td><a href="#XMLHandlerBase.endLong">endLong</a></td>
-<td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#108;&#111;&#110;&#103;" &#101;&#110;&#100; &#116;&#97;&#103;.</td>
-</tr><tr>
 <td><a href="#XMLHandlerBase.endNone">endNone</a></td>
 <td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#110;&#111;&#110;&#101;" &#101;&#110;&#100; &#116;&#97;&#103;.</td>
 </tr><tr>
@@ -108,9 +105,6 @@
 <td><a href="#XMLHandlerBase.endTuple">endTuple</a></td>
 <td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#116;&#117;&#112;&#108;&#101;" &#101;&#110;&#100; &#116;&#97;&#103;.</td>
 </tr><tr>
-<td><a href="#XMLHandlerBase.endUnicode">endUnicode</a></td>
-<td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#117;&#110;&#105;&#99;&#111;&#100;&#101;" &#101;&#110;&#100; &#116;&#97;&#103;.</td>
-</tr><tr>
 <td><a href="#XMLHandlerBase.startDictionary">startDictionary</a></td>
 <td>&#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#100;&#105;&#99;&#116;&#105;&#111;&#110;&#97;&#114;y" &#115;&#116;&#97;&#114;&#116; &#116;&#97;&#103;.</td>
 </tr><tr>
@@ -221,11 +215,6 @@
 <b>endList</b>(<i></i>)
 <p>
         &#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#108;&#105;&#115;&#116;" &#101;&#110;&#100; &#116;&#97;&#103;.
-</p><a NAME="XMLHandlerBase.endLong" ID="XMLHandlerBase.endLong"></a>
-<h4>XMLHandlerBase.endLong</h4>
-<b>endLong</b>(<i></i>)
-<p>
-        &#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#108;&#111;&#110;&#103;" &#101;&#110;&#100; &#116;&#97;&#103;.
 </p><a NAME="XMLHandlerBase.endNone" ID="XMLHandlerBase.endNone"></a>
 <h4>XMLHandlerBase.endNone</h4>
 <b>endNone</b>(<i></i>)
@@ -246,11 +235,6 @@
 <b>endTuple</b>(<i></i>)
 <p>
         &#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#116;&#117;&#112;&#108;&#101;" &#101;&#110;&#100; &#116;&#97;&#103;.
-</p><a NAME="XMLHandlerBase.endUnicode" ID="XMLHandlerBase.endUnicode"></a>
-<h4>XMLHandlerBase.endUnicode</h4>
-<b>endUnicode</b>(<i></i>)
-<p>
-        &#72;&#97;&#110;&#100;&#108;&#101;&#114; &#109;&#101;&#116;&#104;&#111;&#100; &#102;&#111;&#114; &#116;&#104;&#101; "&#117;&#110;&#105;&#99;&#111;&#100;&#101;" &#101;&#110;&#100; &#116;&#97;&#103;.
 </p><a NAME="XMLHandlerBase.startDictionary" ID="XMLHandlerBase.startDictionary"></a>
 <h4>XMLHandlerBase.startDictionary</h4>
 <b>startDictionary</b>(<i>attrs</i>)
--- a/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockDialog.html	Fri Jan 08 19:14:19 2010 +0000
+++ b/Documentation/Source/eric5.Helpviewer.AdBlock.AdBlockDialog.html	Sat Jan 09 19:43:36 2010 +0000
@@ -114,7 +114,7 @@
         &#80;&#114;&#105;v&#97;&#116;&#101; &#115;&#108;&#111;&#116; &#116;&#111; &#117;&#112;&#100;&#97;&#116;&#101; &#116;&#104;&#101; &#115;&#101;&#108;&#101;&#99;&#116;&#101;&#100; &#115;&#117;&#98;&#115;&#99;&#114;&#105;&#112;&#116;&#105;&#111;&#110;.
 </p><a NAME="AdBlockDialog.addCustomRule" ID="AdBlockDialog.addCustomRule"></a>
 <h4>AdBlockDialog.addCustomRule</h4>
-<b>addCustomRule</b>(<i>rule</i>)
+<b>addCustomRule</b>(<i>rule = ""</i>)
 <p>
         &#80;&#117;&#98;&#108;&#105;&#99; &#115;&#108;&#111;&#116; &#116;&#111; &#97;&#100;&#100; &#97; &#99;&#117;&#115;&#116;&#111;&#109; &#65;&#100;&#66;&#108;&#111;&#99;&#107; &#114;&#117;&#108;&#101;.
 </p><dl>
--- a/Documentation/Source/eric5.Project.CreateDialogCodeDialog.html	Fri Jan 08 19:14:19 2010 +0000
+++ b/Documentation/Source/eric5.Project.CreateDialogCodeDialog.html	Sat Jan 09 19:43:36 2010 +0000
@@ -66,6 +66,9 @@
 <td><a href="#CreateDialogCodeDialog.__generatePythonCode">__generatePythonCode</a></td>
 <td>&#80;&#114;&#105;v&#97;&#116;&#101; &#115;&#108;&#111;&#116; &#116;&#111; &#103;&#101;&#110;&#101;&#114;&#97;&#116;&#101; &#80;y&#116;&#104;&#111;&#110; &#99;&#111;&#100;&#101; &#97;&#115; &#114;&#101;&#113;&#117;&#101;&#115;&#116;&#101;&#100; &#98;y &#116;&#104;&#101; &#117;&#115;&#101;&#114;.</td>
 </tr><tr>
+<td><a href="#CreateDialogCodeDialog.__mapType">__mapType</a></td>
+<td>&#80;&#114;&#105;v&#97;&#116;&#101; &#109;&#101;&#116;&#104;&#111;&#100; &#116;&#111; &#109;&#97;&#112; &#97; &#116;y&#112;&#101; &#97;&#115; &#114;&#101;&#112;&#111;&#114;&#116;&#101;&#100; &#98;y &#81;&#116;'&#115; &#109;&#101;&#116;&#97; &#111;&#98;&#106;&#101;&#99;&#116; &#116;&#111; &#116;&#104;&#101; &#99;&#111;&#114;&#114;&#101;&#99;&#116; &#80;y&#116;&#104;&#111;&#110; &#116;y&#112;&#101;.</td>
+</tr><tr>
 <td><a href="#CreateDialogCodeDialog.__objectName">__objectName</a></td>
 <td>&#80;&#114;&#105;v&#97;&#116;&#101; &#109;&#101;&#116;&#104;&#111;&#100; &#116;&#111; &#103;&#101;&#116; &#116;&#104;&#101; &#111;&#98;&#106;&#101;&#99;&#116; &#110;&#97;&#109;&#101; &#111;&#102; &#116;&#104;&#101; &#100;&#105;&#97;&#108;&#111;&#103;.</td>
 </tr><tr>
@@ -130,7 +133,23 @@
 <b>__generatePythonCode</b>(<i></i>)
 <p>
         &#80;&#114;&#105;v&#97;&#116;&#101; &#115;&#108;&#111;&#116; &#116;&#111; &#103;&#101;&#110;&#101;&#114;&#97;&#116;&#101; &#80;y&#116;&#104;&#111;&#110; &#99;&#111;&#100;&#101; &#97;&#115; &#114;&#101;&#113;&#117;&#101;&#115;&#116;&#101;&#100; &#98;y &#116;&#104;&#101; &#117;&#115;&#101;&#114;.
-</p><a NAME="CreateDialogCodeDialog.__objectName" ID="CreateDialogCodeDialog.__objectName"></a>
+</p><a NAME="CreateDialogCodeDialog.__mapType" ID="CreateDialogCodeDialog.__mapType"></a>
+<h4>CreateDialogCodeDialog.__mapType</h4>
+<b>__mapType</b>(<i>type_</i>)
+<p>
+        &#80;&#114;&#105;v&#97;&#116;&#101; &#109;&#101;&#116;&#104;&#111;&#100; &#116;&#111; &#109;&#97;&#112; &#97; &#116;y&#112;&#101; &#97;&#115; &#114;&#101;&#112;&#111;&#114;&#116;&#101;&#100; &#98;y &#81;&#116;'&#115; &#109;&#101;&#116;&#97; &#111;&#98;&#106;&#101;&#99;&#116; &#116;&#111; &#116;&#104;&#101; 
+        &#99;&#111;&#114;&#114;&#101;&#99;&#116; &#80;y&#116;&#104;&#111;&#110; &#116;y&#112;&#101;.
+</p><dl>
+<dt><i>type_</i></dt>
+<dd>
+&#116;y&#112;&#101; &#97;&#115; &#114;&#101;&#112;&#111;&#114;&#116;&#101;&#100; &#98;y &#81;&#116; (&#81;&#66;y&#116;&#101;&#65;&#114;&#114;&#97;y)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+&#109;&#97;&#112;&#112;&#101;&#100; &#80;y&#116;&#104;&#111;&#110; &#116;y&#112;&#101; (&#115;&#116;&#114;&#105;&#110;&#103;)
+</dd>
+</dl><a NAME="CreateDialogCodeDialog.__objectName" ID="CreateDialogCodeDialog.__objectName"></a>
 <h4>CreateDialogCodeDialog.__objectName</h4>
 <b>__objectName</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric5.UI.EmailDialog.html	Fri Jan 08 19:14:19 2010 +0000
+++ b/Documentation/Source/eric5.UI.EmailDialog.html	Sat Jan 09 19:43:36 2010 +0000
@@ -37,7 +37,10 @@
 </table>
 <h3>Functions</h3>
 <table>
-<tr><td>None</td></tr>
+<tr>
+<td><a href="#_encode_base64">_encode_base64</a></td>
+<td>&#69;&#110;&#99;&#111;&#100;&#101; &#116;&#104;&#101; &#109;&#101;&#115;&#115;&#97;&#103;&#101;'&#115; &#112;&#97;y&#108;&#111;&#97;&#100; &#105;&#110; &#66;&#97;&#115;&#101;&#54;&#52;.</td>
+</tr>
 </table>
 <hr /><hr />
 <a NAME="EmailDialog" ID="EmailDialog"></a>
@@ -218,5 +221,15 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="_encode_base64" ID="_encode_base64"></a>
+<h2>_encode_base64</h2>
+<b>_encode_base64</b>(<i>msg</i>)
+<p>
+&#69;&#110;&#99;&#111;&#100;&#101; &#116;&#104;&#101; &#109;&#101;&#115;&#115;&#97;&#103;&#101;'&#115; &#112;&#97;y&#108;&#111;&#97;&#100; &#105;&#110; &#66;&#97;&#115;&#101;&#54;&#52;.
+</p><p>
+    &#65;&#108;&#115;&#111;, &#97;&#100;&#100; &#97;&#110; &#97;&#112;&#112;&#114;&#111;&#112;&#114;&#105;&#97;&#116;&#101; &#67;&#111;&#110;&#116;&#101;&#110;&#116;-&#84;&#114;&#97;&#110;&#115;&#102;&#101;&#114;-&#69;&#110;&#99;&#111;&#100;&#105;&#110;&#103; &#104;&#101;&#97;&#100;&#101;&#114;.
+</p>
+<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/E4XML/XMLHandlerBase.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/E4XML/XMLHandlerBase.py	Sat Jan 09 19:43:36 2010 +0000
@@ -23,19 +23,21 @@
         """
         self.startDocumentSpecific = None
         
+        # TODO: add support for bytes, bytearray, set, frozenset
         self.elements = {
             'none'    : (self.defaultStartElement, self.endNone),
             'int'     : (self.defaultStartElement, self.endInt),
-            'long'    : (self.defaultStartElement, self.endLong),
             'float'   : (self.defaultStartElement, self.endFloat),
             'complex' : (self.defaultStartElement, self.endComplex),
             'bool'    : (self.defaultStartElement, self.endBool),
             'string'  : (self.defaultStartElement, self.endString),
-            'unicode' : (self.defaultStartElement, self.endUnicode),
             'tuple'   : (self.startTuple, self.endTuple),
             'list'    : (self.startList, self.endList),
             'dict'    : (self.startDictionary, self.endDictionary),
             'pickle'  : (self.startPickle, self.endPickle),
+            # for backward compatibility
+            'long'    : (self.defaultStartElement, self.endInt),
+            'unicode' : (self.defaultStartElement, self.endString),
         }
         
         self.buffer = ""
@@ -152,12 +154,6 @@
         """
         self.stack.append(int(self.buffer.strip()))
         
-    def endLong(self):
-        """
-        Handler method for the "long" end tag.
-        """
-        self.stack.append(int(self.buffer.strip()))
-        
     def endBool(self):
         """
         Handler method for the "bool" end tag.
@@ -187,13 +183,13 @@
         s = str(self.utf8_to_code(self.unescape(self.buffer)))
         self.stack.append(s)
         
-    def endUnicode(self):
-        """
-        Handler method for the "unicode" end tag.
-        """
-        u = str(self.utf8_to_code(self.unescape(self.buffer)))
-        self.stack.append(u)
-        
+##    def endUnicode(self):
+##        """
+##        Handler method for the "unicode" end tag.
+##        """
+##        u = str(self.utf8_to_code(self.unescape(self.buffer)))
+##        self.stack.append(u)
+##        
     def startList(self, attrs):
         """
         Handler method for the "list" start tag.
@@ -269,4 +265,4 @@
         Handler method for the "pickle" end tag.
         """
         pic = self.utf8_to_code(self.buffer).decode(self.pickleEnc)
-        self.stack.append(pickle.loads(pic))
\ No newline at end of file
+        self.stack.append(pickle.loads(pic))
--- a/E4XML/XMLWriterBase.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/E4XML/XMLWriterBase.py	Sat Jan 09 19:43:36 2010 +0000
@@ -33,7 +33,7 @@
             type((1,)) : self._write_tuple,
             type([])   : self._write_list,
             type({})   : self._write_dictionary,
-            # TODO: add set
+            # TODO: add set, frozenset, bytes, bytearray
         }
         
         self.NEWPARA = chr(0x2029)
@@ -114,15 +114,6 @@
         """
         self._write('%s<int>%s</int>' % ("  " * indent, value))
         
-    def _write_long(self, value, indent):
-        """
-        Protected method to dump a LongType object.
-        
-        @param value value to be dumped (long)
-        @param indent indentation level for prettier output (integer)
-        """
-        self._write('%s<long>%s</long>' % ("  " * indent, value))
-        
     def _write_bool(self, value, indent):
         """
         Protected method to dump a BooleanType object.
@@ -160,16 +151,6 @@
         """
         self._write('%s<string>%s</string>' % ("  " * indent, self.escape(value)))
         
-    # TODO: add method for writing bytes
-    def _write_unicode(self, value, indent):
-        """
-        Protected method to dump an UnicodeType object.
-        
-        @param value value to be dumped (unicode)
-        @param indent indentation level for prettier output (integer)
-        """
-        self._write('%s<unicode>%s</unicode>' % ("  " * indent, self.escape(value)))
-        
     def _write_tuple(self, value, indent):
         """
         Protected method to dump a TupleType object.
@@ -224,4 +205,4 @@
         @param indent indentation level for prettier output (integer)
         """
         self._write('%s<pickle method="pickle" encoding="base64">%s</pickle>' % \
-            ("  " * indent, pickle.dumps(value).encode('base64')))
\ No newline at end of file
+            ("  " * indent, pickle.dumps(value).encode('base64')))
--- a/Examples/rhallo.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Examples/rhallo.py	Sat Jan 09 19:43:36 2010 +0000
@@ -2,15 +2,15 @@
 
 import sys
 
-import eric4dbgstub
+import eric5dbgstub
 
 def main():
     print("Hello World!")
     sys.exit(0)
     
 if __name__ == "__main__":
-    if eric4dbgstub.initDebugger("standard"):
-# or   if eric4dbgstub.initDebugger("threads"):
-        eric4dbgstub.debugger.startDebugger()
+    if eric5dbgstub.initDebugger("standard"):
+# or   if eric5dbgstub.initDebugger("threads"):
+        eric5dbgstub.debugger.startDebugger()
 
     main()
--- a/Helpviewer/AdBlock/AdBlockDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/AdBlock/AdBlockDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -99,7 +99,7 @@
                              self.__removeSubscription)
         act.setEnabled(idx.isValid())
     
-    def addCustomRule(self, rule):
+    def addCustomRule(self, rule = ""):
         """
         Public slot to add a custom AdBlock rule.
         
--- a/Helpviewer/AdBlock/AdBlockManager.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/AdBlock/AdBlockManager.py	Sat Jan 09 19:43:36 2010 +0000
@@ -190,7 +190,7 @@
         if not self.__loaded:
             return
         
-        Preferences.setHelp("AdBlockEnabled", int(self.__enabled))
+        Preferences.setHelp("AdBlockEnabled", self.__enabled)
         subscriptions = []
         for subscription in self.__subscriptions:
             if subscription is None:
@@ -208,7 +208,7 @@
         
         self.__loaded = True
         
-        self.__enabled = bool(Preferences.getHelp("AdBlockEnabled"))
+        self.__enabled = Preferences.getHelp("AdBlockEnabled")
         
         defaultSubscriptions = []
         defaultSubscriptions.append(
@@ -220,7 +220,7 @@
         if len(subscriptions) == 0:
             subscriptions = defaultSubscriptions
         for subscription in subscriptions:
-            url = QUrl.fromEncoded(subscription)
+            url = QUrl.fromEncoded(subscription.encode())
             adBlockSubscription = AdBlockSubscription(url, self)
             self.connect(adBlockSubscription, SIGNAL("rulesChanged()"), 
                          self, SIGNAL("rulesChanged()"))
--- a/Helpviewer/AdBlock/AdBlockSubscription.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/AdBlock/AdBlockSubscription.py	Sat Jan 09 19:43:36 2010 +0000
@@ -87,9 +87,9 @@
         url.setPath("subscribe")
         
         queryItems = []
-        queryItems.append(("location", str(self.__location)))
+        queryItems.append(("location", bytes(self.__location).decode()))
         queryItems.append(("title", self.__title))
-        if self.__enabled:
+        if not self.__enabled:
             queryItems.append(("enabled", "false"))
         if self.__lastUpdate.isValid():
             queryItems.append(("lastUpdate", 
--- a/Helpviewer/DownloadDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/DownloadDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -157,7 +157,7 @@
         """
         path = ""
         if self.__reply.hasRawHeader("Content-Disposition"):
-            header = str(self.__reply.rawHeader("Content-Disposition"))
+            header = bytes(self.__reply.rawHeader("Content-Disposition")).decode()
             if header:
                 pos = header.find("filename=")
                 if pos != -1:
--- a/Helpviewer/DownloadDialog.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/DownloadDialog.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DownloadDialog</class>
- <widget class="QWidget" name="DownloadDialog" >
-  <property name="geometry" >
+ <widget class="QWidget" name="DownloadDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,34 +10,34 @@
     <height>148</height>
    </rect>
   </property>
-  <property name="windowTitle" >
-   <string>Eric4 Download</string>
+  <property name="windowTitle">
+   <string>Eric5 Download</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2" >
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout" >
+    <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
-      <widget class="QLabel" name="fileIcon" >
-       <property name="text" >
+      <widget class="QLabel" name="fileIcon">
+       <property name="text">
         <string>Icon</string>
        </property>
       </widget>
      </item>
      <item>
-      <layout class="QVBoxLayout" name="verticalLayout" >
+      <layout class="QVBoxLayout" name="verticalLayout">
        <item>
-        <widget class="QLabel" name="filenameLabel" >
-         <property name="text" >
+        <widget class="QLabel" name="filenameLabel">
+         <property name="text">
           <string>Filename</string>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QProgressBar" name="progressBar" />
+        <widget class="QProgressBar" name="progressBar"/>
        </item>
        <item>
-        <widget class="QLabel" name="infoLabel" >
-         <property name="text" >
+        <widget class="QLabel" name="infoLabel">
+         <property name="text">
           <string>Info</string>
          </property>
         </widget>
@@ -46,18 +47,18 @@
     </layout>
    </item>
    <item>
-    <widget class="QCheckBox" name="keepOpenCheckBox" >
-     <property name="toolTip" >
+    <widget class="QCheckBox" name="keepOpenCheckBox">
+     <property name="toolTip">
       <string>Select to keep the dialog open when finished</string>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Keep open when finished</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="standardButtons" >
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="standardButtons">
       <set>QDialogButtonBox::Close|QDialogButtonBox::Open</set>
      </property>
     </widget>
--- a/Helpviewer/OpenSearch/OpenSearchEngine.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/OpenSearch/OpenSearchEngine.py	Sat Jan 09 19:43:36 2010 +0000
@@ -352,7 +352,7 @@
             imageBuffer.open(QIODevice.ReadWrite)
             if image.save(imageBuffer, "PNG"):
                 self._imageUrl = "data:image/png;base64,{0}"\
-                                .format(str(imageBuffer.buffer().toBase64()))
+                                .format(bytes(imageBuffer.buffer().toBase64()).decode())
         
         self.__image = QImage(image)
         self.emit(SIGNAL("imageChanged()"))
--- a/Helpviewer/Passwords/PasswordManager.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Helpviewer/Passwords/PasswordManager.py	Sat Jan 09 19:43:36 2010 +0000
@@ -492,8 +492,8 @@
         """
         args = set()
         
-        dataStr = str(data)
-        boundaryStr = str(boundary)
+        dataStr = bytes(data).decode()
+        boundaryStr = bytes(boundary).decode()
         
         parts = dataStr.split(boundaryStr + "\r\n")
         for part in parts:
--- a/IconEditor/IconEditorWindow.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/IconEditor/IconEditorWindow.py	Sat Jan 09 19:43:36 2010 +0000
@@ -128,7 +128,7 @@
         readFormats = QImageReader.supportedImageFormats()
         for readFormat in readFormats:
             try:
-                inputFormats.append(filters[str(readFormat)])
+                inputFormats.append(filters[bytes(readFormat).decode()])
             except KeyError:
                 pass
         inputFormats.sort()
@@ -139,7 +139,7 @@
         writeFormats = QImageWriter.supportedImageFormats()
         for writeFormat in writeFormats:
             try:
-                outputFormats.append(filters[str(writeFormat)])
+                outputFormats.append(filters[bytes(writeFormat).decode()])
             except KeyError:
                 pass
         outputFormats.sort()
@@ -1246,4 +1246,4 @@
         """
         Private slot called in to enter Whats This mode.
         """
-        QWhatsThis.enterWhatsThisMode()
\ No newline at end of file
+        QWhatsThis.enterWhatsThisMode()
--- a/Plugins/VcsPlugins/vcsPySvn/SvnLogDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnLogDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -215,7 +215,7 @@
         if Utilities.isWindowsPlatform():
             if filename.startswith("/"):
                 filename = filename[1:]
-        ver = str(url.encodedQuery())
+        ver = bytes(url.encodedQuery()).decode()
         v1 = ver.split('_')[0]
         v2 = ver.split('_')[1]
         if not v1 or not v2:
--- a/Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -261,7 +261,7 @@
         if Utilities.isWindowsPlatform():
             if filename.startswith("/"):
                 filename = filename[1:]
-        ver = str(url.encodedQuery())
+        ver = bytes(url.encodedQuery()).decode()
         v1 = ver.split('_')[0]
         v2 = ver.split('_')[1]
         if v1 == "" or v2 == "":
--- a/Plugins/VcsPlugins/vcsSubversion/SvnStatusMonitorThread.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnStatusMonitorThread.py	Sat Jan 09 19:43:36 2010 +0000
@@ -75,10 +75,10 @@
                 states = {}
                 for line in output.splitlines():
                     if self.rx_status1.exactMatch(line):
-                        flags = str(self.rx_status1.cap(1))
+                        flags = self.rx_status1.cap(1)
                         path = self.rx_status1.cap(3).strip()
                     elif self.rx_status2.exactMatch(line):
-                        flags = str(self.rx_status2.cap(1))
+                        flags = self.rx_status2.cap(1)
                         path = self.rx_status2.cap(5).strip()
                     else:
                         continue
--- a/Plugins/VcsPlugins/vcsSubversion/subversion.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/subversion.py	Sat Jan 09 19:43:36 2010 +0000
@@ -717,8 +717,6 @@
                 args.append('--message')
                 args.append('Moving {0} to {1}'.format(name, target))
                 target = self.__svnURL(target)
-            else:
-                target = str(target)
             args.append(name)
             args.append(target)
             
@@ -1087,10 +1085,10 @@
                         str(process.readAllStandardOutput(), ioEncoding, 'replace')
                     for line in output.splitlines():
                         if self.rx_status1.exactMatch(line):
-                            flags = str(self.rx_status1.cap(1))
+                            flags = self.rx_status1.cap(1)
                             path = self.rx_status1.cap(5).strip()
                         elif self.rx_status2.exactMatch(line):
-                            flags = str(self.rx_status2.cap(1))
+                            flags = self.rx_status2.cap(1)
                             path = self.rx_status2.cap(2).strip()
                         else:
                             continue
@@ -1820,4 +1818,4 @@
         @param interval check interval for the monitor thread in seconds (integer)
         @return reference to the monitor thread (QThread)
         """
-        return SvnStatusMonitorThread(interval, project.ppath, self)
\ No newline at end of file
+        return SvnStatusMonitorThread(interval, project.ppath, self)
--- a/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -140,7 +140,7 @@
         if self.rColor.isChecked():
             code += 'getColor('
             if self.eColor.currentText():
-                col = str(self.eColor.currentText())
+                col = self.eColor.currentText()
                 if col.startswith('#'):
                     code += 'QColor("%s")' % col
                 else:
@@ -176,7 +176,7 @@
                         (self.sRed.value(), self.sGreen.value(), self.sBlue.value(),
                         self.sAlpha.value())
                 else:
-                    code += str(self.eRGB.text())
+                    code += self.eRGB.text()
                 code += ')%s' % os.linesep
         
         return code
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -158,7 +158,7 @@
    <item>
     <widget class="QCheckBox" name="pyRedirectCheckBox">
      <property name="toolTip">
-      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric4 IDE</string>
+      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric5 IDE</string>
      </property>
      <property name="text">
       <string>Redirect stdin/stdout/stderr</string>
--- a/Preferences/ConfigurationPages/DebuggerPythonPage.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Preferences/ConfigurationPages/DebuggerPythonPage.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -148,7 +148,7 @@
    <item>
     <widget class="QCheckBox" name="pyRedirectCheckBox">
      <property name="toolTip">
-      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric4 IDE</string>
+      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric5 IDE</string>
      </property>
      <property name="text">
       <string>Redirect stdin/stdout/stderr</string>
--- a/Preferences/ConfigurationPages/DebuggerRubyPage.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Preferences/ConfigurationPages/DebuggerRubyPage.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DebuggerRubyPage</class>
- <widget class="QWidget" name="DebuggerRubyPage" >
-  <property name="geometry" >
+ <widget class="QWidget" name="DebuggerRubyPage">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,46 +10,46 @@
     <height>170</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" >
+  <layout class="QVBoxLayout">
    <item>
-    <widget class="QLabel" name="headerLabel" >
-     <property name="text" >
-      <string>&lt;b>Configure Ruby Debugger&lt;/b></string>
+    <widget class="QLabel" name="headerLabel">
+     <property name="text">
+      <string>&lt;b&gt;Configure Ruby Debugger&lt;/b&gt;</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="Line" name="line11_2_2" >
-     <property name="frameShape" >
+    <widget class="Line" name="line11_2_2">
+     <property name="frameShape">
       <enum>QFrame::HLine</enum>
      </property>
-     <property name="frameShadow" >
+     <property name="frameShadow">
       <enum>QFrame::Sunken</enum>
      </property>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox" >
-     <property name="title" >
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
       <string>Ruby Interpreter for Debug Client</string>
      </property>
-     <layout class="QHBoxLayout" >
+     <layout class="QHBoxLayout">
       <item>
-       <widget class="QLineEdit" name="rubyInterpreterEdit" >
-        <property name="toolTip" >
+       <widget class="QLineEdit" name="rubyInterpreterEdit">
+        <property name="toolTip">
          <string>Enter the path of the Ruby interpreter to be used by the debug client.</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="rubyInterpreterButton" >
-        <property name="toolTip" >
+       <widget class="QPushButton" name="rubyInterpreterButton">
+        <property name="toolTip">
          <string>Press to select the Ruby interpreter via a file selection dialog</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>...</string>
         </property>
        </widget>
@@ -57,21 +58,21 @@
     </widget>
    </item>
    <item>
-    <widget class="QCheckBox" name="rbRedirectCheckBox" >
-     <property name="toolTip" >
-      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric4 IDE</string>
+    <widget class="QCheckBox" name="rbRedirectCheckBox">
+     <property name="toolTip">
+      <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric5 IDE</string>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Redirect stdin/stdout/stderr</string>
      </property>
     </widget>
    </item>
    <item>
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>40</height>
--- a/Preferences/__init__.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Preferences/__init__.py	Sat Jan 09 19:43:36 2010 +0000
@@ -1102,7 +1102,7 @@
     @param prefClass preferences class used as the storage area
     """
     if key == "ViewProfiles":
-        prefClass.settings.setValue("UI/" + key, value)#str(value))
+        prefClass.settings.setValue("UI/" + key, value)
     elif key == "LogStdErrColour":
         prefClass.settings.setValue("UI/" + key, value.name())
     elif key == "ProxyPassword":
--- a/Project/CreateDialogCodeDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Project/CreateDialogCodeDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -157,13 +157,37 @@
             for meth in list(cls.methods.values()):
                 if meth.name.startswith("on_"):
                     if meth.pyqtSignature is not None:
-                        sig = ", ".join([str(QMetaObject.normalizedType(t)) \
+                        sig = ", ".join([bytes(QMetaObject.normalizedType(t)).decode() \
                                          for t in meth.pyqtSignature.split(",")])
                         signatures.append("%s(%s)" % (meth.name, sig))
                     else:
                         signatures.append(meth.name)
         return signatures
         
+    def __mapType(self, type_):
+        """
+        Private method to map a type as reported by Qt's meta object to the 
+        correct Python type.
+        
+        @param type_ type as reported by Qt (QByteArray)
+        @return mapped Python type (string)
+        """
+        mapped = bytes(type_).decode()
+        
+        # 1. check for const
+        mapped = mapped.replace("const ", "")
+        
+        # 2. check fpr *
+        mapped = mapped.replace("*", "")
+        
+        # 3. replace QString and QStringList
+        mapped = mapped.replace("QStringList", "list").replace("QString", "str")
+        
+        # 4. replace double by float
+        mapped = mapped.replace("double", "float")
+        
+        return mapped
+        
     def __updateSlotsModel(self):
         """
         Private slot to update the slots tree display.
@@ -206,7 +230,8 @@
                                 continue
                         
                         pyqtSignature = \
-                            ", ".join([str(t) for t in metaMethod.parameterTypes()])
+                            ", ".join([self.__mapType(t) 
+                                       for t in metaMethod.parameterTypes()])
                         
                         parameterNames = metaMethod.parameterNames()
                         if parameterNames:
@@ -214,7 +239,7 @@
                                 if not parameterNames[index]:
                                     parameterNames[index] = QByteArray("p%d" % index)
                         methNamesSig = \
-                            ", ".join([str(n) for n in parameterNames])
+                            ", ".join([bytes(n).decode() for n in parameterNames])
                         
                         if methNamesSig:
                             pythonSignature = "on_%s_%s(self, %s)" % \
@@ -350,7 +375,6 @@
                 if child.checkState() and \
                    child.flags() & Qt.ItemFlags(Qt.ItemIsUserCheckable):
                     slotsCode.append('%s\n' % indentStr)
-                    # TODO: adjust to new signal/slot mechanism
                     slotsCode.append('%s@pyqtSlot(%s)\n' % \
                         (indentStr, child.data(pyqtSignatureRole)))
                     slotsCode.append('%sdef %s:\n' % \
@@ -438,4 +462,4 @@
         """
         if button == self.okButton:
             self.__generateCode()
-            self.accept()
\ No newline at end of file
+            self.accept()
--- a/Project/DebuggerPropertiesDialog.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Project/DebuggerPropertiesDialog.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -1,40 +1,41 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>DebuggerPropertiesDialog</class>
- <widget class="QDialog" name="DebuggerPropertiesDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="DebuggerPropertiesDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>592</width>
-    <height>589</height>
+    <height>592</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Debugger Properties</string>
   </property>
-  <property name="sizeGripEnabled" >
+  <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QVBoxLayout" name="_2" >
+  <layout class="QVBoxLayout" name="_2">
    <item>
-    <widget class="QGroupBox" name="groupBox" >
-     <property name="title" >
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
       <string>Debug Client</string>
      </property>
-     <layout class="QHBoxLayout" name="_4" >
+     <layout class="QHBoxLayout" name="_4">
       <item>
-       <widget class="QLineEdit" name="debugClientEdit" >
-        <property name="toolTip" >
+       <widget class="QLineEdit" name="debugClientEdit">
+        <property name="toolTip">
          <string>Enter the path of the Debug Client to be used.  Leave empty to use the default.</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="debugClientButton" >
-        <property name="toolTip" >
+       <widget class="QPushButton" name="debugClientButton">
+        <property name="toolTip">
          <string>Press to select the Debug Client via a file selection dialog</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>...</string>
         </property>
        </widget>
@@ -43,24 +44,24 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_2" >
-     <property name="title" >
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
       <string>Interpreter for Debug Client</string>
      </property>
-     <layout class="QHBoxLayout" name="_5" >
+     <layout class="QHBoxLayout" name="_5">
       <item>
-       <widget class="QLineEdit" name="interpreterEdit" >
-        <property name="toolTip" >
+       <widget class="QLineEdit" name="interpreterEdit">
+        <property name="toolTip">
          <string>Enter the path of the interpreter to be used by the debug client.</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="interpreterButton" >
-        <property name="toolTip" >
+       <widget class="QPushButton" name="interpreterButton">
+        <property name="toolTip">
          <string>Press to select the interpreter via a file selection dialog</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>...</string>
         </property>
        </widget>
@@ -69,36 +70,36 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_3" >
-     <property name="title" >
+    <widget class="QGroupBox" name="groupBox_3">
+     <property name="title">
       <string>Environment for Debug Client</string>
      </property>
-     <layout class="QGridLayout" name="_6" >
-      <item row="0" column="0" colspan="2" >
-       <widget class="QCheckBox" name="debugEnvironmentOverrideCheckBox" >
-        <property name="toolTip" >
+     <layout class="QGridLayout" name="_6">
+      <item row="0" column="0" colspan="2">
+       <widget class="QCheckBox" name="debugEnvironmentOverrideCheckBox">
+        <property name="toolTip">
          <string>Select, if the environment of the debug client should be replaced</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Replace Environment</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QLineEdit" name="debugEnvironmentEdit" >
-        <property name="toolTip" >
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="debugEnvironmentEdit">
+        <property name="toolTip">
          <string>Enter the environment variables to be set.</string>
         </property>
-        <property name="whatsThis" >
-         <string>&lt;b>Environment&lt;/b>
-&lt;p>Enter the environment variables to be set for the debugger. The individual settings must be separate by whitespace and be given in the form 'var=value'.&lt;/p>
-&lt;p>Example: var1=1 var2="hello world"&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;Environment&lt;/b&gt;
+&lt;p&gt;Enter the environment variables to be set for the debugger. The individual settings must be separate by whitespace and be given in the form 'var=value'.&lt;/p&gt;
+&lt;p&gt;Example: var1=1 var2=&quot;hello world&quot;&lt;/p&gt;</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="textLabel1_16" >
-        <property name="text" >
+      <item row="1" column="0">
+       <widget class="QLabel" name="textLabel1_16">
+        <property name="text">
          <string>Environment:</string>
         </property>
        </widget>
@@ -107,53 +108,53 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="remoteDebuggerGroup" >
-     <property name="toolTip" >
+    <widget class="QGroupBox" name="remoteDebuggerGroup">
+     <property name="toolTip">
       <string>Select, if the debugger should be run remotely</string>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Remote Debugger</string>
      </property>
-     <property name="checkable" >
+     <property name="checkable">
       <bool>true</bool>
      </property>
-     <layout class="QGridLayout" name="_7" >
-      <item row="2" column="0" colspan="2" >
-       <widget class="QGroupBox" name="pathTranslationGroup" >
-        <property name="toolTip" >
+     <layout class="QGridLayout" name="_7">
+      <item row="2" column="0" colspan="2">
+       <widget class="QGroupBox" name="pathTranslationGroup">
+        <property name="toolTip">
          <string>Select, if path translation for remote debugging should be done</string>
         </property>
-        <property name="title" >
+        <property name="title">
          <string>Perform Path Translation</string>
         </property>
-        <property name="checkable" >
+        <property name="checkable">
          <bool>true</bool>
         </property>
-        <layout class="QGridLayout" >
-         <item row="1" column="0" >
-          <widget class="QLabel" name="textLabel2_9" >
-           <property name="text" >
+        <layout class="QGridLayout">
+         <item row="1" column="0">
+          <widget class="QLabel" name="textLabel2_9">
+           <property name="text">
             <string>Local Path:</string>
            </property>
           </widget>
          </item>
-         <item row="1" column="1" >
-          <widget class="QLineEdit" name="translationLocalEdit" >
-           <property name="toolTip" >
+         <item row="1" column="1">
+          <widget class="QLineEdit" name="translationLocalEdit">
+           <property name="toolTip">
             <string>Enter the local path</string>
            </property>
           </widget>
          </item>
-         <item row="0" column="1" >
-          <widget class="QLineEdit" name="translationRemoteEdit" >
-           <property name="toolTip" >
+         <item row="0" column="1">
+          <widget class="QLineEdit" name="translationRemoteEdit">
+           <property name="toolTip">
             <string>Enter the remote path</string>
            </property>
           </widget>
          </item>
-         <item row="0" column="0" >
-          <widget class="QLabel" name="textLabel1_18" >
-           <property name="text" >
+         <item row="0" column="0">
+          <widget class="QLabel" name="textLabel1_18">
+           <property name="text">
             <string>Remote Path:</string>
            </property>
           </widget>
@@ -161,39 +162,39 @@
         </layout>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="hostLabel" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QLabel" name="hostLabel">
+        <property name="text">
          <string>Remote Host:</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QLineEdit" name="remoteCommandEdit" >
-        <property name="toolTip" >
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="remoteCommandEdit">
+        <property name="toolTip">
          <string>Enter the remote execution command.</string>
         </property>
-        <property name="whatsThis" >
-         <string>&lt;b>Remote Execution&lt;/b>
-&lt;p>Enter the remote execution command (e.g. ssh). This command is used to log into the remote host and execute the remote debugger.&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;Remote Execution&lt;/b&gt;
+&lt;p&gt;Enter the remote execution command (e.g. ssh). This command is used to log into the remote host and execute the remote debugger.&lt;/p&gt;</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="execLabel" >
-        <property name="text" >
+      <item row="1" column="0">
+       <widget class="QLabel" name="execLabel">
+        <property name="text">
          <string>Remote Execution:</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QLineEdit" name="remoteHostEdit" >
-        <property name="toolTip" >
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="remoteHostEdit">
+        <property name="toolTip">
          <string>Enter the hostname of the remote machine.</string>
         </property>
-        <property name="whatsThis" >
-         <string>&lt;b>Remote Host&lt;/b>
-&lt;p>Enter the hostname of the remote machine.&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;Remote Host&lt;/b&gt;
+&lt;p&gt;Enter the hostname of the remote machine.&lt;/p&gt;</string>
         </property>
        </widget>
       </item>
@@ -201,32 +202,32 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="consoleDebuggerGroup" >
-     <property name="toolTip" >
+    <widget class="QGroupBox" name="consoleDebuggerGroup">
+     <property name="toolTip">
       <string>Select, if the debugger should be executed in a console window</string>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Console Debugger</string>
      </property>
-     <property name="checkable" >
+     <property name="checkable">
       <bool>true</bool>
      </property>
-     <layout class="QHBoxLayout" name="_3" >
+     <layout class="QHBoxLayout" name="_3">
       <item>
-       <widget class="QLabel" name="textLabel1_17" >
-        <property name="text" >
+       <widget class="QLabel" name="textLabel1_17">
+        <property name="text">
          <string>Console Command:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLineEdit" name="consoleCommandEdit" >
-        <property name="toolTip" >
+       <widget class="QLineEdit" name="consoleCommandEdit">
+        <property name="toolTip">
          <string>Enter the console command (e.g. xterm -e)</string>
         </property>
-        <property name="whatsThis" >
-         <string>&lt;b>Console Command&lt;/b>
-&lt;p>Enter the console command (e.g. xterm -e). This command is used to open a command window for the debugger.&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;Console Command&lt;/b&gt;
+&lt;p&gt;Enter the console command (e.g. xterm -e). This command is used to open a command window for the debugger.&lt;/p&gt;</string>
         </property>
        </widget>
       </item>
@@ -234,38 +235,38 @@
     </widget>
    </item>
    <item>
-    <widget class="QCheckBox" name="redirectCheckBox" >
-     <property name="toolTip" >
-      <string>Select to redirect stdin, stdout and stderr of the program being debugged to the eric4 IDE</string>
+    <widget class="QCheckBox" name="redirectCheckBox">
+     <property name="toolTip">
+      <string>Select to redirect stdin, stdout and stderr of the program being debugged to the eric5 IDE</string>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Redirect stdin/stdout/stderr</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QCheckBox" name="noEncodingCheckBox" >
-     <property name="toolTip" >
+    <widget class="QCheckBox" name="noEncodingCheckBox">
+     <property name="toolTip">
       <string>Select to not set the debug client encoding</string>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Don't set the encoding of the debug client</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="standardButtons" >
+     <property name="standardButtons">
       <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
- <layoutdefault spacing="6" margin="11" />
+ <layoutdefault spacing="6" margin="11"/>
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <tabstops>
   <tabstop>debugClientEdit</tabstop>
@@ -292,11 +293,11 @@
    <receiver>DebuggerPropertiesDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>84</x>
      <y>493</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>84</x>
      <y>510</y>
     </hint>
@@ -308,11 +309,11 @@
    <receiver>DebuggerPropertiesDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>212</x>
      <y>494</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>212</x>
      <y>508</y>
     </hint>
--- a/Project/PropertiesDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Project/PropertiesDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -112,6 +112,8 @@
                     self.trUtf8("The project is not version controlled."))
                 self.vcsInfoButton.hide()
         else:
+            self.languageComboBox.setCurrentIndex(\
+                self.languageComboBox.findText("Python3"))
             self.projectTypeComboBox.setCurrentIndex(\
                 self.projectTypeComboBox.findText(projectTypes["Qt4"]))
             hp = os.getcwd()
--- a/Project/TranslationPropertiesDialog.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/Project/TranslationPropertiesDialog.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>TranslationPropertiesDialog</class>
- <widget class="QDialog" name="TranslationPropertiesDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="TranslationPropertiesDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,85 +10,85 @@
     <height>543</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Translation Properties</string>
   </property>
-  <property name="sizeGripEnabled" >
+  <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QVBoxLayout" name="_2" >
+  <layout class="QVBoxLayout" name="_2">
    <item>
-    <layout class="QGridLayout" name="_3" >
-     <item row="3" column="1" >
-      <widget class="QPushButton" name="transBinPathButton" >
-       <property name="toolTip" >
+    <layout class="QGridLayout" name="_3">
+     <item row="3" column="1">
+      <widget class="QPushButton" name="transBinPathButton">
+       <property name="toolTip">
         <string>Show directory selection dialog</string>
        </property>
-       <property name="whatsThis" >
-        <string>&lt;b>Binary Translations Path&lt;/b>
-&lt;p>Select the directory for the binary translations via a directory selection dialog.&lt;/p></string>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Binary Translations Path&lt;/b&gt;
+&lt;p&gt;Select the directory for the binary translations via a directory selection dialog.&lt;/p&gt;</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
       </widget>
      </item>
-     <item row="3" column="0" >
-      <widget class="QLineEdit" name="transBinPathEdit" >
-       <property name="toolTip" >
+     <item row="3" column="0">
+      <widget class="QLineEdit" name="transBinPathEdit">
+       <property name="toolTip">
         <string>Enter the path for the binary translation files (*.qm)</string>
        </property>
-       <property name="whatsThis" >
-        <string>&lt;b>Binary Translations Path&lt;/b>
-&lt;p>Enter the directory for the binary translation files (*.qm). Leave it empty to store them together with the *.ts files.&lt;/p></string>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Binary Translations Path&lt;/b&gt;
+&lt;p&gt;Enter the directory for the binary translation files (*.qm). Leave it empty to store them together with the *.ts files.&lt;/p&gt;</string>
        </property>
       </widget>
      </item>
-     <item row="1" column="1" >
-      <widget class="QPushButton" name="transPatternButton" >
-       <property name="toolTip" >
+     <item row="1" column="1">
+      <widget class="QPushButton" name="transPatternButton">
+       <property name="toolTip">
         <string>Show directory selection dialog</string>
        </property>
-       <property name="whatsThis" >
-        <string>&lt;b>Translation Pattern&lt;/b>
-&lt;p>Select a translation file via a file selection dialog.&lt;/p></string>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Translation Pattern&lt;/b&gt;
+&lt;p&gt;Select a translation file via a file selection dialog.&lt;/p&gt;</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="0" colspan="2" >
-      <widget class="QLabel" name="label" >
-       <property name="text" >
+     <item row="2" column="0" colspan="2">
+      <widget class="QLabel" name="label">
+       <property name="text">
         <string>&amp;Binary Translations Path:</string>
        </property>
-       <property name="buddy" >
+       <property name="buddy">
         <cstring>transBinPathEdit</cstring>
        </property>
       </widget>
      </item>
-     <item row="1" column="0" >
-      <widget class="QLineEdit" name="transPatternEdit" >
-       <property name="toolTip" >
+     <item row="1" column="0">
+      <widget class="QLineEdit" name="transPatternEdit">
+       <property name="toolTip">
         <string>Enter the path pattern for the translation files</string>
        </property>
-       <property name="whatsThis" >
-        <string>&lt;b>Translation Pattern&lt;/b>
-&lt;p>Enter the path pattern for the translation files using %language% at the place of the language code (e.g. /path_to_eric/i18n/eric4_%language%.ts). This will result in translation files like /path_to_eric/i18n/eric_de.ts.&lt;/p></string>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Translation Pattern&lt;/b&gt;
+&lt;p&gt;Enter the path pattern for the translation files using %language% at the place of the language code (e.g. /path_to_eric/i18n/eric5_%language%.ts). This will result in translation files like /path_to_eric/i18n/eric5_de.ts.&lt;/p&gt;</string>
        </property>
       </widget>
      </item>
-     <item row="0" column="0" colspan="2" >
-      <widget class="QLabel" name="textLabel1_3" >
-       <property name="text" >
+     <item row="0" column="0" colspan="2">
+      <widget class="QLabel" name="textLabel1_3">
+       <property name="text">
         <string>&amp;Translation Path Pattern:
-(Use '%language%' where the language code should be inserted, e.g. i18n/eric4_%language%.ts)</string>
+(Use '%language%' where the language code should be inserted, e.g. i18n/eric5_%language%.ts)</string>
        </property>
-       <property name="wordWrap" >
+       <property name="wordWrap">
         <bool>true</bool>
        </property>
-       <property name="buddy" >
+       <property name="buddy">
         <cstring>transPatternEdit</cstring>
        </property>
       </widget>
@@ -95,73 +96,73 @@
     </layout>
    </item>
    <item>
-    <widget class="QGroupBox" name="exceptionsGroup" >
-     <property name="title" >
+    <widget class="QGroupBox" name="exceptionsGroup">
+     <property name="title">
       <string>Exclude from translation</string>
      </property>
-     <layout class="QGridLayout" name="_4" >
-      <item row="2" column="3" >
-       <widget class="QPushButton" name="exceptDirButton" >
-        <property name="toolTip" >
+     <layout class="QGridLayout" name="_4">
+      <item row="2" column="3">
+       <widget class="QPushButton" name="exceptDirButton">
+        <property name="toolTip">
          <string>Press to select a directory via a selection dialog</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Select d&amp;irectory...</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="2" >
-       <widget class="QPushButton" name="exceptFileButton" >
-        <property name="toolTip" >
+      <item row="2" column="2">
+       <widget class="QPushButton" name="exceptFileButton">
+        <property name="toolTip">
          <string>Press to select a file via a selection dialog</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Select &amp;file...</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" >
-       <widget class="QPushButton" name="addExceptionButton" >
-        <property name="enabled" >
+      <item row="2" column="1">
+       <widget class="QPushButton" name="addExceptionButton">
+        <property name="enabled">
          <bool>false</bool>
         </property>
-        <property name="toolTip" >
+        <property name="toolTip">
          <string>Press to add the entered path or file to the list</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>&amp;Add</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" >
-       <widget class="QPushButton" name="deleteExceptionButton" >
-        <property name="enabled" >
+      <item row="2" column="0">
+       <widget class="QPushButton" name="deleteExceptionButton">
+        <property name="enabled">
          <bool>false</bool>
         </property>
-        <property name="toolTip" >
+        <property name="toolTip">
          <string>Press to delete the selected entry from the list</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>&amp;Delete</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" colspan="4" >
-       <widget class="QLineEdit" name="exceptionEdit" >
-        <property name="toolTip" >
+      <item row="1" column="0" colspan="4">
+       <widget class="QLineEdit" name="exceptionEdit">
+        <property name="toolTip">
          <string>Enter a path or file to be added</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" colspan="4" >
-       <widget class="QListWidget" name="exceptionsList" >
-        <property name="toolTip" >
+      <item row="0" column="0" colspan="4">
+       <widget class="QListWidget" name="exceptionsList">
+        <property name="toolTip">
          <string>List of paths or files to excude from translation</string>
         </property>
-        <property name="alternatingRowColors" >
+        <property name="alternatingRowColors">
          <bool>true</bool>
         </property>
-        <property name="sortingEnabled" >
+        <property name="sortingEnabled">
          <bool>true</bool>
         </property>
        </widget>
@@ -170,11 +171,11 @@
     </widget>
    </item>
    <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="standardButtons" >
+     <property name="standardButtons">
       <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
     </widget>
@@ -201,11 +202,11 @@
    <receiver>TranslationPropertiesDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>39</x>
      <y>523</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>39</x>
      <y>543</y>
     </hint>
@@ -217,11 +218,11 @@
    <receiver>TranslationPropertiesDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>110</x>
      <y>530</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>111</x>
      <y>543</y>
     </hint>
--- a/QScintilla/MiniEditor.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/QScintilla/MiniEditor.py	Sat Jan 09 19:43:36 2010 +0000
@@ -2078,7 +2078,7 @@
         key = 'Scintilla/%s/style0/font' % self.lexer_.language()
         fdesc = Preferences.Prefs.settings.value(key)
         if fdesc is not None:
-            font = QFont(fdesc[0], int(str(fdesc[1])))
+            font = QFont(fdesc[0], int(fdesc[1]))
             self.lexer_.setDefaultFont(font)
         self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla")
         
@@ -2339,4 +2339,4 @@
         fileEol = self.__textEdit.detectEolString(txt)
         self.__textEdit.setEolModeByEolString(fileEol)
         
-        self.__textEdit.setModified(False)
\ No newline at end of file
+        self.__textEdit.setModified(False)
--- a/SqlBrowser/SqlBrowserWidget.ui	Fri Jan 08 19:14:19 2010 +0000
+++ b/SqlBrowser/SqlBrowserWidget.ui	Sat Jan 09 19:43:36 2010 +0000
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>eric4 SQL Browser</string>
+   <string>eric5 SQL Browser</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
--- a/Tools/UIPreviewer.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/Tools/UIPreviewer.py	Sat Jan 09 19:43:36 2010 +0000
@@ -426,7 +426,7 @@
         filters = ""
         formats = QImageWriter.supportedImageFormats()
         for format in formats:
-            filters = "%s*.%s " % (filters, str(format).lower())
+            filters = "%s*.%s " % (filters, bytes(format).decode().lower())
         filter = self.trUtf8("Images ({0})").format(filters[:-1])
         
         fname = QFileDialog.getSaveFileName(\
--- a/UI/CompareDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/UI/CompareDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -58,19 +58,19 @@
     
     for (ln1, l1), (ln2, l2), flag in _mdiff(a, b, None, None, IS_CHARACTER_JUNK):
         if not flag:
-            yield ('e', str(linenumberformat % ln1), l1,
-                        str(linenumberformat % ln2), l2)
+            yield ('e', linenumberformat % ln1, l1,
+                        linenumberformat % ln2, l2)
             continue
         if ln2 == "" and l2 == "\n":
-            yield ('d', str(linenumberformat % ln1), removeMarkers(l1),
+            yield ('d', linenumberformat % ln1, removeMarkers(l1),
                         emptylineno, '\n')
             continue
         if ln1 == "" and l1 == "\n":
             yield ('i', emptylineno, '\n',
-                        str(linenumberformat % ln2), removeMarkers(l2))
+                        linenumberformat % ln2, removeMarkers(l2))
             continue
-        yield ('r', str(linenumberformat % ln1), l1,
-                    str(linenumberformat % ln2), l2)
+        yield ('r', linenumberformat % ln1, l1,
+                    linenumberformat % ln2, l2)
 
 class CompareDialog(QWidget, Ui_CompareDialog):
     """
@@ -221,7 +221,7 @@
         """
         filename1 = Utilities.toNativeSeparators(self.file1Edit.text())
         try:
-            f1 = open(filename1, "rb")
+            f1 = open(filename1, "r")
             lines1 = f1.readlines()
             f1.close()
         except IOError:
@@ -233,7 +233,7 @@
 
         filename2 = Utilities.toNativeSeparators(self.file2Edit.text())
         try:
-            f2 = open(filename2, "rb")
+            f2 = open(filename2, "r")
             lines2 = f2.readlines()
             f2.close()
         except IOError:
--- a/UI/DiffDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/UI/DiffDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -324,7 +324,7 @@
         except IOError:
             filemtime1 = ""
         try:
-            f1 = open(self.filename1, "rb")
+            f1 = open(self.filename1, "r")
             lines1 = f1.readlines()
             f1.close()
         except IOError:
@@ -340,7 +340,7 @@
         except IOError:
             filemtime2 = ""
         try:
-            f2 = open(self.filename2, "rb")
+            f2 = open(self.filename2, "r")
             lines2 = f2.readlines()
             f2.close()
         except IOError:
@@ -477,7 +477,7 @@
         """
         self.__selectFile(self.file1Edit)
 
-    @pyqtSlot("")
+    @pyqtSlot()
     def on_file2Button_clicked(self):
         """
         Private slot to handle the file 2 file selection button press.
--- a/UI/EmailDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/UI/EmailDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -22,7 +22,23 @@
 import Preferences
 import Utilities
 
+############################################################
+## This code is to work around a bug in the Python email  ##
+## package for Image and Audio mime messages.             ##
+############################################################
+from base64 import b64encode as _bencode
+def _encode_base64(msg):
+    """Encode the message's payload in Base64.
+
+    Also, add an appropriate Content-Transfer-Encoding header.
+    """
+    orig = msg.get_payload()
+    encdata = str(_bencode(orig), "ASCII")
+    msg.set_payload(encdata)
+    msg['Content-Transfer-Encoding'] = 'base64'
+
 from email import encoders
+encoders.encode_base64 = _encode_base64     # WORK AROUND: implement our corrected encoder
 from email.mime.base import MIMEBase
 from email.mime.text import MIMEText
 from email.mime.image import MIMEImage
@@ -195,19 +211,19 @@
         msg.epilogue = ''
         
         # second part is intended to be read
-        att = MIMEText(msgtext, 
+        att = MIMEText(msgtext.encode(), 
                        _charset = Preferences.getSystem("StringEncoding"))
         msg.attach(att)
         
         # next parts contain the attachments
         for index in range(self.attachments.topLevelItemCount()):
             itm = self.attachments.topLevelItem(index)
-            maintype, subtype = str(itm.text(1)).split('/', 1)
+            maintype, subtype = itm.text(1).split('/', 1)
             fname = itm.text(0)
             name = os.path.basename(fname)
             
             if maintype == 'text':
-                att = MIMEText(open(fname, 'rb').read(), _subtype = subtype)
+                att = MIMEText(open(fname, 'r').read(), _subtype = subtype)
             elif maintype == 'image':
                 att = MIMEImage(open(fname, 'rb').read(), _subtype = subtype)
             elif maintype == 'audio':
@@ -229,7 +245,7 @@
         @return flag indicating success (boolean)
         """
         try:
-            server = smtplib.SMTP(str(Preferences.getUser("MailServer")), 
+            server = smtplib.SMTP(Preferences.getUser("MailServer"), 
                                   Preferences.getUser("MailServerPort"))
             if Preferences.getUser("MailServerUseTLS"):
                 server.starttls()
--- a/UI/FindFileDialog.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/UI/FindFileDialog.py	Sat Jan 09 19:43:36 2010 +0000
@@ -370,7 +370,7 @@
                 text = f.read()
                 lines = text.splitlines()
                 f.close()
-            except IOError:
+            except (IOError, UnicodeError):
                 progress += 1
                 self.findProgress.setValue(progress)
                 continue
@@ -410,6 +410,10 @@
             progress += 1
             self.findProgress.setValue(progress)
         
+        if not files:
+            self.findProgress.setMaximum(1)
+            self.findProgress.setValue(1)
+        
         self.findProgressLabel.setPath("")
         
         self.findList.setUpdatesEnabled(True)
--- a/UI/UserInterface.py	Fri Jan 08 19:14:19 2010 +0000
+++ b/UI/UserInterface.py	Sat Jan 09 19:43:36 2010 +0000
@@ -5175,7 +5175,7 @@
             for window, i in zip(self.windows, list(range(len(self.windows)))):
                 if window is not None:
                     self.profiles[self.currentProfile][2][i] = \
-                        str(window.saveGeometry())
+                        bytes(window.saveGeometry())
 
         self.browser.saveToplevelDirs()
         

eric ide

mercurial