Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/palettes.py
diff options
context:
space:
mode:
Diffstat (limited to 'palettes.py')
-rw-r--r--palettes.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/palettes.py b/palettes.py
index feb6ddb..1f3bfc2 100644
--- a/palettes.py
+++ b/palettes.py
@@ -74,7 +74,7 @@ class ContentInvoker(Invoker):
else:
title = os.path.basename(urlparse.urlparse(target.src).path)
- self.palette = ImagePalette(title, target.src)
+ self.palette = ImagePalette(title, target.src, target.ownerDocument)
self.notify_right_click()
class LinkPalette(Palette):
@@ -144,10 +144,12 @@ class LinkPalette(Palette):
downloadmanager.save_link(self._url, self._title, self._owner_document)
class ImagePalette(Palette):
- def __init__(self, title, url):
+ def __init__(self, title, url, owner_document):
Palette.__init__(self)
+ self._title = title
self._url = url
+ self._owner_document = owner_document
self.props.primary_text = title
self.props.secondary_text = url
@@ -160,6 +162,11 @@ class ImagePalette(Palette):
self.menu.append(menu_item)
menu_item.show()
+ menu_item = MenuItem(_('Download image'))
+ menu_item.connect('activate', self.__download_activate_cb)
+ self.menu.append(menu_item)
+ menu_item.show()
+
def __copy_activate_cb(self, menu_item):
file_name = os.path.basename(urlparse.urlparse(self._url).path)
if '.' in file_name:
@@ -192,6 +199,9 @@ class ImagePalette(Palette):
persist.progressListener = listener
persist.saveURI(uri, None, None, None, None, target_file)
+ def __download_activate_cb(self, menu_item):
+ downloadmanager.save_link(self._url, self._title, self._owner_document)
+
class _ImageProgressListener(object):
_com_interfaces_ = interfaces.nsIWebProgressListener