From 0b22412ca87bc3f6e587112b1c4b578e220433c1 Mon Sep 17 00:00:00 2001
From: Manuel Kaufmann <humitos@gmail.com>
Date: Wed, 13 Feb 2013 12:22:29 -0300
Subject: [PATCH Browse] 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 <humitos@gmail.com>
---
browser.py | 5 +++++
pdfviewer.py | 10 ++++++----
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/browser.py b/browser.py
index 7419d2d..b786b6b 100644
a
|
b
|
class TabbedView(BrowserNotebook): |
301 | 301 | nth_page = self.get_nth_page(page_to_focus) |
302 | 302 | nth_page.props.browser.grab_focus() |
303 | 303 | |
| 304 | if isinstance(tab_page, PDFTabPage): |
| 305 | if tab_page.props.browser.props.load_status < \ |
| 306 | WebKit.LoadStatus.FINISHED: |
| 307 | tab_page.cancel_download() |
| 308 | |
304 | 309 | self.remove_page(self.page_num(tab_page)) |
305 | 310 | tab_page.destroy() |
306 | 311 | |
diff --git a/pdfviewer.py b/pdfviewer.py
index e0030ef..40de7ec 100644
a
|
b
|
class DummyBrowser(GObject.GObject): |
289 | 289 | return 0 |
290 | 290 | |
291 | 291 | def stop_loading(self): |
292 | | self._tab.cancel_download() |
| 292 | self._tab.close_tab() |
293 | 293 | |
294 | 294 | def reload(self): |
295 | 295 | pass |
… |
… |
class PDFTabPage(Gtk.HBox): |
430 | 430 | # Display a message |
431 | 431 | self._message_box = PDFMessageBox( |
432 | 432 | message=_("Downloading document..."), |
433 | | button_callback=self.cancel_download) |
| 433 | button_callback=self.close_tab) |
434 | 434 | self.pack_start(self._message_box, True, True, 0) |
435 | 435 | self._message_box.show() |
436 | 436 | |
… |
… |
class PDFTabPage(Gtk.HBox): |
476 | 476 | logging.debug('Download error! code %s, detail %s: %s' % \ |
477 | 477 | (err_code, err_detail, reason)) |
478 | 478 | |
479 | | def cancel_download(self, button=None): |
480 | | self._download.cancel() |
| 479 | def close_tab(self, button=None): |
481 | 480 | self._browser.emit_close_tab() |
482 | 481 | |
| 482 | def cancel_download(self): |
| 483 | self._download.cancel() |
| 484 | |
483 | 485 | def __journal_id_to_uri(self, journal_id): |
484 | 486 | """Return an URI for a Journal object ID.""" |
485 | 487 | return "journal://" + journal_id + ".pdf" |