From 74d0c6be6d1ee6a482d49856f6661ee557a679f9 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 15 Oct 2008 18:56:53 +0000 Subject: Add a "Download link" option to the link palette --- (limited to 'palettes.py') diff --git a/palettes.py b/palettes.py index bae47a5..feb6ddb 100644 --- a/palettes.py +++ b/palettes.py @@ -30,6 +30,8 @@ from sugar.graphics.icon import Icon from sugar import profile from sugar.activity import activity +import downloadmanager + class ContentInvoker(Invoker): _com_interfaces_ = interfaces.nsIDOMEventListener @@ -59,7 +61,8 @@ class ContentInvoker(Invoker): else: title = None - self.palette = LinkPalette(self._browser, title, target.href) + self.palette = LinkPalette(self._browser, title, target.href, + target.ownerDocument) self.notify_right_click() elif target.tagName.lower() == 'img': if target.title: @@ -75,11 +78,13 @@ class ContentInvoker(Invoker): self.notify_right_click() class LinkPalette(Palette): - def __init__(self, browser, title, url): + def __init__(self, browser, title, url, owner_document): Palette.__init__(self) - self._url = url self._browser = browser + self._title = title + self._url = url + self._owner_document = owner_document if title is not None: self.props.primary_text = title @@ -100,6 +105,11 @@ class LinkPalette(Palette): self.menu.append(menu_item) menu_item.show() + menu_item = MenuItem(_('Download link')) + menu_item.connect('activate', self.__download_activate_cb) + self.menu.append(menu_item) + menu_item.show() + def __follow_activate_cb(self, menu_item): self._browser.load_uri(self._url) self._browser.grab_focus() @@ -130,6 +140,9 @@ class LinkPalette(Palette): def __clipboard_clear_func_cb(self, clipboard, data): pass + def __download_activate_cb(self, menu_item): + downloadmanager.save_link(self._url, self._title, self._owner_document) + class ImagePalette(Palette): def __init__(self, title, url): Palette.__init__(self) -- cgit v0.9.1