Sat, 22 Sep 2012 18:34:09 +0200
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
--- a/APIs/Python3/eric5.api Sat Sep 22 18:24:35 2012 +0200 +++ b/APIs/Python3/eric5.api Sat Sep 22 18:34:09 2012 +0200 @@ -2128,6 +2128,9 @@ eric5.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog?1(cookieJar, parent=None) eric5.Helpviewer.Download.DownloadAskActionDialog.DownloadAskActionDialog.getAction?4() eric5.Helpviewer.Download.DownloadAskActionDialog.DownloadAskActionDialog?1(fileName, mimeType, baseUrl, parent=None) +eric5.Helpviewer.Download.DownloadItem.DownloadItem.DownloadCancelled?7 +eric5.Helpviewer.Download.DownloadItem.DownloadItem.DownloadSuccessful?7 +eric5.Helpviewer.Download.DownloadItem.DownloadItem.Downloading?7 eric5.Helpviewer.Download.DownloadItem.DownloadItem.absoluteFilePath?4() eric5.Helpviewer.Download.DownloadItem.DownloadItem.bytesReceived?4() eric5.Helpviewer.Download.DownloadItem.DownloadItem.bytesTotal?4() @@ -2626,7 +2629,6 @@ eric5.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.setAuthenticator?4(realm, authenticator) eric5.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.setProxyAuthenticator?4(authenticator) eric5.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler?1(parent=None) -eric5.Helpviewer.Network.FtpReply.FtpReply.Monthnames2Int?7 eric5.Helpviewer.Network.FtpReply.FtpReply.abort?4() eric5.Helpviewer.Network.FtpReply.FtpReply.bytesAvailable?4() eric5.Helpviewer.Network.FtpReply.FtpReply.isSequential?4()
--- a/Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html Sat Sep 22 18:24:35 2012 +0200 +++ b/Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html Sat Sep 22 18:34:09 2012 +0200 @@ -61,7 +61,7 @@ QWidget, Ui_DownloadItem <h3>Class Attributes</h3> <table> -<tr><td>None</td></tr> +<tr><td>DownloadCancelled</td></tr><tr><td>DownloadSuccessful</td></tr><tr><td>Downloading</td></tr> </table> <h3>Class Methods</h3> <table>
--- a/Documentation/Source/eric5.Helpviewer.Network.FtpReply.html Sat Sep 22 18:24:35 2012 +0200 +++ b/Documentation/Source/eric5.Helpviewer.Network.FtpReply.html Sat Sep 22 18:34:09 2012 +0200 @@ -49,7 +49,7 @@ QNetworkReply <h3>Class Attributes</h3> <table> -<tr><td>Monthnames2Int</td></tr> +<tr><td>None</td></tr> </table> <h3>Class Methods</h3> <table>
--- a/Helpviewer/Download/DownloadItem.py Sat Sep 22 18:24:35 2012 +0200 +++ b/Helpviewer/Download/DownloadItem.py Sat Sep 22 18:34:09 2012 +0200 @@ -37,6 +37,10 @@ downloadFinished = pyqtSignal() progress = pyqtSignal(int, int) + Downloading = 0 + DownloadSuccessful = 1 + DownloadCancelled = 2 + def __init__(self, reply=None, requestFilename=False, webPage=None, download=False, parent=None, mainWindow=None): """ @@ -59,6 +63,8 @@ self.progressBar.setMaximum(0) + self.__isFtpDownload = reply is not None and reply.url().scheme() == "ftp" + self.tryAgainButton.setIcon(UI.PixmapCache.getIcon("restart.png")) self.tryAgainButton.setEnabled(False) self.tryAgainButton.setVisible(False) @@ -67,6 +73,13 @@ self.openButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.openButton.setEnabled(False) self.openButton.setVisible(False) + if self.__isFtpDownload: + self.stopButton.setEnabled(False) + self.stopButton.setVisible(False) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) + + self.__state = DownloadItem.Downloading icon = self.style().standardIcon(QStyle.SP_FileIcon) self.fileIcon.setPixmap(icon.pixmap(48, 48)) @@ -301,10 +314,11 @@ self.tryAgainButton.setVisible(False) self.openButton.setEnabled(False) self.openButton.setVisible(False) - self.stopButton.setEnabled(True) - self.stopButton.setVisible(True) - self.pauseButton.setEnabled(True) - self.pauseButton.setVisible(True) + if not self.__isFtpDownload: + self.stopButton.setEnabled(True) + self.stopButton.setVisible(True) + self.pauseButton.setEnabled(True) + self.pauseButton.setVisible(True) self.progressBar.setVisible(True) if self.__page: @@ -317,6 +331,7 @@ self.__output = QFile() self.__reply = reply self.__initialize(tryAgain=True) + self.__state = DownloadItem.Downloading self.statusChanged.emit() @pyqtSlot(bool) @@ -345,15 +360,17 @@ Public slot to stop the download. """ self.setUpdatesEnabled(False) - self.stopButton.setEnabled(False) - self.stopButton.setVisible(False) - self.pauseButton.setEnabled(False) - self.pauseButton.setVisible(False) + if not self.__isFtpDownload: + self.stopButton.setEnabled(False) + self.stopButton.setVisible(False) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.tryAgainButton.setEnabled(True) self.tryAgainButton.setVisible(True) self.openButton.setEnabled(False) self.openButton.setVisible(False) self.setUpdatesEnabled(True) + self.__state = DownloadItem.DownloadCancelled self.__reply.abort() self.downloadFinished.emit() @@ -549,7 +566,7 @@ @return flag indicating a download is in progress (boolean) """ - return self.stopButton.isEnabled() + return self.__state == DownloadItem.Downloading def downloadedSuccessfully(self): """ @@ -557,7 +574,7 @@ @return flag indicating a successful download (boolean) """ - return self.stopButton.isHidden() and self.tryAgainButton.isHidden() + return self.__state == DownloadItem.DownloadSuccessful def downloadCanceled(self): """ @@ -565,7 +582,7 @@ @return flag indicating a canceled download (boolean) """ - return self.tryAgainButton.isEnabled() + return self.__state == DownloadItem.DownloadCancelled def __finished(self): """ @@ -578,10 +595,11 @@ noError = self.__reply.error() == QNetworkReply.NoError self.progressBar.setVisible(False) - self.stopButton.setEnabled(False) - self.stopButton.setVisible(False) - self.pauseButton.setEnabled(False) - self.pauseButton.setVisible(False) + if not self.__isFtpDownload: + self.stopButton.setEnabled(False) + self.stopButton.setVisible(False) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.openButton.setEnabled(noError) self.openButton.setVisible(noError) self.__output.close() @@ -589,6 +607,7 @@ QFile.remove(self.__fileName) self.__output.rename(self.__fileName) self.__updateInfoLabel() + self.__state = DownloadItem.DownloadSuccessful self.statusChanged.emit() self.downloadFinished.emit() @@ -647,6 +666,7 @@ self.__url = data[0] self.__fileName = data[1] self.__pageUrl = data[3] + self.__isFtpDownload = self.__url.scheme() == "ftp" self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) self.infoLabel.setText(self.__fileName) @@ -659,6 +679,10 @@ self.openButton.setVisible(data[2]) self.tryAgainButton.setEnabled(not data[2]) self.tryAgainButton.setVisible(not data[2]) + if data[2]: + self.__state = DownloadItem.DownloadSuccessful + else: + self.__state = DownloadItem.DownloadCancelled self.progressBar.setVisible(False) def getInfoData(self):