From 46fbb37bc2efc531b48712351d80e9e24a9460a8 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 21 May 2007 15:54:37 +0000 Subject: Port to hulahop (lots of regressions) --- 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): -- cgit v0.9.1