diff options
-rw-r--r-- | downloadmanager.py | 15 | ||||
-rw-r--r-- | pdfviewer.py | 12 |
2 files changed, 24 insertions, 3 deletions
diff --git a/downloadmanager.py b/downloadmanager.py index 1e4f92b..d3f5874 100644 --- a/downloadmanager.py +++ b/downloadmanager.py @@ -95,6 +95,13 @@ class Download(object): self.dl_jobject.metadata['progress'] = str(int(progress * 100)) datastore.write(self.dl_jobject) + def __current_size_changed_cb(self, download, something): + current_size = self._download.get_current_size() + total_size = self._download.get_total_size() + progress = current_size * 100 / total_size + self.dl_jobject.metadata['progress'] = str(progress) + datastore.write(self.dl_jobject) + def __state_change_cb(self, download, gparamspec): state = self._download.get_status() if state == WebKit.DownloadStatus.STARTED: @@ -128,8 +135,12 @@ class Download(object): self.__stop_response_cb) self._activity.add_alert(self._canceled_alert) else: - self._download.connect('notify::progress', - self.__progress_change_cb) + # FIXME: workaround for SL #4385 + # self._download.connect('notify::progress', + # self.__progress_change_cb) + self._download.connect('notify::current-size', + self.__current_size_changed_cb) + self._create_journal_object() self._object_id = self.dl_jobject.object_id diff --git a/pdfviewer.py b/pdfviewer.py index b98fab4..25188b1 100644 --- a/pdfviewer.py +++ b/pdfviewer.py @@ -384,12 +384,22 @@ class PDFTabPage(Gtk.HBox): self._download = WebKit.Download.new(network_request) self._download.set_destination_uri('file://' + dest_path) - self._download.connect('notify::progress', self.__download_progress_cb) + # FIXME: workaround for SL #4385 + # self._download.connect('notify::progress', self.__download_progress_cb) + self._download.connect('notify::current-size', + self.__current_size_changed_cb) self._download.connect('notify::status', self.__download_status_cb) self._download.connect('error', self.__download_error_cb) self._download.start() + def __current_size_changed_cb(self, download, something): + current_size = download.get_current_size() + total_size = download.get_total_size() + progress = current_size / float(total_size) + self._browser.props.progress = progress + self._message_box.progress_icon.update(progress) + def __download_progress_cb(self, download, data): progress = download.get_progress() self._browser.props.progress = progress |