Helpviewer/Download/DownloadItem.py

branch
Py2 comp.
changeset 3060
5883ce99ee12
parent 3057
10516539f238
parent 3035
36e9f388958b
child 3145
a9de05d4a22f
equal deleted inserted replaced
3058:0a02c433f52d 3060:5883ce99ee12
224 if not fileName: 224 if not fileName:
225 self.progressBar.setVisible(False) 225 self.progressBar.setVisible(False)
226 self.__reply.close() 226 self.__reply.close()
227 self.on_stopButton_clicked() 227 self.on_stopButton_clicked()
228 self.filenameLabel.setText( 228 self.filenameLabel.setText(
229 self.trUtf8("Download canceled: {0}")\ 229 self.trUtf8("Download canceled: {0}")
230 .format(QFileInfo(defaultFileName).fileName())) 230 .format(QFileInfo(defaultFileName).fileName()))
231 self.__canceledFileSelect = True 231 self.__canceledFileSelect = True
232 return 232 return
233 233
234 fileInfo = QFileInfo(fileName) 234 fileInfo = QFileInfo(fileName)
244 if not saveDirPath.exists(): 244 if not saveDirPath.exists():
245 if not saveDirPath.mkpath(saveDirPath.absolutePath()): 245 if not saveDirPath.mkpath(saveDirPath.absolutePath()):
246 self.progressBar.setVisible(False) 246 self.progressBar.setVisible(False)
247 self.on_stopButton_clicked() 247 self.on_stopButton_clicked()
248 self.infoLabel.setText(self.trUtf8( 248 self.infoLabel.setText(self.trUtf8(
249 "Download directory ({0}) couldn't be created.")\ 249 "Download directory ({0}) couldn't be created.")
250 .format(saveDirPath.absolutePath())) 250 .format(saveDirPath.absolutePath()))
251 return 251 return
252 252
253 self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) 253 self.filenameLabel.setText(QFileInfo(self.__fileName).fileName())
254 if self.__requestFilename: 254 if self.__requestFilename:
420 # in case someone else has already put a file there 420 # in case someone else has already put a file there
421 if not self.__requestFilename: 421 if not self.__requestFilename:
422 self.__getFileName() 422 self.__getFileName()
423 if not self.__output.open(QIODevice.WriteOnly): 423 if not self.__output.open(QIODevice.WriteOnly):
424 self.infoLabel.setText( 424 self.infoLabel.setText(
425 self.trUtf8("Error opening save file: {0}")\ 425 self.trUtf8("Error opening save file: {0}")
426 .format(self.__output.errorString())) 426 .format(self.__output.errorString()))
427 self.on_stopButton_clicked() 427 self.on_stopButton_clicked()
428 self.statusChanged.emit() 428 self.statusChanged.emit()
429 return 429 return
430 self.statusChanged.emit() 430 self.statusChanged.emit()
432 buffer = self.__reply.readAll() 432 buffer = self.__reply.readAll()
433 self.__sha1Hash.addData(buffer) 433 self.__sha1Hash.addData(buffer)
434 self.__md5Hash.addData(buffer) 434 self.__md5Hash.addData(buffer)
435 bytesWritten = self.__output.write(buffer) 435 bytesWritten = self.__output.write(buffer)
436 if bytesWritten == -1: 436 if bytesWritten == -1:
437 self.infoLabel.setText(self.trUtf8("Error saving: {0}")\ 437 self.infoLabel.setText(self.trUtf8("Error saving: {0}")
438 .format(self.__output.errorString())) 438 .format(self.__output.errorString()))
439 self.on_stopButton_clicked() 439 self.on_stopButton_clicked()
440 else: 440 else:
441 self.__startedSaving = True 441 self.__startedSaving = True
442 if self.__finishedDownloading: 442 if self.__finishedDownloading:
444 444
445 def __networkError(self): 445 def __networkError(self):
446 """ 446 """
447 Private slot to handle a network error. 447 Private slot to handle a network error.
448 """ 448 """
449 self.infoLabel.setText(self.trUtf8("Network Error: {0}")\ 449 self.infoLabel.setText(self.trUtf8("Network Error: {0}")
450 .format(self.__reply.errorString())) 450 .format(self.__reply.errorString()))
451 self.tryAgainButton.setEnabled(True) 451 self.tryAgainButton.setEnabled(True)
452 self.tryAgainButton.setVisible(True) 452 self.tryAgainButton.setVisible(True)
453 self.downloadFinished.emit() 453 self.downloadFinished.emit()
454 454
515 return -1.0 515 return -1.0
516 516
517 if self.bytesTotal() == -1: 517 if self.bytesTotal() == -1:
518 return -1.0 518 return -1.0
519 519
520 timeRemaining = (self.bytesTotal() - 520 timeRemaining = (self.bytesTotal() -
521 self.bytesReceived()) / self.currentSpeed() 521 self.bytesReceived()) / self.currentSpeed()
522 522
523 # ETA should never be 0 523 # ETA should never be 0
524 if timeRemaining == 0: 524 if timeRemaining == 0:
525 timeRemaining = 1 525 timeRemaining = 1
558 remaining = timeString(timeRemaining) 558 remaining = timeString(timeRemaining)
559 559
560 info = self.trUtf8("{0} of {1} ({2}/sec)\n{3}")\ 560 info = self.trUtf8("{0} of {1} ({2}/sec)\n{3}")\
561 .format( 561 .format(
562 dataString(self.__bytesReceived), 562 dataString(self.__bytesReceived),
563 bytesTotal == -1 and self.trUtf8("?") \ 563 bytesTotal == -1 and self.trUtf8("?")
564 or dataString(bytesTotal), 564 or dataString(bytesTotal),
565 dataString(int(speed)), 565 dataString(int(speed)),
566 remaining) 566 remaining)
567 else: 567 else:
568 if self.__bytesReceived == bytesTotal or bytesTotal == -1: 568 if self.__bytesReceived == bytesTotal or bytesTotal == -1:
569 info = self.trUtf8("{0} downloaded\nSHA1: {1}\nMD5: {2}")\ 569 info = self.trUtf8("{0} downloaded\nSHA1: {1}\nMD5: {2}")\
570 .format(dataString(self.__output.size()), 570 .format(dataString(self.__output.size()),
571 str(self.__sha1Hash.result().toHex(), 571 str(self.__sha1Hash.result().toHex(),
572 encoding="ascii"), 572 encoding="ascii"),
573 str(self.__md5Hash.result().toHex(), 573 str(self.__md5Hash.result().toHex(),
574 encoding="ascii") 574 encoding="ascii")
575 ) 575 )
576 else: 576 else:
577 info = self.trUtf8("{0} of {1} - Stopped")\ 577 info = self.trUtf8("{0} of {1} - Stopped")\
578 .format(dataString(self.__bytesReceived), 578 .format(dataString(self.__bytesReceived),
579 dataString(bytesTotal)) 579 dataString(bytesTotal))
580 self.infoLabel.setText(info) 580 self.infoLabel.setText(info)

eric ide

mercurial