Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.

Sat, 22 Sep 2012 18:34:09 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 22 Sep 2012 18:34:09 +0200
changeset 2055
9165261f3e06
parent 2054
099993935e6d
child 2058
f3c50aa83266

Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Download.DownloadItem.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.FtpReply.html file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
--- 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()
Binary file Documentation/Help/source.qch has changed
--- 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):

eric ide

mercurial