From 6afcd5307419ed996a08057d7f8eb53035d143bd Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Wed, 13 Feb 2013 15:22:29 +0000 Subject: Cancel PDF download when 'X' from TabLabel is clicked SL #4390 When the 'X' button is clicked from the TabLabel we emit 'tab-close' signal and cancel the download on its callback if the tab closed is a PDFTabPage. Signed-off-by: Manuel Kaufmann Acked-by: Manuel QuiƱones --- diff --git a/browser.py b/browser.py index 7419d2d..b786b6b 100644 --- a/browser.py +++ b/browser.py @@ -301,6 +301,11 @@ class TabbedView(BrowserNotebook): nth_page = self.get_nth_page(page_to_focus) nth_page.props.browser.grab_focus() + if isinstance(tab_page, PDFTabPage): + if tab_page.props.browser.props.load_status < \ + WebKit.LoadStatus.FINISHED: + tab_page.cancel_download() + self.remove_page(self.page_num(tab_page)) tab_page.destroy() diff --git a/pdfviewer.py b/pdfviewer.py index e0030ef..40de7ec 100644 --- a/pdfviewer.py +++ b/pdfviewer.py @@ -289,7 +289,7 @@ class DummyBrowser(GObject.GObject): return 0 def stop_loading(self): - self._tab.cancel_download() + self._tab.close_tab() def reload(self): pass @@ -430,7 +430,7 @@ class PDFTabPage(Gtk.HBox): # Display a message self._message_box = PDFMessageBox( message=_("Downloading document..."), - button_callback=self.cancel_download) + button_callback=self.close_tab) self.pack_start(self._message_box, True, True, 0) self._message_box.show() @@ -476,10 +476,12 @@ class PDFTabPage(Gtk.HBox): logging.debug('Download error! code %s, detail %s: %s' % \ (err_code, err_detail, reason)) - def cancel_download(self, button=None): - self._download.cancel() + def close_tab(self, button=None): self._browser.emit_close_tab() + def cancel_download(self): + self._download.cancel() + def __journal_id_to_uri(self, journal_id): """Return an URI for a Journal object ID.""" return "journal://" + journal_id + ".pdf" -- cgit v0.9.1