Added a handler for file: schemes to allow directory listings.

Mon, 24 Sep 2012 20:23:18 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Sep 2012 20:23:18 +0200
changeset 2063
2227d4cc905e
parent 2062
f275d3afe038
child 2064
79cfe18963ae

Added a handler for file: schemes to allow directory listings.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.FileAccessHandler.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.FileReply.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.Network.html file | annotate | diff | comparison | revisions
Helpviewer/Network/FileAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Network/FileReply.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Mon Sep 24 19:14:39 2012 +0200
+++ b/APIs/Python3/eric5.api	Mon Sep 24 20:23:18 2012 +0200
@@ -2614,6 +2614,14 @@
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler._homePage?8
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler._speedDialPage?8
 eric5.Helpviewer.Network.EricAccessHandler.EricAccessHandler.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.Network.FileAccessHandler.FileAccessHandler.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.Network.FileAccessHandler.FileAccessHandler?1(parent=None)
+eric5.Helpviewer.Network.FileReply.FileReply.abort?4()
+eric5.Helpviewer.Network.FileReply.FileReply.bytesAvailable?4()
+eric5.Helpviewer.Network.FileReply.FileReply.isSequential?4()
+eric5.Helpviewer.Network.FileReply.FileReply.readData?4(maxlen)
+eric5.Helpviewer.Network.FileReply.FileReply?1(url, parent=None)
+eric5.Helpviewer.Network.FileReply.dirListPage_html?7
 eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.close?4()
 eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.error?4()
 eric5.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.errorString?4()
--- a/APIs/Python3/eric5.bas	Mon Sep 24 19:14:39 2012 +0200
+++ b/APIs/Python3/eric5.bas	Mon Sep 24 20:23:18 2012 +0200
@@ -214,8 +214,10 @@
 FeedsManager QDialog Ui_FeedsManager
 Fetch HgExtension
 FetchProjectHelper HgExtensionProjectHelper
+FileAccessHandler SchemeAccessHandler
 FileDialogWizard QObject
 FileDialogWizardDialog QDialog Ui_FileDialogWizardDialog
+FileReply QNetworkReply
 FiletypeAssociationDialog QDialog Ui_FiletypeAssociationDialog
 FindFileDialog QDialog Ui_FindFileDialog
 FindFileNameDialog QWidget Ui_FindFileNameDialog
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Mon Sep 24 19:14:39 2012 +0200
+++ b/Documentation/Help/source.qhp	Mon Sep 24 20:23:18 2012 +0200
@@ -279,6 +279,8 @@
               <section title="eric5.Helpviewer.Network.AboutAccessHandler" ref="eric5.Helpviewer.Network.AboutAccessHandler.html" />
               <section title="eric5.Helpviewer.Network.EmptyNetworkReply" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html" />
               <section title="eric5.Helpviewer.Network.EricAccessHandler" ref="eric5.Helpviewer.Network.EricAccessHandler.html" />
+              <section title="eric5.Helpviewer.Network.FileAccessHandler" ref="eric5.Helpviewer.Network.FileAccessHandler.html" />
+              <section title="eric5.Helpviewer.Network.FileReply" ref="eric5.Helpviewer.Network.FileReply.html" />
               <section title="eric5.Helpviewer.Network.FollowRedirectReply" ref="eric5.Helpviewer.Network.FollowRedirectReply.html" />
               <section title="eric5.Helpviewer.Network.FtpAccessHandler" ref="eric5.Helpviewer.Network.FtpAccessHandler.html" />
               <section title="eric5.Helpviewer.Network.FtpReply" ref="eric5.Helpviewer.Network.FtpReply.html" />
@@ -4390,6 +4392,10 @@
       <keyword name="FetchProjectHelper.initActions" id="FetchProjectHelper.initActions" ref="eric5.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.initActions" />
       <keyword name="FetchProjectHelper.initMenu" id="FetchProjectHelper.initMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.initMenu" />
       <keyword name="FetchProjectHelper.menuTitle" id="FetchProjectHelper.menuTitle" ref="eric5.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.menuTitle" />
+      <keyword name="FileAccessHandler" id="FileAccessHandler" ref="eric5.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler" />
+      <keyword name="FileAccessHandler (Constructor)" id="FileAccessHandler (Constructor)" ref="eric5.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler.__init__" />
+      <keyword name="FileAccessHandler (Module)" id="FileAccessHandler (Module)" ref="eric5.Helpviewer.Network.FileAccessHandler.html" />
+      <keyword name="FileAccessHandler.createRequest" id="FileAccessHandler.createRequest" ref="eric5.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler.createRequest" />
       <keyword name="FileDialogWizard" id="FileDialogWizard" ref="eric5.Plugins.PluginWizardQFileDialog.html#FileDialogWizard" />
       <keyword name="FileDialogWizard (Constructor)" id="FileDialogWizard (Constructor)" ref="eric5.Plugins.PluginWizardQFileDialog.html#FileDialogWizard.__init__" />
       <keyword name="FileDialogWizard (Package)" id="FileDialogWizard (Package)" ref="index-eric5.Plugins.WizardPlugins.FileDialogWizard.html" />
@@ -4409,6 +4415,15 @@
       <keyword name="FileDialogWizardDialog.getCode" id="FileDialogWizardDialog.getCode" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.getCode" />
       <keyword name="FileDialogWizardDialog.on_bTest_clicked" id="FileDialogWizardDialog.on_bTest_clicked" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.on_bTest_clicked" />
       <keyword name="FileDialogWizardDialog.on_buttonBox_clicked" id="FileDialogWizardDialog.on_buttonBox_clicked" ref="eric5.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.on_buttonBox_clicked" />
+      <keyword name="FileReply" id="FileReply" ref="eric5.Helpviewer.Network.FileReply.html#FileReply" />
+      <keyword name="FileReply (Constructor)" id="FileReply (Constructor)" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.__init__" />
+      <keyword name="FileReply (Module)" id="FileReply (Module)" ref="eric5.Helpviewer.Network.FileReply.html" />
+      <keyword name="FileReply.__cssLinkClass" id="FileReply.__cssLinkClass" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.__cssLinkClass" />
+      <keyword name="FileReply.__loadDirectory" id="FileReply.__loadDirectory" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.__loadDirectory" />
+      <keyword name="FileReply.abort" id="FileReply.abort" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.abort" />
+      <keyword name="FileReply.bytesAvailable" id="FileReply.bytesAvailable" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.bytesAvailable" />
+      <keyword name="FileReply.isSequential" id="FileReply.isSequential" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.isSequential" />
+      <keyword name="FileReply.readData" id="FileReply.readData" ref="eric5.Helpviewer.Network.FileReply.html#FileReply.readData" />
       <keyword name="FiletypeAssociationDialog" id="FiletypeAssociationDialog" ref="eric5.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog" />
       <keyword name="FiletypeAssociationDialog (Constructor)" id="FiletypeAssociationDialog (Constructor)" ref="eric5.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.__init__" />
       <keyword name="FiletypeAssociationDialog (Module)" id="FiletypeAssociationDialog (Module)" ref="eric5.Project.FiletypeAssociationDialog.html" />
@@ -12628,6 +12643,8 @@
       <file>eric5.Helpviewer.Network.AboutAccessHandler.html</file>
       <file>eric5.Helpviewer.Network.EmptyNetworkReply.html</file>
       <file>eric5.Helpviewer.Network.EricAccessHandler.html</file>
+      <file>eric5.Helpviewer.Network.FileAccessHandler.html</file>
+      <file>eric5.Helpviewer.Network.FileReply.html</file>
       <file>eric5.Helpviewer.Network.FollowRedirectReply.html</file>
       <file>eric5.Helpviewer.Network.FtpAccessHandler.html</file>
       <file>eric5.Helpviewer.Network.FtpReply.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Network.FileAccessHandler.html	Mon Sep 24 20:23:18 2012 +0200
@@ -0,0 +1,107 @@
+<?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.Network.FileAccessHandler</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.Network.FileAccessHandler</h1>
+<p>
+Module implementing a scheme access handler for file.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#FileAccessHandler">FileAccessHandler</a></td>
+<td>Class implementing a scheme access handler for FTP.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="FileAccessHandler" ID="FileAccessHandler"></a>
+<h2>FileAccessHandler</h2>
+<p>
+    Class implementing a scheme access handler for FTP.
+</p>
+<h3>Derived from</h3>
+SchemeAccessHandler
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#FileAccessHandler.__init__">FileAccessHandler</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#FileAccessHandler.createRequest">createRequest</a></td>
+<td>Protected method to create a request.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="FileAccessHandler.__init__" ID="FileAccessHandler.__init__"></a>
+<h4>FileAccessHandler (Constructor)</h4>
+<b>FileAccessHandler</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="FileAccessHandler.createRequest" ID="FileAccessHandler.createRequest"></a>
+<h4>FileAccessHandler.createRequest</h4>
+<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
+<p>
+        Protected method to create a request.
+</p><dl>
+<dt><i>op</i></dt>
+<dd>
+the operation to be performed (QNetworkAccessManager.Operation)
+</dd><dt><i>request</i></dt>
+<dd>
+reference to the request object (QNetworkRequest)
+</dd><dt><i>outgoingData</i></dt>
+<dd>
+reference to an IODevice containing data to be sent
+            (QIODevice)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the created reply object (QNetworkReply)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Network.FileReply.html	Mon Sep 24 20:23:18 2012 +0200
@@ -0,0 +1,166 @@
+<?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.Network.FileReply</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.Network.FileReply</h1>
+<p>
+Module implementing a network reply class for directory resources.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>dirListPage_html</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#FileReply">FileReply</a></td>
+<td>Class implementing a network reply for directory resources.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="FileReply" ID="FileReply"></a>
+<h2>FileReply</h2>
+<p>
+    Class implementing a network reply for directory resources.
+</p>
+<h3>Derived from</h3>
+QNetworkReply
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#FileReply.__init__">FileReply</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#FileReply.__cssLinkClass">__cssLinkClass</a></td>
+<td>Private method to generate a link class with an icon.</td>
+</tr><tr>
+<td><a href="#FileReply.__loadDirectory">__loadDirectory</a></td>
+<td>Private slot loading the directory and preparing the listing page.</td>
+</tr><tr>
+<td><a href="#FileReply.abort">abort</a></td>
+<td>Public slot to abort the operation.</td>
+</tr><tr>
+<td><a href="#FileReply.bytesAvailable">bytesAvailable</a></td>
+<td>Public method to determined the bytes available for being read.</td>
+</tr><tr>
+<td><a href="#FileReply.isSequential">isSequential</a></td>
+<td>Public method to check for sequential access.</td>
+</tr><tr>
+<td><a href="#FileReply.readData">readData</a></td>
+<td>Protected method to retrieve data from the reply object.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="FileReply.__init__" ID="FileReply.__init__"></a>
+<h4>FileReply (Constructor)</h4>
+<b>FileReply</b>(<i>url, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>url</i></dt>
+<dd>
+requested FTP URL (QUrl)
+</dd><dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="FileReply.__cssLinkClass" ID="FileReply.__cssLinkClass"></a>
+<h4>FileReply.__cssLinkClass</h4>
+<b>__cssLinkClass</b>(<i>icon, size=32</i>)
+<p>
+        Private method to generate a link class with an icon.
+</p><dl>
+<dt><i>icon</i></dt>
+<dd>
+icon to be included (QIcon)
+</dd><dt><i>size</i></dt>
+<dd>
+size of the icon to be generated (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+CSS class string (string)
+</dd>
+</dl><a NAME="FileReply.__loadDirectory" ID="FileReply.__loadDirectory"></a>
+<h4>FileReply.__loadDirectory</h4>
+<b>__loadDirectory</b>(<i></i>)
+<p>
+        Private slot loading the directory and preparing the listing page.
+</p><a NAME="FileReply.abort" ID="FileReply.abort"></a>
+<h4>FileReply.abort</h4>
+<b>abort</b>(<i></i>)
+<p>
+        Public slot to abort the operation.
+</p><a NAME="FileReply.bytesAvailable" ID="FileReply.bytesAvailable"></a>
+<h4>FileReply.bytesAvailable</h4>
+<b>bytesAvailable</b>(<i></i>)
+<p>
+        Public method to determined the bytes available for being read.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+bytes available (integer)
+</dd>
+</dl><a NAME="FileReply.isSequential" ID="FileReply.isSequential"></a>
+<h4>FileReply.isSequential</h4>
+<b>isSequential</b>(<i></i>)
+<p>
+        Public method to check for sequential access.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating sequential access (boolean)
+</dd>
+</dl><a NAME="FileReply.readData" ID="FileReply.readData"></a>
+<h4>FileReply.readData</h4>
+<b>readData</b>(<i>maxlen</i>)
+<p>
+        Protected method to retrieve data from the reply object.
+</p><dl>
+<dt><i>maxlen</i></dt>
+<dd>
+maximum number of bytes to read (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+string containing the data (bytes)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Helpviewer.Network.html	Mon Sep 24 19:14:39 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.Network.html	Mon Sep 24 20:23:18 2012 +0200
@@ -38,6 +38,12 @@
 <td><a href="eric5.Helpviewer.Network.EricAccessHandler.html">EricAccessHandler</a></td>
 <td>Module implementing a scheme access handler for Python resources.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Network.FileAccessHandler.html">FileAccessHandler</a></td>
+<td>Module implementing a scheme access handler for file.</td>
+</tr><tr>
+<td><a href="eric5.Helpviewer.Network.FileReply.html">FileReply</a></td>
+<td>Module implementing a network reply class for directory resources.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Network.FollowRedirectReply.html">FollowRedirectReply</a></td>
 <td>Module implementing a network reply delegate allowing to check redirects.</td>
 </tr><tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Network/FileAccessHandler.py	Mon Sep 24 20:23:18 2012 +0200
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a scheme access handler for file.
+"""
+
+from PyQt4.QtCore import QFileInfo
+from PyQt4.QtNetwork import QNetworkAccessManager
+
+from .SchemeAccessHandler import SchemeAccessHandler
+from .FileReply import FileReply
+
+
+class FileAccessHandler(SchemeAccessHandler):
+    """
+    Class implementing a scheme access handler for FTP.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+    
+    def createRequest(self, op, request, outgoingData=None):
+        """
+        Protected method to create a request.
+        
+        @param op the operation to be performed (QNetworkAccessManager.Operation)
+        @param request reference to the request object (QNetworkRequest)
+        @param outgoingData reference to an IODevice containing data to be sent
+            (QIODevice)
+        @return reference to the created reply object (QNetworkReply)
+        """
+        if op == QNetworkAccessManager.GetOperation:
+            fileInfo = QFileInfo(request.url().toLocalFile())
+            if not fileInfo.isDir() or \
+               not fileInfo.isReadable() or \
+               not fileInfo.exists():
+                return None
+            return FileReply(request.url(), self.parent())
+        else:
+            return None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Network/FileReply.py	Mon Sep 24 20:23:18 2012 +0200
@@ -0,0 +1,282 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a network reply class for directory resources.
+"""
+
+from PyQt4.QtCore import Qt, QByteArray, QTimer, QDir, QIODevice, QUrl, QBuffer
+from PyQt4.QtGui import QPixmap
+from PyQt4.QtNetwork import QNetworkReply, QNetworkRequest
+from PyQt4.QtWebKit import QWebSettings
+
+import UI.PixmapCache
+
+
+dirListPage_html = """\
+<?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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<title>{0}</title>
+<style type="text/css">
+body {{
+  padding: 3em 0em;
+  background: -webkit-gradient(linear, left top, left bottom, from(#85784A), to(#FDFDFD), color-stop(0.5, #FDFDFD));
+  background-repeat: repeat-x;
+}}
+#box {{
+  background: white;
+  border: 1px solid #85784A;
+  width: 80%;
+  padding: 30px;
+  margin: auto;
+  -webkit-border-radius: 0.8em;
+}}
+h1 {{
+  font-size: 130%;
+  font-weight: bold;
+  border-bottom: 1px solid #85784A;
+}}
+th {{
+  background-color: #B8B096;
+  color: black;
+}}
+table {{
+  border: solid 1px #85784A;
+  margin: 5px 0;
+  width: 100%;
+}}
+tr.odd {{
+  background-color: white;
+  color: black;
+}}
+tr.even {{
+  background-color: #CEC9B8;
+  color: black;
+}}
+.modified {{
+  text-align: left;
+  vertical-align: top;
+  white-space: nowrap;
+}}
+.size {{
+  text-align: right;
+  vertical-align: top;
+  white-space: nowrap;
+  padding-right: 22px;
+}}
+.name {{
+  text-align: left;
+  vertical-align: top;
+  white-space: pre-wrap;
+  width: 100%
+}}
+{1}
+</style>
+</head>
+<body>
+  <div id="box">
+  <h1>{2}</h1>
+{3}
+  <table align="center" cellspacing="0" width="90%">
+{4}
+  </table>
+  </div>
+</body>
+</html>
+"""
+
+
+class FileReply(QNetworkReply):
+    """
+    Class implementing a network reply for directory resources.
+    """
+    def __init__(self, url, parent=None):
+        """
+        Constructor
+        
+        @param url requested FTP URL (QUrl)
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.__content = QByteArray()
+        self.__units = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
+        
+        if url.path() == "":
+            url.setPath("/")
+        self.setUrl(url)
+        
+        QTimer.singleShot(0, self.__loadDirectory)
+    
+    def abort(self):
+        """
+        Public slot to abort the operation.
+        """
+        # do nothing
+        pass
+    
+    def bytesAvailable(self):
+        """
+        Public method to determined the bytes available for being read.
+        
+        @return bytes available (integer)
+        """
+        return self.__content.size()
+    
+    def isSequential(self):
+        """
+        Public method to check for sequential access.
+        
+        @return flag indicating sequential access (boolean)
+        """
+        return True
+    
+    def readData(self, maxlen):
+        """
+        Protected method to retrieve data from the reply object.
+        
+        @param maxlen maximum number of bytes to read (integer)
+        @return string containing the data (bytes)
+        """
+        if self.__content.size():
+            len_ = min(maxlen, self.__content.size())
+            buffer = bytes(self.__content[:len_])
+            self.__content.remove(0, len_)
+            return buffer
+    
+    def __cssLinkClass(self, icon, size=32):
+        """
+        Private method to generate a link class with an icon.
+        
+        @param icon icon to be included (QIcon)
+        @param size size of the icon to be generated (integer)
+        @return CSS class string (string)
+        """
+        cssString = \
+            """a.{{0}} {{{{\n"""\
+            """  padding-left: {0}px;\n"""\
+            """  background: transparent url(data:image/png;base64,{1}) no-repeat center left;\n"""\
+            """  font-weight: bold;\n"""\
+            """}}}}\n"""
+        pixmap = icon.pixmap(size, size)
+        imageBuffer = QBuffer()
+        imageBuffer.open(QIODevice.ReadWrite)
+        if not pixmap.save(imageBuffer, "PNG"):
+            # write a blank pixmap on error
+            pixmap = QPixmap(size, size)
+            pixmap.fill(Qt.transparent)
+            imageBuffer.buffer().clear()
+            pixmap.save(imageBuffer, "PNG")
+        return cssString.format(size + 4,
+            str(imageBuffer.buffer().toBase64(), encoding="ascii"))
+    
+    def __loadDirectory(self):
+        """
+        Private slot loading the directory and preparing the listing page.
+        """
+        dir = QDir(self.url().toLocalFile())
+        dirItems = dir.entryInfoList(QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot,
+                                     QDir.Name | QDir.DirsFirst)
+        
+        u = self.url()
+        if not u.path().endswith("/"):
+            u.setPath(u.path() + "/")
+        
+        baseUrl = self.url().toString()
+        basePath = u.path()
+        
+        linkClasses = {}
+        iconSize = QWebSettings.globalSettings().fontSize(QWebSettings.DefaultFontSize)
+        
+        parent = u.resolved(QUrl(".."))
+        if parent.isParentOf(u):
+            icon = UI.PixmapCache.getIcon("up.png")
+            linkClasses["link_parent"] = \
+                self.__cssLinkClass(icon, iconSize).format("link_parent")
+            parentStr = self.trUtf8(
+                """  <p><a class="link_parent" href="{0}">"""
+                """Change to parent directory</a></p>"""
+            ).format(parent.toString())
+        else:
+            parentStr = ""
+        
+        row = \
+            """    <tr class="{0}">"""\
+            """<td class="name"><a class="{1}" href="{2}">{3}</a></td>"""\
+            """<td class="size">{4}</td>"""\
+            """<td class="modified">{5}</td>"""\
+            """</tr>\n"""
+        table = self.trUtf8(
+            """    <tr>"""
+            """<th align="left">Name</th>"""
+            """<th>Size</th>"""
+            """<th align="left">Last modified</th>"""
+            """</tr>\n"""
+        )
+        
+        i = 0
+        for item in dirItems:
+            name = item.fileName()
+            if item.isDir() and not name.endswith("/"):
+                name += "/"
+            child = u.resolved(QUrl(name.replace(":", "%3A")))
+            
+            if item.isFile():
+                size = item.size()
+                unit = 0
+                while size:
+                    newSize = size // 1024
+                    if newSize and unit < len(self.__units):
+                        size = newSize
+                        unit += 1
+                    else:
+                        break
+                
+                sizeStr = self.trUtf8("{0} {1}", "size unit")\
+                    .format(size, self.__units[unit])
+                linkClass = "link_file"
+                if linkClass not in linkClasses:
+                    icon = UI.PixmapCache.getIcon("fileMisc.png")
+                    linkClasses[linkClass] = \
+                        self.__cssLinkClass(icon, iconSize).format(linkClass)
+            else:
+                sizeStr = ""
+                linkClass = "link_dir"
+                if linkClass not in linkClasses:
+                    icon = UI.PixmapCache.getIcon("dirClosed.png")
+                    linkClasses[linkClass] = \
+                        self.__cssLinkClass(icon, iconSize).format(linkClass)
+            table += row.format(
+                i == 0 and "odd" or "even",
+                linkClass,
+                child.toString(),
+                Qt.escape(item.fileName()),
+                sizeStr,
+                item.lastModified().toString("yyyy-MM-dd hh:mm"),
+            )
+            i = 1 - i
+        
+        content = dirListPage_html.format(
+            Qt.escape(baseUrl),
+            "".join(linkClasses.values()),
+            self.trUtf8("Listing of {0}").format(basePath),
+            parentStr,
+            table
+        )
+        self.__content = QByteArray(content.encode("utf8"))
+        self.__content.append(512 * b' ')
+        
+        self.open(QIODevice.ReadOnly | QIODevice.Unbuffered)
+        self.setHeader(QNetworkRequest.ContentTypeHeader, "text/html; charset=UTF-8")
+        self.setHeader(QNetworkRequest.ContentLengthHeader, self.__content.size())
+        self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
+        self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "Ok")
+        self.metaDataChanged.emit()
+        self.downloadProgress.emit(self.__content.size(), self.__content.size())
+        self.readyRead.emit()
+        self.finished.emit()
--- a/Helpviewer/Network/NetworkAccessManager.py	Mon Sep 24 19:14:39 2012 +0200
+++ b/Helpviewer/Network/NetworkAccessManager.py	Mon Sep 24 20:23:18 2012 +0200
@@ -36,6 +36,7 @@
 from .EricAccessHandler import EricAccessHandler
 from .AboutAccessHandler import AboutAccessHandler
 from .FtpAccessHandler import FtpAccessHandler
+from .FileAccessHandler import FileAccessHandler
 
 from Helpviewer.AdBlock.AdBlockAccessHandler import AdBlockAccessHandler
 
@@ -99,6 +100,7 @@
         self.setSchemeHandler("about", AboutAccessHandler(self))
         self.setSchemeHandler("abp", AdBlockAccessHandler(self))
         self.setSchemeHandler("ftp", FtpAccessHandler(self))
+        self.setSchemeHandler("file", FileAccessHandler(self))
     
     def setSchemeHandler(self, scheme, handler):
         """
--- a/changelog	Mon Sep 24 19:14:39 2012 +0200
+++ b/changelog	Mon Sep 24 20:23:18 2012 +0200
@@ -37,6 +37,7 @@
   -- added support for variable AdBlock update periods (given in subscription)
   -- changed FTP support to use Python's ftplib instead of QFtp because the later
      is not supported in Qt5 anymore
+  -- added a handler for file: schemes to allow directory listings
 
 Version 5.3-snapshot-20120624:
 - bug fixes
--- a/eric5.e4p	Mon Sep 24 19:14:39 2012 +0200
+++ b/eric5.e4p	Mon Sep 24 20:23:18 2012 +0200
@@ -1041,6 +1041,8 @@
     <Source>Graphics/ImportsDiagramBuilder.py</Source>
     <Source>Graphics/ApplicationDiagramBuilder.py</Source>
     <Source>Utilities/FtpUtilities.py</Source>
+    <Source>Helpviewer/Network/FileReply.py</Source>
+    <Source>Helpviewer/Network/FileAccessHandler.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_cs.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -13055,6 +13055,31 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.ui" line="13"/>
@@ -28147,42 +28172,42 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>SSL chyby</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Certifikáty</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Zadejte uživatelské jméno a heslo pro &apos;{0}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Zadejte uživatelské jméno a heslo pro {0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;SSL chyby pro &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Chcete tyto chyby ignorovat?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Certifikáty:&lt;br/&gt;{0}&lt;br/&gt;Chcete akceptovat všechny certifikáty?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Vydatavel: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;Neplatný před: {0}&lt;br/&gt;Platný do: {1}</translation>
     </message>
@@ -28192,12 +28217,12 @@
         <translation type="obsolete">&lt;br/&gt;Alternativní jména:&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation type="unfinished"></translation>
     </message>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_de.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -12717,6 +12717,32 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;In den übergeordneten Ordner wechseln&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Größe&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Zuletzt verändert&lt;/th&gt;&lt;/tr&gt;
+</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation>{0} {1}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation>Index von {0}</translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.py" line="37"/>
@@ -27098,52 +27124,52 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Gib Nutzernamen und Kennwort für &apos;{0}&apos; ein&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Gib Nutzernamen und Kennwort für &apos;{0}&apos; und Realm &apos;{1}&apos; ein&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>SSL Fehler</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;SSL Fehler für &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Sollen diese Fehler ignoriert werden?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Zertifikate</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Zertifikate:&lt;br/&gt;{0}&lt;br/&gt;Sollen alle diese Zertifikate akzeptiert werden?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Aussteller: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;Gültig ab: {0}&lt;br/&gt;Gültig bis: {1}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation>Name: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation>&lt;br/&gt;Organisation: {0}</translation>
     </message>
--- a/i18n/eric5_en.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_en.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -12632,6 +12632,31 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.ui" line="13"/>
@@ -26949,52 +26974,52 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_es.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_es.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -12777,6 +12777,32 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished">  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Cambiar al directorio superior&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished">    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Nombre&lt;/th&gt;&lt;th&gt;Tamaño&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Última modificación&lt;/th&gt;&lt;/tr&gt;
+</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished">{0} {1}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished">Listado de {0}</translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.ui" line="13"/>
@@ -27280,52 +27306,52 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>Errores de SSL</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Certificados</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Introduzca nombre de usuario y contraseña para &apos;{0}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Introduzca nombre de usuario y contraseña para &apos;{0}&apos;, reino {1}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Errores de SSL para &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;¿Desea ignorar estos errores?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Certificados:&lt;br/&gt;{0}&lt;br/&gt;¿Desea aceptar todos estos certificados?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Emisor: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;No válido antes de: {0}&lt;br/&gt;Válido Hasta: {1}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation>Nombre: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation>&lt;br/&gt;Organización: {0}</translation>
     </message>
--- a/i18n/eric5_fr.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_fr.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -13873,6 +13873,31 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.py" line="37"/>
@@ -29399,52 +29424,52 @@
         <translation type="obsolete">&lt;b&gt;Connexion au proxy &apos;%1&apos; en utilisant:&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation type="unfinished">Erreurs SSL</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_it.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_it.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -12889,6 +12889,32 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished">  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Cambia alla directory superiore&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished">    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Nome&lt;/th&gt;&lt;th&gt;Dimensione&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Ultima modifica&lt;/th&gt;&lt;/tr&gt;
+</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished">{0} {1}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished">Elenco di {0}</translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.py" line="37"/>
@@ -27758,52 +27784,52 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>Errori SSL</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Certificati</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Inserisci utente e password per &apos;{0}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Inserisci utente e password per &apos;{0}&apos;, dominio &apos;{1}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Errori SSL per &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Vuoi ignorarli ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Certificati:&lt;br/&gt;{0}&lt;br/&gt;Vuoi accettare tutti questi certificati?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Emettitore: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;Non valido prima: {0}&lt;br/&gt;Valido Fino: {1}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation>Nome: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation>&lt;br/&gt;Organizzazione: {0}</translation>
     </message>
--- a/i18n/eric5_ru.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_ru.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -12986,6 +12986,32 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished">  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Перейти в родительский каталог&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished">    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Имя&lt;/th&gt;&lt;th&gt;Размер&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Последнее изменение&lt;/th&gt;&lt;/tr&gt;
+</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished">{0} {1}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished">Список {0}</translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.py" line="37"/>
@@ -27885,52 +27911,52 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Введите имя пользователя и пароль для &apos;{0}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt;Введите имя пользователя и пароль для &apos;{0}&apos;; realm &apos;{1}&apos;&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>Ошибки SSL</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Ошибки SSL для &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Игнорировать?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Сертификаты</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Сертификаты:&lt;br/&gt;{0}&lt;br/&gt;Принять?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Эмитент: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;Не действительны ранее: {0}&lt;br/&gt;Действительны до: {1}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation>Имя: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation>&lt;br/&gt;Организация: {0}</translation>
     </message>
--- a/i18n/eric5_tr.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_tr.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -13067,6 +13067,31 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.ui" line="13"/>
@@ -27958,12 +27983,12 @@
 <context>
     <name>NetworkAccessManager</name>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt; &apos;{0}&apos; için kullanıcı adını ve parolayı giriniz&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation>&lt;b&gt; &apos;{1}&apos; alanı, &apos;{0}&apos; için kullanıcı adı ve parola giriniz&lt;/b&gt;</translation>
     </message>
@@ -27973,42 +27998,42 @@
         <translation type="obsolete">&lt;b&gt;&apos;{0}&apos; proxy&apos;sini kullanarak bağlan:&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation>SSL Hataları</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation>&lt;p&gt;SSL Hataları  &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Bu hataları yoksaymak istiyor musunuz?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation>Sertifikalar</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Sertifalar:&lt;br/&gt;{0}&lt;br/&gt;Bu sertifikalrı kabul etmek istiyor musunuz?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation>&lt;br/&gt;Yayımcı: {0}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation>&lt;br/&gt;Geçerlilik başlangıcı: {0}&lt;br/&gt;Geçerlilek bitişi: {1}</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric5_zh_CN.GB2312.ts	Mon Sep 24 19:14:39 2012 +0200
+++ b/i18n/eric5_zh_CN.GB2312.ts	Mon Sep 24 20:23:18 2012 +0200
@@ -13820,6 +13820,31 @@
     </message>
 </context>
 <context>
+    <name>FileReply</name>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="201"/>
+        <source>  &lt;p&gt;&lt;a class=&quot;link_parent&quot; href=&quot;{0}&quot;&gt;Change to parent directory&lt;/a&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="214"/>
+        <source>    &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Name&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Last modified&lt;/th&gt;&lt;/tr&gt;
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="240"/>
+        <source>{0} {1}</source>
+        <comment>size unit</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Network/FileReply.py" line="264"/>
+        <source>Listing of {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FiletypeAssociationDialog</name>
     <message>
         <location filename="Project/FiletypeAssociationDialog.ui" line="13"/>
@@ -29371,52 +29396,52 @@
         <translation type="obsolete">&lt;b&gt;连接到代理 &apos;%1&apos; ,使用:&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>SSL Errors</source>
         <translation type="unfinished">SSL 错误</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>Certificates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="200"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="202"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="197"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="199"/>
         <source>&lt;b&gt;Enter username and password for &apos;{0}&apos;, realm &apos;{1}&apos;&lt;/b&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="254"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="256"/>
         <source>&lt;p&gt;SSL Errors for &lt;br /&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;ul&gt;&lt;li&gt;{1}&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Do you want to ignore these errors?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="267"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="269"/>
         <source>&lt;p&gt;Certificates:&lt;br/&gt;{0}&lt;br/&gt;Do you want to accept all these certificates?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="321"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="323"/>
         <source>&lt;br/&gt;Issuer: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="325"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="327"/>
         <source>&lt;br/&gt;Not valid before: {0}&lt;br/&gt;Valid Until: {1}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="313"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="315"/>
         <source>Name: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="317"/>
+        <location filename="Helpviewer/Network/NetworkAccessManager.py" line="319"/>
         <source>&lt;br/&gt;Organization: {0}</source>
         <translation type="unfinished"></translation>
     </message>

eric ide

mercurial