Helpviewer/HelpBrowserWV.py

changeset 668
b0061a6f7484
parent 664
3061f8bd826e
child 675
2f626dcab902
equal deleted inserted replaced
666:fdd568d3533d 668:b0061a6f7484
21 21
22 from E5Gui import E5MessageBox 22 from E5Gui import E5MessageBox
23 23
24 import Preferences 24 import Preferences
25 25
26 from .DownloadDialog import DownloadDialog
27 from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog 26 from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
28 from .JavaScriptResources import fetchLinks_js 27 from .JavaScriptResources import fetchLinks_js
29 from .HTMLResources import notFoundPage_html 28 from .HTMLResources import notFoundPage_html
30 from .SslInfoDialog import SslInfoDialog 29 from .SslInfoDialog import SslInfoDialog
31 import Helpviewer.HelpWindow 30 import Helpviewer.HelpWindow
171 @param frame reference to the frame sending the request (QWebFrame) 170 @param frame reference to the frame sending the request (QWebFrame)
172 @param request reference to the request object (QNetworkRequest) 171 @param request reference to the request object (QNetworkRequest)
173 @param type_ type of the navigation request (QWebPage.NavigationType) 172 @param type_ type of the navigation request (QWebPage.NavigationType)
174 @return flag indicating acceptance (boolean) 173 @return flag indicating acceptance (boolean)
175 """ 174 """
175 # TODO: extend with more functionality
176 self.__lastRequest = request 176 self.__lastRequest = request
177 self.__lastRequestType = type_ 177 self.__lastRequestType = type_
178 178
179 return QWebPage.acceptNavigationRequest(self, frame, request, type_) 179 return QWebPage.acceptNavigationRequest(self, frame, request, type_)
180 180
379 self.__page = HelpWebPage(self) 379 self.__page = HelpWebPage(self)
380 self.setPage(self.__page) 380 self.setPage(self.__page)
381 381
382 self.mw = mainWindow 382 self.mw = mainWindow
383 self.ctrlPressed = False 383 self.ctrlPressed = False
384 self.__downloadWindows = []
385 self.__isLoading = False 384 self.__isLoading = False
386 self.__progress = 0 385 self.__progress = 0
387 386
388 self.__currentZoom = 100 387 self.__currentZoom = 100
389 self.__zoomLevels = [ 388 self.__zoomLevels = [
1143 """ 1142 """
1144 url = self.url() 1143 url = self.url()
1145 if url.isEmpty(): 1144 if url.isEmpty():
1146 return 1145 return
1147 1146
1148 req = QNetworkRequest(url) 1147 self.mw.downloadManager().download(url, True)
1149 reply = self.mw.networkAccessManager().get(req)
1150 self.__unsupportedContent(reply, True, True)
1151 1148
1152 def __unsupportedContent(self, reply, requestFilename = None, download = False): 1149 def __unsupportedContent(self, reply, requestFilename = None, download = False):
1153 """ 1150 """
1154 Private slot to handle the unsupportedContent signal. 1151 Private slot to handle the unsupportedContent signal.
1155 1152
1166 1163
1167 if replyUrl.scheme() == "abp": 1164 if replyUrl.scheme() == "abp":
1168 return 1165 return
1169 1166
1170 if reply.error() == QNetworkReply.NoError: 1167 if reply.error() == QNetworkReply.NoError:
1171 if reply.url().isEmpty(): 1168 if reply.header(QNetworkRequest.ContentTypeHeader):
1169 self.mw.downloadManager().handleUnsupportedContent(
1170 reply, webPage = self.page())
1172 return 1171 return
1173 size = reply.header(QNetworkRequest.ContentLengthHeader)
1174 if size == 0:
1175 return
1176
1177 if requestFilename is None:
1178 requestFilename = Preferences.getUI("RequestDownloadFilename")
1179 dlg = DownloadDialog(reply, requestFilename, self.page(), download)
1180 if dlg.initialize():
1181 dlg.done[()].connect(self.__downloadDone)
1182 self.__downloadWindows.append(dlg)
1183 dlg.show()
1184 ## self.setUrl(self.url())
1185 else: 1172 else:
1186 replyUrl = reply.url() 1173 replyUrl = reply.url()
1187 if replyUrl.isEmpty(): 1174 if replyUrl.isEmpty():
1188 return 1175 return
1189 1176
1214 ) 1201 )
1215 self.setHtml(html, replyUrl) 1202 self.setHtml(html, replyUrl)
1216 self.mw.historyManager().removeHistoryEntry(replyUrl, self.title()) 1203 self.mw.historyManager().removeHistoryEntry(replyUrl, self.title())
1217 self.loadFinished.emit(False) 1204 self.loadFinished.emit(False)
1218 1205
1219 def __downloadDone(self):
1220 """
1221 Private slot to handle the done signal of the download dialogs.
1222 """
1223 dlg = self.sender()
1224 if dlg in self.__downloadWindows:
1225 dlg.done[()].disconnect(self.__downloadDone)
1226
1227 def __downloadRequested(self, request): 1206 def __downloadRequested(self, request):
1228 """ 1207 """
1229 Private slot to handle a download request. 1208 Private slot to handle a download request.
1230 1209
1231 @param request reference to the request object (QNetworkRequest) 1210 @param request reference to the request object (QNetworkRequest)
1232 """ 1211 """
1233 if request.url().isEmpty(): 1212 self.mw.downloadManager().download(request)
1234 return
1235 mgr = self.page().networkAccessManager()
1236 self.__unsupportedContent(mgr.get(request), download = True)
1237 1213
1238 def __databaseQuotaExceeded(self, frame, databaseName): 1214 def __databaseQuotaExceeded(self, frame, databaseName):
1239 """ 1215 """
1240 Private slot to handle the case, where the database quota is exceeded. 1216 Private slot to handle the case, where the database quota is exceeded.
1241 1217

eric ide

mercurial