Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/palettes.py
diff options
context:
space:
mode:
authorLucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-17 20:54:30 (GMT)
committer Lucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-17 20:54:30 (GMT)
commita8b17436c94ec188857c4a06efa6ade64a0ef20b (patch)
tree4093124cf4163003b4a9c43bad12076d0930fe4b /palettes.py
parent3ec9f9dca7f8a696ec90b934771436d70063880a (diff)
Browse stards and loads pages with pywebkitgtk. Several features are disabled for now, although it mostly has feature-parity with Surf.
Diffstat (limited to 'palettes.py')
-rw-r--r--palettes.py95
1 files changed, 2 insertions, 93 deletions
diff --git a/palettes.py b/palettes.py
index 0d4023a..e4219f3 100644
--- a/palettes.py
+++ b/palettes.py
@@ -1,5 +1,6 @@
# Copyright (C) 2008, One Laptop Per Child
# Copyright (C) 2009, Tomeu Vizoso, Simon Schampijer
+# Copyright (C) 2010, Bobby Powers, Lucian Branescu Mihaila
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,9 +23,6 @@ from gettext import gettext as _
import gtk
import gobject
-import xpcom
-from xpcom import components
-from xpcom.components import interfaces
from sugar.graphics.palette import Palette, Invoker
from sugar.graphics.menuitem import MenuItem
@@ -35,32 +33,12 @@ from sugar.activity import activity
import downloadmanager
-class MouseOutListener(gobject.GObject):
- _com_interfaces_ = interfaces.nsIDOMEventListener
-
- __gsignals__ = {
- 'mouse-out': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([]))
- }
-
- def __init__(self, target):
- gobject.GObject.__init__(self)
- self.target = target
-
- def handleEvent(self, event):
- self.emit('mouse-out')
-
-
class ContentInvoker(Invoker):
- _com_interfaces_ = interfaces.nsIDOMEventListener
def __init__(self, browser):
Invoker.__init__(self)
self._position_hint = self.AT_CURSOR
self._browser = browser
- self._mouseout_listener = None
- self._popdown_handler_id = None
def get_default_position(self):
return self.AT_CURSOR
@@ -76,7 +54,6 @@ class ContentInvoker(Invoker):
return
target = event.target
-
if target.tagName.lower() == 'a':
if target.firstChild:
@@ -99,32 +76,10 @@ class ContentInvoker(Invoker):
self.palette = ImagePalette(title, target.src, target.ownerDocument)
self.notify_right_click()
- else:
- return
-
- if self._popdown_handler_id is not None:
- self._popdown_handler_id = self.palette.connect( \
- 'popdown', self.__palette_popdown_cb)
-
- self._mouseout_listener = MouseOutListener(target)
- wrapper = xpcom.server.WrapObject(self._mouseout_listener,
- interfaces.nsIDOMEventListener)
- target.addEventListener('mouseout', wrapper, False)
- self._mouseout_listener.connect('mouse-out', self.__moved_out_cb)
-
- def __moved_out_cb(self, listener):
- self.palette.popdown()
-
- def __palette_popdown_cb(self, palette):
- if self._mouseout_listener is not None:
- wrapper = xpcom.server.WrapObject(self._mouseout_listener,
- interfaces.nsIDOMEventListener)
- self._mouseout_listener.target.removeEventListener('mouseout',
- wrapper, False)
- del self._mouseout_listener
class LinkPalette(Palette):
+
def __init__(self, browser, title, url, owner_document):
Palette.__init__(self)
@@ -236,56 +191,10 @@ class ImagePalette(Palette):
os.close(fd)
os.chmod(temp_file, 0664)
- cls = components.classes['@mozilla.org/network/io-service;1']
- io_service = cls.getService(interfaces.nsIIOService)
- uri = io_service.newURI(self._url, None, None)
-
- cls = components.classes['@mozilla.org/file/local;1']
- target_file = cls.createInstance(interfaces.nsILocalFile)
- target_file.initWithPath(temp_file)
-
- cls = components.classes[ \
- '@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
- persist = cls.createInstance(interfaces.nsIWebBrowserPersist)
- persist.persistFlags = 1 # PERSIST_FLAGS_FROM_CACHE
- listener = xpcom.server.WrapObject(_ImageProgressListener(temp_file),
- interfaces.nsIWebProgressListener)
- 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
-
- def __init__(self, temp_file):
- self._temp_file = temp_file
-
- def onLocationChange(self, webProgress, request, location):
- pass
-
- def onProgressChange(self, webProgress, request, curSelfProgress,
- maxSelfProgress, curTotalProgress, maxTotalProgress):
- pass
-
- def onSecurityChange(self, webProgress, request, state):
- pass
-
- def onStatusChange(self, webProgress, request, status, message):
- pass
-
- def onStateChange(self, webProgress, request, stateFlags, status):
- if stateFlags & interfaces.nsIWebProgressListener.STATE_IS_REQUEST and \
- stateFlags & interfaces.nsIWebProgressListener.STATE_STOP:
- clipboard = gtk.Clipboard()
- clipboard.set_with_data([('text/uri-list', 0, 0)],
- _clipboard_get_func_cb,
- _clipboard_clear_func_cb,
- self._temp_file)
-
-
def _clipboard_get_func_cb(clipboard, selection_data, info, temp_file):
selection_data.set_uris(['file://' + temp_file])