Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]browser.py (renamed from webview.py)63
-rwxr-xr-xwebactivity.py31
-rwxr-xr-xwebtoolbar.py35
3 files changed, 26 insertions, 103 deletions
diff --git a/webview.py b/browser.py
index cc840e3..09493a2 100755..100644
--- a/webview.py
+++ b/browser.py
@@ -13,16 +13,14 @@
# 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
-from gettext import gettext as _
-import gobject
-import gtk
-import logging
-from gettext import gettext as _
+from hulahop.webview import WebView
-from sugar.browser import Browser
+class Browser(WebView):
+ def __init__(self):
+ WebView.__init__(self)
+"""
class _PopupCreator(gobject.GObject):
__gsignals__ = {
'popup-created': (gobject.SIGNAL_RUN_FIRST,
@@ -43,7 +41,7 @@ class _PopupCreator(gobject.GObject):
self._dialog.realize()
self._dialog.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
- self._embed = WebView()
+ self._embed = webviewWebView()
self._size_to_sid = self._embed.connect('size_to', self._size_to_cb)
self._vis_sid = self._embed.connect('visibility', self._visibility_cb)
@@ -82,52 +80,8 @@ class _PopupCreator(gobject.GObject):
def get_embed(self):
return self._embed
-
-class _ImageMenu(gtk.Menu):
- def __init__(self, browser, event):
- gtk.Menu.__init__(self)
-
- self._browser = browser
- self._image_uri = event.image_uri
- self._image_name = event.image_name
-
- menu_item = gtk.ImageMenuItem(gtk.STOCK_SAVE)
- menu_item.connect('activate', self._save_activate_cb)
- self.add(menu_item)
- menu_item.show()
-
- def _save_activate_cb(self, menu_item):
- chooser = gtk.FileChooserDialog(title=None,
- parent=self._browser.get_toplevel(),
- 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('~'))
- if self._image_name:
- chooser.set_current_name(self._image_name)
-
- file_filter = gtk.FileFilter()
- file_filter.set_name(_("Images"))
- file_filter.add_mime_type("image/png")
- file_filter.add_mime_type("image/jpeg")
- file_filter.add_mime_type("image/gif")
- chooser.add_filter(file_filter)
-
- file_filter = gtk.FileFilter()
- file_filter.set_name(_("All files"))
- file_filter.add_pattern("*")
- chooser.add_filter(file_filter)
- response = chooser.run()
-
- if response == gtk.RESPONSE_OK:
- self._browser.save_uri(self._image_uri, chooser.get_filename())
-
- chooser.destroy()
-
-class WebView(Browser):
+
+class WebView(webview.WebView):
__gtype_name__ = "SugarWebBrowser"
def __init__(self):
@@ -151,3 +105,4 @@ class WebView(Browser):
def _popup_created_cb(self, creator):
self._popup_creators.remove(creator)
+"""
diff --git a/webactivity.py b/webactivity.py
index e64b8e8..50faba2 100755
--- a/webactivity.py
+++ b/webactivity.py
@@ -13,27 +13,27 @@
# 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 logging
-import time
from gettext import gettext as _
-import urlparse
import gtk
import dbus
-import sugar.browser
from sugar.activity import activity
-from sugar.activity import activityfactory
from sugar.datastore import datastore
from sugar import profile
from sugar.clipboard import clipboardservice
from sugar import env
-from webview import WebView
+import hulahop
+hulahop.startup(os.path.join(env.get_profile_path(), 'gecko'))
+
+from browser import Browser
from webtoolbar import WebToolbar
-_HOMEPAGE = 'file:///home/olpc/Library/index.html'
+_HOMEPAGE = 'http://www.google.com'
class WebActivity(activity.Activity):
def __init__(self, handle, browser=None):
@@ -46,8 +46,7 @@ class WebActivity(activity.Activity):
if browser:
self._browser = browser
else:
- self._browser = WebView()
- self._browser.connect('notify::title', self._title_changed_cb)
+ self._browser = Browser()
toolbox = activity.ActivityToolbox(self)
activity_toolbar = toolbox.get_activity_toolbar()
@@ -63,12 +62,9 @@ class WebActivity(activity.Activity):
self._browser.show()
if handle.uri:
- self._browser.load_url(handle.uri)
+ self._browser.load_uri(handle.uri)
else:
- self._browser.load_url(_HOMEPAGE)
-
- if not self.jobject['title']:
- self.jobject['title'] = _('Web session')
+ self._browser.load_uri(_HOMEPAGE)
# FIXME: this should be done in activity.Activity
self._browser.connect('realize', self._realize_cb)
@@ -103,6 +99,8 @@ class WebActivity(activity.Activity):
f.close()
return f.name
+"""
+
def start():
if not sugar.browser.startup(env.get_profile_path(), 'gecko'):
raise "Error when initializising the web activity."
@@ -126,7 +124,6 @@ def download_started_cb(download_manager, download):
jobject['title'] = _('Downloading %s from \n%s.') % \
(get_download_file_name(download), download.get_url())
- # FIXME: We should use here the mime registry when we have one.
if download.get_mime_type() in ['application/pdf', 'application/x-pdf']:
jobject['activity'] = 'org.laptop.sugar.Xbook'
jobject['icon'] = 'theme:object-text'
@@ -172,10 +169,6 @@ def download_completed_cb(download_manager, download):
reply_handler=lambda *args: _dl_completed_cb(download, True, *args),
error_handler=lambda *args: _dl_completed_cb(download, False, *args))
- if jobject['activity']:
- activityfactory.create_with_object_id(jobject['activity'],
- jobject.object_id)
-
def download_cancelled_cb(download_manager, download):
#FIXME: Needs to update the state of the object to 'download stopped'.
#FIXME: Will do it when we complete progress on the definition of the
@@ -206,3 +199,5 @@ def download_progress_cb(download_manager, download):
datastore.write(jobject,
reply_handler=lambda *args: _dl_progress_cb(download, percent, True, *args),
error_handler=lambda *args: _dl_progress_cb(download, percent, False, *args))
+
+"""
diff --git a/webtoolbar.py b/webtoolbar.py
index d5921d8..2f9ee42 100755
--- a/webtoolbar.py
+++ b/webtoolbar.py
@@ -21,11 +21,13 @@ import gtk
from sugar.graphics.toolbutton import ToolButton
-from sugar.browser import AddressEntry
+from sugar.graphics import AddressEntry
class WebToolbar(gtk.Toolbar):
def __init__(self, embed):
gtk.Toolbar.__init__(self)
+
+ self._embed = embed
self._back = ToolButton('go-previous')
self._back.props.sensitive = False
@@ -55,43 +57,14 @@ class WebToolbar(gtk.Toolbar):
self.insert(entry_item, -1)
entry_item.show()
- self._embed = embed
- embed.connect("notify::progress", self._progress_changed_cb)
- embed.connect("notify::loading", self._loading_changed_cb)
- embed.connect("notify::address", self._address_changed_cb)
- embed.connect("notify::title", self._title_changed_cb)
- embed.connect("notify::can-go-back", self._can_go_back_changed_cb)
- embed.connect("notify::can-go-forward",
- self._can_go_forward_changed_cb)
-
- self._update_stop_and_reload_icon()
-
def _update_stop_and_reload_icon(self):
if self._embed.props.loading:
self._stop_and_reload.set_named_icon('stop')
else:
self._stop_and_reload.set_named_icon('view-refresh')
- def _progress_changed_cb(self, embed, spec):
- self._entry.props.progress = embed.props.progress
-
- def _loading_changed_cb(self, embed, spec):
- self._update_stop_and_reload_icon()
-
- def _address_changed_cb(self, embed, spec):
- self._entry.props.address = embed.props.address
-
- def _title_changed_cb(self, embed, spec):
- self._entry.props.title = embed.props.title
-
- def _can_go_back_changed_cb(self, embed, spec):
- self._back.props.sensitive = embed.props.can_go_back
-
- def _can_go_forward_changed_cb(self, embed, spec):
- self._forward.props.sensitive = embed.props.can_go_forward
-
def _entry_activate_cb(self, entry):
- self._embed.load_url(entry.props.text)
+ self._embed.load_uri(entry.props.text)
self._embed.grab_focus()
def _go_back_cb(self, button):