38 @param parent reference to the parent widget (QWidget) |
38 @param parent reference to the parent widget (QWidget) |
39 """ |
39 """ |
40 QWidget.__init__(self, parent) |
40 QWidget.__init__(self, parent) |
41 self.setupUi(self) |
41 self.setupUi(self) |
42 self.setAttribute(Qt.WA_DeleteOnClose) |
42 self.setAttribute(Qt.WA_DeleteOnClose) |
|
43 |
|
44 self.__windowTitleTemplate = self.trUtf8("Eric5 Download {0}") |
|
45 self.setWindowTitle(self.__windowTitleTemplate.format("")) |
43 |
46 |
44 self.__tryAgainButton = \ |
47 self.__tryAgainButton = \ |
45 self.buttonBox.addButton(self.trUtf8("Try Again"), |
48 self.buttonBox.addButton(self.trUtf8("Try Again"), |
46 QDialogButtonBox.ActionRole) |
49 QDialogButtonBox.ActionRole) |
47 self.__stopButton = \ |
50 self.__stopButton = \ |
120 self.trUtf8("Downloading"), |
123 self.trUtf8("Downloading"), |
121 self.trUtf8("""<p>You are about to download the file <b>{0}</b>.</p>""" |
124 self.trUtf8("""<p>You are about to download the file <b>{0}</b>.</p>""" |
122 """<p>What do you want to do?</p>""").format(baseName), |
125 """<p>What do you want to do?</p>""").format(baseName), |
123 QMessageBox.StandardButtons(\ |
126 QMessageBox.StandardButtons(\ |
124 QMessageBox.Open | \ |
127 QMessageBox.Open | \ |
125 QMessageBox.Save)) |
128 QMessageBox.Save | \ |
|
129 QMessageBox.Cancel)) |
|
130 if res == QMessageBox.Cancel: |
|
131 self.__stop() |
|
132 self.close() |
|
133 return |
|
134 |
126 self.__autoOpen = res == QMessageBox.Open |
135 self.__autoOpen = res == QMessageBox.Open |
127 fileName = QDesktopServices.storageLocation(QDesktopServices.TempLocation) + \ |
136 fileName = QDesktopServices.storageLocation(QDesktopServices.TempLocation) + \ |
128 '/' + baseName |
137 '/' + baseName |
129 |
138 |
130 if not self.__autoOpen and self.__requestFilename: |
139 if not self.__autoOpen and self.__requestFilename: |
230 if self.__page: |
239 if self.__page: |
231 nam = self.__page.networkAccessManager() |
240 nam = self.__page.networkAccessManager() |
232 else: |
241 else: |
233 nam = QNetworkAccessManager() |
242 nam = QNetworkAccessManager() |
234 reply = nam.get(QNetworkRequest(self.__url)) |
243 reply = nam.get(QNetworkRequest(self.__url)) |
235 if self.__reply: |
|
236 self.__reply.deleteLater() |
|
237 if self.__output.exists(): |
244 if self.__output.exists(): |
238 self.__output.remove() |
245 self.__output.remove() |
239 self.__reply = reply |
246 self.__reply = reply |
240 self.__initialize() |
247 self.__initialize() |
241 |
248 |
286 Private slot to handle a change of the meta data. |
293 Private slot to handle a change of the meta data. |
287 """ |
294 """ |
288 locationHeader = self.__reply.header(QNetworkRequest.LocationHeader) |
295 locationHeader = self.__reply.header(QNetworkRequest.LocationHeader) |
289 if locationHeader.isValid(): |
296 if locationHeader.isValid(): |
290 self.__url = locationHeader |
297 self.__url = locationHeader |
291 self.__reply.deleteLater() |
|
292 self.__reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get( |
298 self.__reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get( |
293 QNetworkRequest(self.__url)) |
299 QNetworkRequest(self.__url)) |
294 self.__initialize() |
300 self.__initialize() |
295 |
301 |
296 def __downloadProgress(self, received, total): |
302 def __downloadProgress(self, received, total): |
302 """ |
308 """ |
303 self.__bytesReceived = received |
309 self.__bytesReceived = received |
304 if total == -1: |
310 if total == -1: |
305 self.progressBar.setValue(0) |
311 self.progressBar.setValue(0) |
306 self.progressBar.setMaximum(0) |
312 self.progressBar.setMaximum(0) |
|
313 self.setWindowTitle(self.__windowTitleTemplate.format("")) |
307 else: |
314 else: |
308 self.progressBar.setValue(received) |
315 self.progressBar.setValue(received) |
309 self.progressBar.setMaximum(total) |
316 self.progressBar.setMaximum(total) |
|
317 pc = "{0}%".format(received * 100 // total) |
|
318 self.setWindowTitle(self.__windowTitleTemplate.format(pc)) |
310 self.__updateInfoLabel() |
319 self.__updateInfoLabel() |
311 |
320 |
312 def __updateInfoLabel(self): |
321 def __updateInfoLabel(self): |
313 """ |
322 """ |
314 Private method to update the info label. |
323 Private method to update the info label. |