Helpviewer/DownloadDialog.py

changeset 168
3383117f894b
parent 110
c9a969db1469
child 256
04083f42042d
equal deleted inserted replaced
167:7508e44f4853 168:3383117f894b
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.

eric ide

mercurial