218 if not fileName: |
218 if not fileName: |
219 self.progressBar.setVisible(False) |
219 self.progressBar.setVisible(False) |
220 self.__reply.close() |
220 self.__reply.close() |
221 self.on_stopButton_clicked() |
221 self.on_stopButton_clicked() |
222 self.filenameLabel.setText( |
222 self.filenameLabel.setText( |
223 self.trUtf8("Download canceled: {0}")\ |
223 self.trUtf8("Download canceled: {0}") |
224 .format(QFileInfo(defaultFileName).fileName())) |
224 .format(QFileInfo(defaultFileName).fileName())) |
225 self.__canceledFileSelect = True |
225 self.__canceledFileSelect = True |
226 return |
226 return |
227 |
227 |
228 fileInfo = QFileInfo(fileName) |
228 fileInfo = QFileInfo(fileName) |
238 if not saveDirPath.exists(): |
238 if not saveDirPath.exists(): |
239 if not saveDirPath.mkpath(saveDirPath.absolutePath()): |
239 if not saveDirPath.mkpath(saveDirPath.absolutePath()): |
240 self.progressBar.setVisible(False) |
240 self.progressBar.setVisible(False) |
241 self.on_stopButton_clicked() |
241 self.on_stopButton_clicked() |
242 self.infoLabel.setText(self.trUtf8( |
242 self.infoLabel.setText(self.trUtf8( |
243 "Download directory ({0}) couldn't be created.")\ |
243 "Download directory ({0}) couldn't be created.") |
244 .format(saveDirPath.absolutePath())) |
244 .format(saveDirPath.absolutePath())) |
245 return |
245 return |
246 |
246 |
247 self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
247 self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
248 if self.__requestFilename: |
248 if self.__requestFilename: |
414 # in case someone else has already put a file there |
414 # in case someone else has already put a file there |
415 if not self.__requestFilename: |
415 if not self.__requestFilename: |
416 self.__getFileName() |
416 self.__getFileName() |
417 if not self.__output.open(QIODevice.WriteOnly): |
417 if not self.__output.open(QIODevice.WriteOnly): |
418 self.infoLabel.setText( |
418 self.infoLabel.setText( |
419 self.trUtf8("Error opening save file: {0}")\ |
419 self.trUtf8("Error opening save file: {0}") |
420 .format(self.__output.errorString())) |
420 .format(self.__output.errorString())) |
421 self.on_stopButton_clicked() |
421 self.on_stopButton_clicked() |
422 self.statusChanged.emit() |
422 self.statusChanged.emit() |
423 return |
423 return |
424 self.statusChanged.emit() |
424 self.statusChanged.emit() |
426 buffer = self.__reply.readAll() |
426 buffer = self.__reply.readAll() |
427 self.__sha1Hash.addData(buffer) |
427 self.__sha1Hash.addData(buffer) |
428 self.__md5Hash.addData(buffer) |
428 self.__md5Hash.addData(buffer) |
429 bytesWritten = self.__output.write(buffer) |
429 bytesWritten = self.__output.write(buffer) |
430 if bytesWritten == -1: |
430 if bytesWritten == -1: |
431 self.infoLabel.setText(self.trUtf8("Error saving: {0}")\ |
431 self.infoLabel.setText(self.trUtf8("Error saving: {0}") |
432 .format(self.__output.errorString())) |
432 .format(self.__output.errorString())) |
433 self.on_stopButton_clicked() |
433 self.on_stopButton_clicked() |
434 else: |
434 else: |
435 self.__startedSaving = True |
435 self.__startedSaving = True |
436 if self.__finishedDownloading: |
436 if self.__finishedDownloading: |
438 |
438 |
439 def __networkError(self): |
439 def __networkError(self): |
440 """ |
440 """ |
441 Private slot to handle a network error. |
441 Private slot to handle a network error. |
442 """ |
442 """ |
443 self.infoLabel.setText(self.trUtf8("Network Error: {0}")\ |
443 self.infoLabel.setText(self.trUtf8("Network Error: {0}") |
444 .format(self.__reply.errorString())) |
444 .format(self.__reply.errorString())) |
445 self.tryAgainButton.setEnabled(True) |
445 self.tryAgainButton.setEnabled(True) |
446 self.tryAgainButton.setVisible(True) |
446 self.tryAgainButton.setVisible(True) |
447 self.downloadFinished.emit() |
447 self.downloadFinished.emit() |
448 |
448 |
509 return -1.0 |
509 return -1.0 |
510 |
510 |
511 if self.bytesTotal() == -1: |
511 if self.bytesTotal() == -1: |
512 return -1.0 |
512 return -1.0 |
513 |
513 |
514 timeRemaining = (self.bytesTotal() - |
514 timeRemaining = (self.bytesTotal() - |
515 self.bytesReceived()) / self.currentSpeed() |
515 self.bytesReceived()) / self.currentSpeed() |
516 |
516 |
517 # ETA should never be 0 |
517 # ETA should never be 0 |
518 if timeRemaining == 0: |
518 if timeRemaining == 0: |
519 timeRemaining = 1 |
519 timeRemaining = 1 |
552 remaining = timeString(timeRemaining) |
552 remaining = timeString(timeRemaining) |
553 |
553 |
554 info = self.trUtf8("{0} of {1} ({2}/sec)\n{3}")\ |
554 info = self.trUtf8("{0} of {1} ({2}/sec)\n{3}")\ |
555 .format( |
555 .format( |
556 dataString(self.__bytesReceived), |
556 dataString(self.__bytesReceived), |
557 bytesTotal == -1 and self.trUtf8("?") \ |
557 bytesTotal == -1 and self.trUtf8("?") |
558 or dataString(bytesTotal), |
558 or dataString(bytesTotal), |
559 dataString(int(speed)), |
559 dataString(int(speed)), |
560 remaining) |
560 remaining) |
561 else: |
561 else: |
562 if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
562 if self.__bytesReceived == bytesTotal or bytesTotal == -1: |