183 if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel": |
183 if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel": |
184 self.progressBar.setVisible(False) |
184 self.progressBar.setVisible(False) |
185 self.__reply.close() |
185 self.__reply.close() |
186 self.on_stopButton_clicked() |
186 self.on_stopButton_clicked() |
187 self.filenameLabel.setText( |
187 self.filenameLabel.setText( |
188 self.trUtf8("Download canceled: {0}").format( |
188 self.tr("Download canceled: {0}").format( |
189 QFileInfo(defaultFileName).fileName())) |
189 QFileInfo(defaultFileName).fileName())) |
190 self.__canceledFileSelect = True |
190 self.__canceledFileSelect = True |
191 return |
191 return |
192 |
192 |
193 if dlg.getAction() == "scan": |
193 if dlg.getAction() == "scan": |
195 |
195 |
196 self.progressBar.setVisible(False) |
196 self.progressBar.setVisible(False) |
197 self.__reply.close() |
197 self.__reply.close() |
198 self.on_stopButton_clicked() |
198 self.on_stopButton_clicked() |
199 self.filenameLabel.setText( |
199 self.filenameLabel.setText( |
200 self.trUtf8("VirusTotal scan scheduled: {0}").format( |
200 self.tr("VirusTotal scan scheduled: {0}").format( |
201 QFileInfo(defaultFileName).fileName())) |
201 QFileInfo(defaultFileName).fileName())) |
202 self.__canceledFileSelect = True |
202 self.__canceledFileSelect = True |
203 return |
203 return |
204 |
204 |
205 self.__autoOpen = dlg.getAction() == "open" |
205 self.__autoOpen = dlg.getAction() == "open" |
209 |
209 |
210 if ask and not self.__autoOpen and self.__requestFilename: |
210 if ask and not self.__autoOpen and self.__requestFilename: |
211 self.__gettingFileName = True |
211 self.__gettingFileName = True |
212 fileName = E5FileDialog.getSaveFileName( |
212 fileName = E5FileDialog.getSaveFileName( |
213 None, |
213 None, |
214 self.trUtf8("Save File"), |
214 self.tr("Save File"), |
215 defaultFileName, |
215 defaultFileName, |
216 "") |
216 "") |
217 self.__gettingFileName = False |
217 self.__gettingFileName = False |
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.tr("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) |
237 saveDirPath = QFileInfo(self.__fileName).dir() |
237 saveDirPath = QFileInfo(self.__fileName).dir() |
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.tr( |
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()) |
415 # in case someone else has already put a file there |
415 # in case someone else has already put a file there |
416 if not self.__requestFilename: |
416 if not self.__requestFilename: |
417 self.__getFileName() |
417 self.__getFileName() |
418 if not self.__output.open(QIODevice.WriteOnly): |
418 if not self.__output.open(QIODevice.WriteOnly): |
419 self.infoLabel.setText( |
419 self.infoLabel.setText( |
420 self.trUtf8("Error opening save file: {0}") |
420 self.tr("Error opening save file: {0}") |
421 .format(self.__output.errorString())) |
421 .format(self.__output.errorString())) |
422 self.on_stopButton_clicked() |
422 self.on_stopButton_clicked() |
423 self.statusChanged.emit() |
423 self.statusChanged.emit() |
424 return |
424 return |
425 self.statusChanged.emit() |
425 self.statusChanged.emit() |
427 buffer = self.__reply.readAll() |
427 buffer = self.__reply.readAll() |
428 self.__sha1Hash.addData(buffer) |
428 self.__sha1Hash.addData(buffer) |
429 self.__md5Hash.addData(buffer) |
429 self.__md5Hash.addData(buffer) |
430 bytesWritten = self.__output.write(buffer) |
430 bytesWritten = self.__output.write(buffer) |
431 if bytesWritten == -1: |
431 if bytesWritten == -1: |
432 self.infoLabel.setText(self.trUtf8("Error saving: {0}") |
432 self.infoLabel.setText(self.tr("Error saving: {0}") |
433 .format(self.__output.errorString())) |
433 .format(self.__output.errorString())) |
434 self.on_stopButton_clicked() |
434 self.on_stopButton_clicked() |
435 else: |
435 else: |
436 self.__startedSaving = True |
436 self.__startedSaving = True |
437 if self.__finishedDownloading: |
437 if self.__finishedDownloading: |
439 |
439 |
440 def __networkError(self): |
440 def __networkError(self): |
441 """ |
441 """ |
442 Private slot to handle a network error. |
442 Private slot to handle a network error. |
443 """ |
443 """ |
444 self.infoLabel.setText(self.trUtf8("Network Error: {0}") |
444 self.infoLabel.setText(self.tr("Network Error: {0}") |
445 .format(self.__reply.errorString())) |
445 .format(self.__reply.errorString())) |
446 self.tryAgainButton.setEnabled(True) |
446 self.tryAgainButton.setEnabled(True) |
447 self.tryAgainButton.setVisible(True) |
447 self.tryAgainButton.setVisible(True) |
448 self.downloadFinished.emit() |
448 self.downloadFinished.emit() |
449 |
449 |
550 remaining = "" |
550 remaining = "" |
551 |
551 |
552 if bytesTotal > 0: |
552 if bytesTotal > 0: |
553 remaining = timeString(timeRemaining) |
553 remaining = timeString(timeRemaining) |
554 |
554 |
555 info = self.trUtf8("{0} of {1} ({2}/sec)\n{3}")\ |
555 info = self.tr("{0} of {1} ({2}/sec)\n{3}")\ |
556 .format( |
556 .format( |
557 dataString(self.__bytesReceived), |
557 dataString(self.__bytesReceived), |
558 bytesTotal == -1 and self.trUtf8("?") |
558 bytesTotal == -1 and self.tr("?") |
559 or dataString(bytesTotal), |
559 or dataString(bytesTotal), |
560 dataString(int(speed)), |
560 dataString(int(speed)), |
561 remaining) |
561 remaining) |
562 else: |
562 else: |
563 if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
563 if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
564 info = self.trUtf8("{0} downloaded\nSHA1: {1}\nMD5: {2}")\ |
564 info = self.tr("{0} downloaded\nSHA1: {1}\nMD5: {2}")\ |
565 .format(dataString(self.__output.size()), |
565 .format(dataString(self.__output.size()), |
566 str(self.__sha1Hash.result().toHex(), |
566 str(self.__sha1Hash.result().toHex(), |
567 encoding="ascii"), |
567 encoding="ascii"), |
568 str(self.__md5Hash.result().toHex(), |
568 str(self.__md5Hash.result().toHex(), |
569 encoding="ascii") |
569 encoding="ascii") |
570 ) |
570 ) |
571 else: |
571 else: |
572 info = self.trUtf8("{0} of {1} - Stopped")\ |
572 info = self.tr("{0} of {1} - Stopped")\ |
573 .format(dataString(self.__bytesReceived), |
573 .format(dataString(self.__bytesReceived), |
574 dataString(bytesTotal)) |
574 dataString(bytesTotal)) |
575 self.infoLabel.setText(info) |
575 self.infoLabel.setText(info) |
576 |
576 |
577 def downloading(self): |
577 def downloading(self): |