Sun, 18 May 2014 14:13:09 +0200
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 | 12 | str = unicode |
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() |