Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.

Sun, 19 Dec 2010 13:20:52 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 19 Dec 2010 13:20:52 +0100
changeset 757
d3daf1d8f058
parent 755
e81e1f8d7874
child 758
59c6bee45fc2

Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Debugger.DebugUI.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Download.DownloadManager.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpWindow.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.SslCertificatesDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Utilities.__init__.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.html file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadManager.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Dec 18 18:11:02 2010 +0100
+++ b/APIs/Python3/eric5.api	Sun Dec 19 13:20:52 2010 +0100
@@ -707,6 +707,7 @@
 eric5.Debugger.DebugServer.DebugServer.utTestFailed?7
 eric5.Debugger.DebugServer.DebugServer?1()
 eric5.Debugger.DebugServer.DebuggerInterfaces?7
+eric5.Debugger.DebugUI.DebugUI.appendStdout?7
 eric5.Debugger.DebugUI.DebugUI.clientStack?7
 eric5.Debugger.DebugUI.DebugUI.compileForms?7
 eric5.Debugger.DebugUI.DebugUI.compileResources?7
@@ -1864,6 +1865,7 @@
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.canceledFileSelect?4()
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.currentSpeed?4()
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.downloadCanceled?4()
+eric5.Helpviewer.Download.DownloadItem.DownloadItem.downloadFinished?7
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.downloadedSuccessfully?4()
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.downloading?4()
 eric5.Helpviewer.Download.DownloadItem.DownloadItem.fileName?4()
@@ -2367,6 +2369,13 @@
 eric5.Helpviewer.SearchWidget.SearchWidget.on_highlightAllCheckBox_toggled?4(checked)
 eric5.Helpviewer.SearchWidget.SearchWidget.showFind?4()
 eric5.Helpviewer.SearchWidget.SearchWidget?1(mainWindow, parent = None)
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.CertRole?7
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.on_caCertificatesTree_currentItemChanged?4(current, previous)
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.on_caViewButton_clicked?4()
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged?4(current, previous)
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.on_serversDeleteButton_clicked?4()
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog.on_serversViewButton_clicked?4()
+eric5.Helpviewer.SslCertificatesDialog.SslCertificatesDialog?1(parent = None)
 eric5.Helpviewer.SslInfoDialog.SslInfoDialog?1(certificate, parent = None)
 eric5.Helpviewer.UrlBar.BookmarkInfoDialog.BookmarkInfoDialog.accept?4()
 eric5.Helpviewer.UrlBar.BookmarkInfoDialog.BookmarkInfoDialog.on_removeButton_clicked?4()
@@ -6081,6 +6090,7 @@
 eric5.Utilities.configDir?7
 eric5.Utilities.convertLineEnds?4(text, eol)
 eric5.Utilities.decode?4(text)
+eric5.Utilities.decodeString?4(text)
 eric5.Utilities.direntries?4(path, filesonly=False, pattern=None, followsymlinks=True, checkStop=None)
 eric5.Utilities.encode?4(text, orig_coding)
 eric5.Utilities.escape_entities?4(m, map=_escape_map)
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Help/source.qhp	Sun Dec 19 13:20:52 2010 +0100
@@ -297,6 +297,7 @@
             <section title="eric5.Helpviewer.QtHelpDocumentationDialog" ref="eric5.Helpviewer.QtHelpDocumentationDialog.html" />
             <section title="eric5.Helpviewer.QtHelpFiltersDialog" ref="eric5.Helpviewer.QtHelpFiltersDialog.html" />
             <section title="eric5.Helpviewer.SearchWidget" ref="eric5.Helpviewer.SearchWidget.html" />
+            <section title="eric5.Helpviewer.SslCertificatesDialog" ref="eric5.Helpviewer.SslCertificatesDialog.html" />
             <section title="eric5.Helpviewer.SslInfoDialog" ref="eric5.Helpviewer.SslInfoDialog.html" />
           </section>
           <section title="eric5.IconEditor" ref="index-eric5.IconEditor.html">
@@ -2331,6 +2332,7 @@
       <keyword name="compile" id="compile" ref="eric5.Utilities.__init__.html#compile" />
       <keyword name="convertLineEnds" id="convertLineEnds" ref="eric5.Utilities.__init__.html#convertLineEnds" />
       <keyword name="decode" id="decode" ref="eric5.Utilities.__init__.html#decode" />
+      <keyword name="decodeString" id="decodeString" ref="eric5.Utilities.__init__.html#decodeString" />
       <keyword name="direntries" id="direntries" ref="eric5.Utilities.__init__.html#direntries" />
       <keyword name="encode" id="encode" ref="eric5.Utilities.__init__.html#encode" />
       <keyword name="escape_entities" id="escape_entities" ref="eric5.Utilities.__init__.html#escape_entities" />
@@ -2550,6 +2552,18 @@
       <keyword name="SslInfoDialog.__certificateString" id="SslInfoDialog.__certificateString" ref="eric5.Helpviewer.SslInfoDialog.html#SslInfoDialog.__certificateString" />
       <keyword name="SslInfoDialog.__formatHexString" id="SslInfoDialog.__formatHexString" ref="eric5.Helpviewer.SslInfoDialog.html#SslInfoDialog.__formatHexString" />
       <keyword name="SslInfoDialog.__serialNumber" id="SslInfoDialog.__serialNumber" ref="eric5.Helpviewer.SslInfoDialog.html#SslInfoDialog.__serialNumber" />
+      <keyword name="SslCertificatesDialog (Module)" id="SslCertificatesDialog (Module)" ref="eric5.Helpviewer.SslCertificatesDialog.html" />
+      <keyword name="SslCertificatesDialog" id="SslCertificatesDialog" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog" />
+      <keyword name="SslCertificatesDialog (Constructor)" id="SslCertificatesDialog (Constructor)" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.__init__" />
+      <keyword name="SslCertificatesDialog.__createCaCertificateEntry" id="SslCertificatesDialog.__createCaCertificateEntry" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.__createCaCertificateEntry" />
+      <keyword name="SslCertificatesDialog.__createServerCertificateEntry" id="SslCertificatesDialog.__createServerCertificateEntry" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.__createServerCertificateEntry" />
+      <keyword name="SslCertificatesDialog.__populateCaCertificatesTree" id="SslCertificatesDialog.__populateCaCertificatesTree" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.__populateCaCertificatesTree" />
+      <keyword name="SslCertificatesDialog.__populateServerCertificatesTree" id="SslCertificatesDialog.__populateServerCertificatesTree" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.__populateServerCertificatesTree" />
+      <keyword name="SslCertificatesDialog.on_caCertificatesTree_currentItemChanged" id="SslCertificatesDialog.on_caCertificatesTree_currentItemChanged" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.on_caCertificatesTree_currentItemChanged" />
+      <keyword name="SslCertificatesDialog.on_caViewButton_clicked" id="SslCertificatesDialog.on_caViewButton_clicked" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.on_caViewButton_clicked" />
+      <keyword name="SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged" id="SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged" />
+      <keyword name="SslCertificatesDialog.on_serversDeleteButton_clicked" id="SslCertificatesDialog.on_serversDeleteButton_clicked" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.on_serversDeleteButton_clicked" />
+      <keyword name="SslCertificatesDialog.on_serversViewButton_clicked" id="SslCertificatesDialog.on_serversViewButton_clicked" ref="eric5.Helpviewer.SslCertificatesDialog.html#SslCertificatesDialog.on_serversViewButton_clicked" />
       <keyword name="HelpTopicDialog (Module)" id="HelpTopicDialog (Module)" ref="eric5.Helpviewer.HelpTopicDialog.html" />
       <keyword name="HelpTopicDialog" id="HelpTopicDialog" ref="eric5.Helpviewer.HelpTopicDialog.html#HelpTopicDialog" />
       <keyword name="HelpTopicDialog (Constructor)" id="HelpTopicDialog (Constructor)" ref="eric5.Helpviewer.HelpTopicDialog.html#HelpTopicDialog.__init__" />
@@ -2717,6 +2731,7 @@
       <keyword name="HelpWindow.__showAdBlockDialog" id="HelpWindow.__showAdBlockDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showAdBlockDialog" />
       <keyword name="HelpWindow.__showBackMenu" id="HelpWindow.__showBackMenu" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showBackMenu" />
       <keyword name="HelpWindow.__showBookmarksDialog" id="HelpWindow.__showBookmarksDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showBookmarksDialog" />
+      <keyword name="HelpWindow.__showCertificatesDialog" id="HelpWindow.__showCertificatesDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showCertificatesDialog" />
       <keyword name="HelpWindow.__showCookiesConfiguration" id="HelpWindow.__showCookiesConfiguration" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showCookiesConfiguration" />
       <keyword name="HelpWindow.__showDownloadsWindow" id="HelpWindow.__showDownloadsWindow" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showDownloadsWindow" />
       <keyword name="HelpWindow.__showEnginesConfigurationDialog" id="HelpWindow.__showEnginesConfigurationDialog" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.__showEnginesConfigurationDialog" />
@@ -7392,7 +7407,9 @@
       <keyword name="DownloadManager.__contextMenuSelectAll" id="DownloadManager.__contextMenuSelectAll" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuSelectAll" />
       <keyword name="DownloadManager.__currentItem" id="DownloadManager.__currentItem" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__currentItem" />
       <keyword name="DownloadManager.__customContextMenuRequested" id="DownloadManager.__customContextMenuRequested" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__customContextMenuRequested" />
+      <keyword name="DownloadManager.__finished" id="DownloadManager.__finished" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__finished" />
       <keyword name="DownloadManager.__load" id="DownloadManager.__load" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__load" />
+      <keyword name="DownloadManager.__updateActiveItemCount" id="DownloadManager.__updateActiveItemCount" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateActiveItemCount" />
       <keyword name="DownloadManager.__updateItemCount" id="DownloadManager.__updateItemCount" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateItemCount" />
       <keyword name="DownloadManager.__updateRow" id="DownloadManager.__updateRow" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateRow" />
       <keyword name="DownloadManager.activeDownloads" id="DownloadManager.activeDownloads" ref="eric5.Helpviewer.Download.DownloadManager.html#DownloadManager.activeDownloads" />
@@ -10065,6 +10082,7 @@
       <file>eric5.Helpviewer.QtHelpDocumentationDialog.html</file>
       <file>eric5.Helpviewer.QtHelpFiltersDialog.html</file>
       <file>eric5.Helpviewer.SearchWidget.html</file>
+      <file>eric5.Helpviewer.SslCertificatesDialog.html</file>
       <file>eric5.Helpviewer.SslInfoDialog.html</file>
       <file>eric5.Helpviewer.UrlBar.BookmarkInfoDialog.html</file>
       <file>eric5.Helpviewer.UrlBar.FavIconLabel.html</file>
--- a/Documentation/Source/eric5.Debugger.DebugUI.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/eric5.Debugger.DebugUI.html	Sun Dec 19 13:20:52 2010 +0100
@@ -46,7 +46,11 @@
     Class implementing the debugger part of the UI.
 </p><h4>Signals</h4>
 <dl>
-<dt>clientStack(stack)</dt>
+<dt>appendStdout(msg)</dt>
+<dd>
+emitted when the client program has terminated and the
+        display of the termination dialog is suppressed
+</dd><dt>clientStack(stack)</dt>
 <dd>
 emitted at breaking after a reported exception
 </dd><dt>compileForms()</dt>
@@ -71,7 +75,7 @@
 QObject
 <h3>Class Attributes</h3>
 <table>
-<tr><td>clientStack</td></tr><tr><td>compileForms</td></tr><tr><td>compileResources</td></tr><tr><td>debuggingStarted</td></tr><tr><td>exceptionInterrupt</td></tr><tr><td>resetUI</td></tr>
+<tr><td>appendStdout</td></tr><tr><td>clientStack</td></tr><tr><td>compileForms</td></tr><tr><td>compileResources</td></tr><tr><td>debuggingStarted</td></tr><tr><td>exceptionInterrupt</td></tr><tr><td>resetUI</td></tr>
 </table>
 <h3>Methods</h3>
 <table>
--- a/Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html	Sun Dec 19 13:20:52 2010 +0100
@@ -44,12 +44,24 @@
 <h2>DownloadItem</h2>
 <p>
     Class implementing a widget controlling a download.
-</p>
+</p><h4>Signals</h4>
+<dl>
+<dt>downloadFinished()</dt>
+<dd>
+emitted when a download finished
+</dd><dt>progress(int, int)</dt>
+<dd>
+emitted to signal the download progress
+</dd><dt>statusChanged()</dt>
+<dd>
+emitted upon a status change of a download
+</dd>
+</dl>
 <h3>Derived from</h3>
 QWidget, Ui_DownloadItem
 <h3>Class Attributes</h3>
 <table>
-<tr><td>progress</td></tr><tr><td>statusChanged</td></tr>
+<tr><td>downloadFinished</td></tr><tr><td>progress</td></tr><tr><td>statusChanged</td></tr>
 </table>
 <h3>Methods</h3>
 <table>
--- a/Documentation/Source/eric5.Helpviewer.Download.DownloadManager.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Download.DownloadManager.html	Sun Dec 19 13:20:52 2010 +0100
@@ -90,9 +90,15 @@
 <td><a href="#DownloadManager.__customContextMenuRequested">__customContextMenuRequested</a></td>
 <td>Private slot to handle the context menu request for the bookmarks tree.</td>
 </tr><tr>
+<td><a href="#DownloadManager.__finished">__finished</a></td>
+<td>Private slot to handle a finished download.</td>
+</tr><tr>
 <td><a href="#DownloadManager.__load">__load</a></td>
 <td>Private method to load the download settings.</td>
 </tr><tr>
+<td><a href="#DownloadManager.__updateActiveItemCount">__updateActiveItemCount</a></td>
+<td>Private method to update the window title.</td>
+</tr><tr>
 <td><a href="#DownloadManager.__updateItemCount">__updateItemCount</a></td>
 <td>Private method to update the count label.</td>
 </tr><tr>
@@ -225,11 +231,21 @@
 <dd>
 position the context menu was requested (QPoint)
 </dd>
-</dl><a NAME="DownloadManager.__load" ID="DownloadManager.__load"></a>
+</dl><a NAME="DownloadManager.__finished" ID="DownloadManager.__finished"></a>
+<h4>DownloadManager.__finished</h4>
+<b>__finished</b>(<i></i>)
+<p>
+        Private slot to handle a finished download.
+</p><a NAME="DownloadManager.__load" ID="DownloadManager.__load"></a>
 <h4>DownloadManager.__load</h4>
 <b>__load</b>(<i></i>)
 <p>
         Private method to load the download settings.
+</p><a NAME="DownloadManager.__updateActiveItemCount" ID="DownloadManager.__updateActiveItemCount"></a>
+<h4>DownloadManager.__updateActiveItemCount</h4>
+<b>__updateActiveItemCount</b>(<i></i>)
+<p>
+        Private method to update the window title.
 </p><a NAME="DownloadManager.__updateItemCount" ID="DownloadManager.__updateItemCount"></a>
 <h4>DownloadManager.__updateItemCount</h4>
 <b>__updateItemCount</b>(<i></i>)
--- a/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sun Dec 19 13:20:52 2010 +0100
@@ -220,6 +220,9 @@
 <td><a href="#HelpWindow.__showBookmarksDialog">__showBookmarksDialog</a></td>
 <td>Private slot to show the bookmarks dialog.</td>
 </tr><tr>
+<td><a href="#HelpWindow.__showCertificatesDialog">__showCertificatesDialog</a></td>
+<td>Private slot to show the certificates management dialog.</td>
+</tr><tr>
 <td><a href="#HelpWindow.__showCookiesConfiguration">__showCookiesConfiguration</a></td>
 <td>Private slot to configure the cookies handling.</td>
 </tr><tr>
@@ -736,6 +739,11 @@
 <b>__showBookmarksDialog</b>(<i></i>)
 <p>
         Private slot to show the bookmarks dialog.
+</p><a NAME="HelpWindow.__showCertificatesDialog" ID="HelpWindow.__showCertificatesDialog"></a>
+<h4>HelpWindow.__showCertificatesDialog</h4>
+<b>__showCertificatesDialog</b>(<i></i>)
+<p>
+        Private slot to show the certificates management dialog.
 </p><a NAME="HelpWindow.__showCookiesConfiguration" ID="HelpWindow.__showCookiesConfiguration"></a>
 <h4>HelpWindow.__showCookiesConfiguration</h4>
 <b>__showCookiesConfiguration</b>(<i></i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.SslCertificatesDialog.html	Sun Dec 19 13:20:52 2010 +0100
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.SslCertificatesDialog</title>
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.Helpviewer.SslCertificatesDialog</h1>
+<p>
+Module implementing a dialog to show and edit all certificates.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#SslCertificatesDialog">SslCertificatesDialog</a></td>
+<td>Class implementing a dialog to show and edit all certificates.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="SslCertificatesDialog" ID="SslCertificatesDialog"></a>
+<h2>SslCertificatesDialog</h2>
+<p>
+    Class implementing a dialog to show and edit all certificates.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_SslCertificatesDialog
+<h3>Class Attributes</h3>
+<table>
+<tr><td>CertRole</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#SslCertificatesDialog.__init__">SslCertificatesDialog</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.__createCaCertificateEntry">__createCaCertificateEntry</a></td>
+<td>Private method to create a CA certificate entry.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.__createServerCertificateEntry">__createServerCertificateEntry</a></td>
+<td>Private method to create a server certificate entry.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.__populateCaCertificatesTree">__populateCaCertificatesTree</a></td>
+<td>Private slot to populate the CA certificates tree.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.__populateServerCertificatesTree">__populateServerCertificatesTree</a></td>
+<td>Private slot to populate the server certificates tree.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.on_caCertificatesTree_currentItemChanged">on_caCertificatesTree_currentItemChanged</a></td>
+<td>Private slot handling a change of the current item in the CA certificates list.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.on_caViewButton_clicked">on_caViewButton_clicked</a></td>
+<td>Private slot to show data of the selected CA certificate.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged">on_serversCertificatesTree_currentItemChanged</a></td>
+<td>Private slot handling a change of the current item in the server certificates list.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.on_serversDeleteButton_clicked">on_serversDeleteButton_clicked</a></td>
+<td>Private slot to delete the selected server certificate.</td>
+</tr><tr>
+<td><a href="#SslCertificatesDialog.on_serversViewButton_clicked">on_serversViewButton_clicked</a></td>
+<td>Private slot to show data of the selected server certificate.</td>
+</tr>
+</table>
+<a NAME="SslCertificatesDialog.__init__" ID="SslCertificatesDialog.__init__"></a>
+<h4>SslCertificatesDialog (Constructor)</h4>
+<b>SslCertificatesDialog</b>(<i>parent = None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="SslCertificatesDialog.__createCaCertificateEntry" ID="SslCertificatesDialog.__createCaCertificateEntry"></a>
+<h4>SslCertificatesDialog.__createCaCertificateEntry</h4>
+<b>__createCaCertificateEntry</b>(<i>cert</i>)
+<p>
+        Private method to create a CA certificate entry.
+</p><dl>
+<dt><i>cert</i></dt>
+<dd>
+certificate to insert (QSslCertificate)
+</dd>
+</dl><a NAME="SslCertificatesDialog.__createServerCertificateEntry" ID="SslCertificatesDialog.__createServerCertificateEntry"></a>
+<h4>SslCertificatesDialog.__createServerCertificateEntry</h4>
+<b>__createServerCertificateEntry</b>(<i>server, cert</i>)
+<p>
+        Private method to create a server certificate entry.
+</p><dl>
+<dt><i>server</i></dt>
+<dd>
+server name of the certificate (string)
+</dd><dt><i>cert</i></dt>
+<dd>
+certificate to insert (QSslCertificate)
+</dd>
+</dl><a NAME="SslCertificatesDialog.__populateCaCertificatesTree" ID="SslCertificatesDialog.__populateCaCertificatesTree"></a>
+<h4>SslCertificatesDialog.__populateCaCertificatesTree</h4>
+<b>__populateCaCertificatesTree</b>(<i></i>)
+<p>
+        Private slot to populate the CA certificates tree.
+</p><a NAME="SslCertificatesDialog.__populateServerCertificatesTree" ID="SslCertificatesDialog.__populateServerCertificatesTree"></a>
+<h4>SslCertificatesDialog.__populateServerCertificatesTree</h4>
+<b>__populateServerCertificatesTree</b>(<i></i>)
+<p>
+        Private slot to populate the server certificates tree.
+</p><a NAME="SslCertificatesDialog.on_caCertificatesTree_currentItemChanged" ID="SslCertificatesDialog.on_caCertificatesTree_currentItemChanged"></a>
+<h4>SslCertificatesDialog.on_caCertificatesTree_currentItemChanged</h4>
+<b>on_caCertificatesTree_currentItemChanged</b>(<i>current, previous</i>)
+<p>
+        Private slot handling a change of the current item 
+        in the CA certificates list.
+</p><dl>
+<dt><i>current</i></dt>
+<dd>
+new current item (QTreeWidgetItem)
+</dd><dt><i>previous</i></dt>
+<dd>
+previous current item (QTreeWidgetItem)
+</dd>
+</dl><a NAME="SslCertificatesDialog.on_caViewButton_clicked" ID="SslCertificatesDialog.on_caViewButton_clicked"></a>
+<h4>SslCertificatesDialog.on_caViewButton_clicked</h4>
+<b>on_caViewButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show data of the selected CA certificate.
+</p><a NAME="SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged" ID="SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged"></a>
+<h4>SslCertificatesDialog.on_serversCertificatesTree_currentItemChanged</h4>
+<b>on_serversCertificatesTree_currentItemChanged</b>(<i>current, previous</i>)
+<p>
+        Private slot handling a change of the current item in the
+        server certificates list.
+</p><dl>
+<dt><i>current</i></dt>
+<dd>
+new current item (QTreeWidgetItem)
+</dd><dt><i>previous</i></dt>
+<dd>
+previous current item (QTreeWidgetItem)
+</dd>
+</dl><a NAME="SslCertificatesDialog.on_serversDeleteButton_clicked" ID="SslCertificatesDialog.on_serversDeleteButton_clicked"></a>
+<h4>SslCertificatesDialog.on_serversDeleteButton_clicked</h4>
+<b>on_serversDeleteButton_clicked</b>(<i></i>)
+<p>
+        Private slot to delete the selected server certificate.
+</p><a NAME="SslCertificatesDialog.on_serversViewButton_clicked" ID="SslCertificatesDialog.on_serversViewButton_clicked"></a>
+<h4>SslCertificatesDialog.on_serversViewButton_clicked</h4>
+<b>on_serversViewButton_clicked</b>(<i></i>)
+<p>
+        Private slot to show data of the selected server certificate.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Utilities.__init__.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/eric5.Utilities.__init__.html	Sun Dec 19 13:20:52 2010 +0100
@@ -59,6 +59,9 @@
 <td><a href="#decode">decode</a></td>
 <td>Function to decode some byte text into a string.</td>
 </tr><tr>
+<td><a href="#decodeString">decodeString</a></td>
+<td>Function to decode a string containing Unicode encoded characters.</td>
+</tr><tr>
 <td><a href="#direntries">direntries</a></td>
 <td>Function returning a list of all files and directories.</td>
 </tr><tr>
@@ -417,6 +420,24 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="decodeString" ID="decodeString"></a>
+<h2>decodeString</h2>
+<b>decodeString</b>(<i>text</i>)
+<p>
+    Function to decode a string containing Unicode encoded characters.
+</p><dl>
+<dt><i>text</i></dt>
+<dd>
+text containing encoded chars (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+decoded text (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="direntries" ID="direntries"></a>
 <h2>direntries</h2>
 <b>direntries</b>(<i>path, filesonly=False, pattern=None, followsymlinks=True, checkStop=None</i>)
--- a/Documentation/Source/index-eric5.Helpviewer.html	Sat Dec 18 18:11:02 2010 +0100
+++ b/Documentation/Source/index-eric5.Helpviewer.html	Sun Dec 19 13:20:52 2010 +0100
@@ -125,6 +125,9 @@
 <td><a href="eric5.Helpviewer.SearchWidget.html">SearchWidget</a></td>
 <td>Module implementing the search bar for the web browser.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.SslCertificatesDialog.html">SslCertificatesDialog</a></td>
+<td>Module implementing a dialog to show and edit all certificates.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.SslInfoDialog.html">SslInfoDialog</a></td>
 <td>Module implementing a dialog to show SSL certificate infos.</td>
 </tr>
--- a/Helpviewer/Download/DownloadItem.py	Sat Dec 18 18:11:02 2010 +0100
+++ b/Helpviewer/Download/DownloadItem.py	Sun Dec 19 13:20:52 2010 +0100
@@ -26,8 +26,13 @@
 class DownloadItem(QWidget, Ui_DownloadItem):
     """
     Class implementing a widget controlling a download.
+    
+    @signal statusChanged() emitted upon a status change of a download
+    @signal downloadFinished() emitted when a download finished
+    @signal progress(int, int) emitted to signal the download progress
     """
     statusChanged = pyqtSignal()
+    downloadFinished = pyqtSignal()
     progress = pyqtSignal(int, int)
     
     def __init__(self, reply = None, requestFilename = False, webPage = None, 
@@ -296,6 +301,7 @@
         self.openButton.setVisible(False)
         self.setUpdatesEnabled(True)
         self.__reply.abort()
+        self.downloadFinished.emit()
     
     @pyqtSlot()
     def on_openButton_clicked(self):
@@ -357,6 +363,7 @@
             .format(self.__reply.errorString()))
         self.tryAgainButton.setEnabled(True)
         self.tryAgainButton.setVisible(True)
+        self.downloadFinished.emit()
     
     def __metaDataChanged(self):
         """
@@ -519,6 +526,7 @@
         self.__output.close()
         self.__updateInfoLabel()
         self.statusChanged.emit()
+        self.downloadFinished.emit()
         
         if self.__autoOpen:
             self.__open()
--- a/Helpviewer/Download/DownloadManager.py	Sat Dec 18 18:11:02 2010 +0100
+++ b/Helpviewer/Download/DownloadManager.py	Sun Dec 19 13:20:52 2010 +0100
@@ -191,6 +191,7 @@
         @param itm reference to the download item (DownloadItem)
         """
         itm.statusChanged.connect(self.__updateRow)
+        itm.downloadFinished.connect(self.__finished)
         
         row = len(self.__downloads)
         self.__model.beginInsertRows(QModelIndex(), row, row)
@@ -204,6 +205,7 @@
         # just in case the download finished before the constructor returned
         self.__updateRow(itm)
         self.changeOccurred()
+        self.__updateActiveItemCount()
     
     def __updateRow(self, itm = None):
         """
@@ -315,6 +317,7 @@
             (len(self.__downloads) - self.activeDownloads()) > 0)
         
         self.__loaded = True
+        self.__updateActiveItemCount()
     
     def cleanup(self):
         """
@@ -336,6 +339,7 @@
                self.__iconProvider = None
         
         self.changeOccurred()
+        self.__updateActiveItemCount()
     
     def __updateItemCount(self):
         """
@@ -344,6 +348,24 @@
         count = len(self.__downloads)
         self.countLabel.setText(self.trUtf8("%n Download(s)", "", count))
     
+    def __updateActiveItemCount(self):
+        """
+        Private method to update the window title.
+        """
+        count = self.activeDownloads()
+        if count > 0:
+            self.setWindowTitle(self.trUtf8("Downloading %n file(s)", "", count))
+        else:
+            self.setWindowTitle(self.trUtf8("Downloads"))
+    
+    def __finished(self):
+        """
+        Private slot to handle a finished download.
+        """
+        self.__updateActiveItemCount()
+        if self.isVisible():
+            QApplication.alert(self)
+    
     def setDownloadDirectory(self, directory):
         """
         Public method to set the current download directory.
--- a/Helpviewer/HelpBrowserWV.py	Sat Dec 18 18:11:02 2010 +0100
+++ b/Helpviewer/HelpBrowserWV.py	Sun Dec 19 13:20:52 2010 +0100
@@ -175,6 +175,11 @@
         self.__lastRequest = request
         self.__lastRequestType = type_
         
+        scheme = request.url().scheme()
+        if scheme == "mailto":
+            QDesktopServices.openUrl(request.url())
+            return False
+        
         if type_ == QWebPage.NavigationTypeFormResubmitted:
             res = E5MessageBox.yesNo(self.view(),
                 self.trUtf8("Resending POST request"),
@@ -575,10 +580,9 @@
                     """ for URL <b>{0}</b>.</p>""").format(name.toString()))
             return
         elif name.scheme() == "javascript":
-            scriptSource = name.toString()[11:]
-            res = self.page().mainFrame().evaluateJavaScript(scriptSource)
-            if res:
-                self.setHtml(res)
+            scriptSource = QUrl.fromPercentEncoding(name.toString(
+                QUrl.FormattingOptions(QUrl.TolerantMode | QUrl.RemoveScheme)))
+            self.page().mainFrame().evaluateJavaScript(scriptSource)
             return
         else:
             if name.toString().endswith(".pdf") or \

eric ide

mercurial