Helpviewer/Network/FileReply.py

Sun, 18 May 2014 14:13:09 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 18 May 2014 14:13:09 +0200
changeset 3591
2f2a4a76dd22
parent 3484
645c12de6b0c
child 3656
441956d8fce5
permissions
-rw-r--r--

Corrected a bunch of source docu issues.

2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3160
209a07d7e401 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
3 # Copyright (c) 2012 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a network reply class for directory resources.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3058
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
11 try:
3484
645c12de6b0c Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3178 3190
diff changeset
12 str = unicode
645c12de6b0c Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3178 3190
diff changeset
13 except NameError:
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
14 pass
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
15
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from PyQt4.QtCore import Qt, QByteArray, QTimer, QDir, QIODevice, QUrl, QBuffer
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from PyQt4.QtGui import QPixmap
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from PyQt4.QtNetwork import QNetworkReply, QNetworkRequest
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 from PyQt4.QtWebKit import QWebSettings
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import UI.PixmapCache
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
2080
4b33165dd55b Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2063
diff changeset
23 import Utilities
4b33165dd55b Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2063
diff changeset
24
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 dirListPage_html = """\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 <?xml version="1.0" encoding="UTF-8" ?>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 <head>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 <title>{0}</title>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 <style type="text/css">
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 body {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 padding: 3em 0em;
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
36 background: -webkit-gradient(linear, left top, left bottom, from(#85784A),
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
37 to(#FDFDFD), color-stop(0.5, #FDFDFD));
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 background-repeat: repeat-x;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 #box {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 background: white;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 border: 1px solid #85784A;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 width: 80%;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 padding: 30px;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 margin: auto;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 -webkit-border-radius: 0.8em;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 h1 {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 font-size: 130%;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 font-weight: bold;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 border-bottom: 1px solid #85784A;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 th {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 background-color: #B8B096;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 color: black;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 table {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 border: solid 1px #85784A;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 margin: 5px 0;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 width: 100%;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 tr.odd {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 background-color: white;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 color: black;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 tr.even {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 background-color: #CEC9B8;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 color: black;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 .modified {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 text-align: left;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 vertical-align: top;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 white-space: nowrap;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 .size {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 text-align: right;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 vertical-align: top;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 white-space: nowrap;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 padding-right: 22px;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 .name {{
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 text-align: left;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 vertical-align: top;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 white-space: pre-wrap;
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 width: 100%
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 }}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 {1}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 </style>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 </head>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 <body>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 <div id="box">
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 <h1>{2}</h1>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 {3}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 <table align="center" cellspacing="0" width="90%">
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 {4}
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 </table>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 </div>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 </body>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 </html>
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 class FileReply(QNetworkReply):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 Class implementing a network reply for directory resources.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 def __init__(self, url, parent=None):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 Constructor
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @param url requested FTP URL (QUrl)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @param parent reference to the parent object (QObject)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
114 super(FileReply, self).__init__(parent)
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.__content = QByteArray()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
117 self.__units = ["Bytes", "KB", "MB", "GB", "TB",
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
118 "PB", "EB", "ZB", "YB"]
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 if url.path() == "":
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 url.setPath("/")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.setUrl(url)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 QTimer.singleShot(0, self.__loadDirectory)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 def abort(self):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 Public slot to abort the operation.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 # do nothing
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 pass
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def bytesAvailable(self):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Public method to determined the bytes available for being read.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @return bytes available (integer)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 return self.__content.size()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def isSequential(self):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Public method to check for sequential access.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @return flag indicating sequential access (boolean)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 return True
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 def readData(self, maxlen):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
151 Public method to retrieve data from the reply object.
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 @param maxlen maximum number of bytes to read (integer)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @return string containing the data (bytes)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 if self.__content.size():
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 len_ = min(maxlen, self.__content.size())
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 buffer = bytes(self.__content[:len_])
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.__content.remove(0, len_)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 return buffer
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 def __cssLinkClass(self, icon, size=32):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 Private method to generate a link class with an icon.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @param icon icon to be included (QIcon)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @param size size of the icon to be generated (integer)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @return CSS class string (string)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 cssString = \
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 """a.{{0}} {{{{\n"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 """ padding-left: {0}px;\n"""\
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
173 """ background: transparent url(data:image/png;base64,{1})"""\
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
174 """ no-repeat center left;\n"""\
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """ font-weight: bold;\n"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 """}}}}\n"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 pixmap = icon.pixmap(size, size)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 imageBuffer = QBuffer()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 imageBuffer.open(QIODevice.ReadWrite)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 if not pixmap.save(imageBuffer, "PNG"):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # write a blank pixmap on error
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 pixmap = QPixmap(size, size)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 pixmap.fill(Qt.transparent)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 imageBuffer.buffer().clear()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 pixmap.save(imageBuffer, "PNG")
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3002
diff changeset
186 return cssString.format(
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3002
diff changeset
187 size + 4,
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 str(imageBuffer.buffer().toBase64(), encoding="ascii"))
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 def __loadDirectory(self):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 Private slot loading the directory and preparing the listing page.
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 """
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 dir = QDir(self.url().toLocalFile())
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
195 dirItems = dir.entryInfoList(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
196 QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot,
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
197 QDir.Name | QDir.DirsFirst)
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 u = self.url()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 if not u.path().endswith("/"):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 u.setPath(u.path() + "/")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 baseUrl = self.url().toString()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 basePath = u.path()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 linkClasses = {}
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
207 iconSize = QWebSettings.globalSettings().fontSize(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
208 QWebSettings.DefaultFontSize)
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 parent = u.resolved(QUrl(".."))
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 if parent.isParentOf(u):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 icon = UI.PixmapCache.getIcon("up.png")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 linkClasses["link_parent"] = \
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.__cssLinkClass(icon, iconSize).format("link_parent")
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
215 parentStr = self.tr(
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """ <p><a class="link_parent" href="{0}">"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """Change to parent directory</a></p>"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 ).format(parent.toString())
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 else:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 parentStr = ""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 row = \
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 """ <tr class="{0}">"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 """<td class="name"><a class="{1}" href="{2}">{3}</a></td>"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 """<td class="size">{4}</td>"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 """<td class="modified">{5}</td>"""\
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 """</tr>\n"""
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
228 table = self.tr(
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 """ <tr>"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 """<th align="left">Name</th>"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 """<th>Size</th>"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """<th align="left">Last modified</th>"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 """</tr>\n"""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 )
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 i = 0
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 for item in dirItems:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 name = item.fileName()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 if item.isDir() and not name.endswith("/"):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 name += "/"
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 child = u.resolved(QUrl(name.replace(":", "%3A")))
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 if item.isFile():
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 size = item.size()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 unit = 0
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 while size:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 newSize = size // 1024
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 if newSize and unit < len(self.__units):
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 size = newSize
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 unit += 1
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 else:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 break
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
254 sizeStr = self.tr("{0} {1}", "size unit")\
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 .format(size, self.__units[unit])
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 linkClass = "link_file"
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 if linkClass not in linkClasses:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 icon = UI.PixmapCache.getIcon("fileMisc.png")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 linkClasses[linkClass] = \
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 self.__cssLinkClass(icon, iconSize).format(linkClass)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 else:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 sizeStr = ""
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 linkClass = "link_dir"
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 if linkClass not in linkClasses:
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 icon = UI.PixmapCache.getIcon("dirClosed.png")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 linkClasses[linkClass] = \
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 self.__cssLinkClass(icon, iconSize).format(linkClass)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 table += row.format(
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 i == 0 and "odd" or "even",
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 linkClass,
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 child.toString(),
2080
4b33165dd55b Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2063
diff changeset
272 Utilities.html_encode(item.fileName()),
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 sizeStr,
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 item.lastModified().toString("yyyy-MM-dd hh:mm"),
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 )
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 i = 1 - i
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 content = dirListPage_html.format(
2080
4b33165dd55b Made the third set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2063
diff changeset
279 Utilities.html_encode(baseUrl),
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 "".join(linkClasses.values()),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
281 self.tr("Listing of {0}").format(basePath),
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 parentStr,
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 table
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 )
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 self.__content = QByteArray(content.encode("utf8"))
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 self.__content.append(512 * b' ')
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 self.open(QIODevice.ReadOnly | QIODevice.Unbuffered)
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
289 self.setHeader(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
290 QNetworkRequest.ContentTypeHeader, "text/html; charset=UTF-8")
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
291 self.setHeader(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
292 QNetworkRequest.ContentLengthHeader, self.__content.size())
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "Ok")
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 self.metaDataChanged.emit()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
296 self.downloadProgress.emit(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
297 self.__content.size(), self.__content.size())
2063
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 self.readyRead.emit()
2227d4cc905e Added a handler for file: schemes to allow directory listings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 self.finished.emit()

eric ide

mercurial