Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webview.py
diff options
context:
space:
mode:
Diffstat (limited to 'webview.py')
-rwxr-xr-xwebview.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/webview.py b/webview.py
index 87176e1..ae01c5a 100755
--- a/webview.py
+++ b/webview.py
@@ -13,6 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+import os
import gobject
import gtk
@@ -87,8 +88,18 @@ class WebView(Browser):
self.connect('mouse-click', self._dom_click_cb)
+ def _get_menu(self, image_uri):
+ menu = gtk.Menu()
+ menu_item = gtk.ImageMenuItem(gtk.STOCK_SAVE)
+ menu_item.connect('activate', self._save_menu_activate_cb, image_uri)
+ menu.add(menu_item)
+ menu.show_all()
+ return menu
+
def _dom_click_cb(self, browser, event):
- print event.image_uri
+ #if event.button
+ if event.image_uri:
+ self._get_menu(event.image_uri).popup(None, None, None, 1, 0)
def do_create_window(self):
popup_creator = _PopupCreator(self.get_toplevel())
@@ -100,3 +111,19 @@ class WebView(Browser):
def _popup_created_cb(self, creator):
self._popup_creators.remove(creator)
+
+ def _save_menu_activate_cb(self, menu_item, image_uri):
+ chooser = gtk.FileChooserDialog(title=None,
+ action=gtk.FILE_CHOOSER_ACTION_SAVE,
+ buttons=(gtk.STOCK_CANCEL,
+ gtk.RESPONSE_CANCEL,
+ gtk.STOCK_SAVE,
+ gtk.RESPONSE_OK))
+ chooser.set_default_response(gtk.RESPONSE_OK)
+ chooser.set_current_folder(os.path.expanduser('~'))
+ response = chooser.run()
+
+ if response == gtk.RESPONSE_OK:
+ self.save_uri(image_uri, chooser.get_filename())
+
+ chooser.destroy()