diff -r c6f3f66bf7aa -r 7e48a0d98cce WebBrowser/Download/DownloadItem.py --- a/WebBrowser/Download/DownloadItem.py Wed Jan 24 12:37:53 2018 +0100 +++ b/WebBrowser/Download/DownloadItem.py Wed Jan 24 18:45:50 2018 +0100 @@ -64,10 +64,15 @@ self.progressBar.setMaximum(0) + self.pauseButton.setIcon(UI.PixmapCache.getIcon("pause.png")) self.stopButton.setIcon(UI.PixmapCache.getIcon("stopLoading.png")) self.openButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.openButton.setEnabled(False) self.openButton.setVisible(False) + if not hasattr(QWebEngineDownloadItem, "pause"): + # pause/resume was defined in Qt 5.10.0 / PyQt 5.10.0 + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.__state = DownloadItem.Downloading @@ -322,6 +327,19 @@ url = QUrl.fromLocalFile(info.absoluteFilePath()) QDesktopServices.openUrl(url) + @pyqtSlot(bool) + def on_pauseButton_clicked(self, checked): + """ + Private slot to pause the download. + + @param checked flag indicating the state of the button + @type bool + """ + if checked: + self.__downloadItem.pause() + else: + self.__downloadItem.resume() + @pyqtSlot() def on_stopButton_clicked(self): """ @@ -338,6 +356,8 @@ self.stopButton.setVisible(False) self.openButton.setEnabled(False) self.openButton.setVisible(False) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.setUpdatesEnabled(True) self.__state = DownloadItem.DownloadCancelled self.__downloadItem.cancel() @@ -508,6 +528,8 @@ QWebEngineDownloadItem.DownloadCompleted) self.progressBar.setVisible(False) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.stopButton.setEnabled(False) self.stopButton.setVisible(False) self.openButton.setEnabled(noError) @@ -590,6 +612,8 @@ else: self.__setDateTime(QDateTime()) + self.pauseButton.setEnabled(False) + self.pauseButton.setVisible(False) self.stopButton.setEnabled(False) self.stopButton.setVisible(False) self.openButton.setEnabled(data[2])