Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/palettes.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-15 18:56:53 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-15 18:56:53 (GMT)
commit74d0c6be6d1ee6a482d49856f6661ee557a679f9 (patch)
treec444e695010f27ef36403d7d6be7e9416e884c54 /palettes.py
parentd6d849adbbda2481d6717227a455b83f6a5af7ed (diff)
Add a "Download link" option to the link palette
Diffstat (limited to 'palettes.py')
-rw-r--r--palettes.py19
1 files changed, 16 insertions, 3 deletions
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)