Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-19 14:55:07 (GMT)
committer Lucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-19 14:55:07 (GMT)
commit0a3d8753901589b3d1f90910f121ca7694d70320 (patch)
tree2e6957151191bf1195675054714e10699ba42ac4
parent3005541c3bc94f493fab0753ef774aff88db79ea (diff)
Add some stubs, cleanup some hulahop vestiges, implement Browser.get_source and some EditToolbar buttons.
-rw-r--r--browser.py42
-rw-r--r--downloadmanager.py7
-rw-r--r--edittoolbar.py63
-rw-r--r--palettes.py1
-rw-r--r--sessionstore.py1
-rw-r--r--webtoolbar.py20
6 files changed, 46 insertions, 88 deletions
diff --git a/browser.py b/browser.py
index 8a14831..814bc0f 100644
--- a/browser.py
+++ b/browser.py
@@ -177,6 +177,8 @@ class Browser(webkit.WebView):
def __init__(self):
webkit.WebView.__init__(self)
+
+ self.connect('download-requested', __download_requested_cb)
def load_uri(self, uri):
r = urlparse.urlparse(uri)
@@ -191,28 +193,28 @@ class Browser(webkit.WebView):
def set_session(self, data):
return sessionstore.set_session(self, data)
- def get_source(self, async_cb, async_err_cb):
- #cls = components.classes[ \
- # '@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
- #persist = cls.createInstance(interfaces.nsIWebBrowserPersist)
- ## get the source from the cache
- #persist.persistFlags = \
- # interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_FROM_CACHE
- #
- #temp_path = os.path.join(activity.get_activity_root(), 'instance')
- #file_path = os.path.join(temp_path, '%i' % time.time())
- #cls = components.classes["@mozilla.org/file/local;1"]
- #local_file = cls.createInstance(interfaces.nsILocalFile)
- #local_file.initWithPath(file_path)
- #
- #progresslistener = GetSourceListener(file_path, async_cb, async_err_cb)
- #persist.progressListener = xpcom.server.WrapObject(
- # progresslistener, interfaces.nsIWebProgressListener)
- #
- #uri = self.web_navigation.currentURI
- #persist.saveURI(uri, self.doc_shell, None, None, None, local_file)
+ def __download_requested_cb():
+ #TODO download ui
+ #TODO start download
pass
+ def get_source(self, async_cb, async_err_cb):
+ if self.props.progress == 0:
+ async_err_cb()
+
+ else:
+ # construct temporary file path
+ temp_path = os.path.join(activity.get_activity_root(), 'instance')
+ file_path = os.path.join(temp_path, '%i' % time.time())
+
+ # get source and wite it to file
+ source = self.get_main_frame().get_data_source().get_data()
+ f = open(file_path, 'w')
+ f.write(source)
+ f.close()
+
+ async_cb(file_path)
+
class PopupDialog(gtk.Window):
def __init__(self):
diff --git a/downloadmanager.py b/downloadmanager.py
index 8905cf5..8cb3d74 100644
--- a/downloadmanager.py
+++ b/downloadmanager.py
@@ -104,13 +104,6 @@ class HelperAppLauncherDialog:
launcher.saveToDisk(None, False)
return NS_OK
-
-#components.registrar.registerFactory('{64355793-988d-40a5-ba8e-fcde78cac631}',
-# 'Sugar Download Manager',
-# '@mozilla.org/helperapplauncherdialog;1',
-# Factory(HelperAppLauncherDialog))
-
-
class Download:
#_com_interfaces_ = interfaces.nsITransfer
diff --git a/edittoolbar.py b/edittoolbar.py
index 8c2ac3d..58cd761 100644
--- a/edittoolbar.py
+++ b/edittoolbar.py
@@ -1,5 +1,5 @@
# Copyright (C) 2008, One Laptop Per Child
-# Copyright (C) 2009 Simon Schampijer
+# Copyright (C) 2009 Simon Schampijer, Bobby Powers
#
# 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
@@ -26,8 +26,6 @@ from sugar.graphics import style
class EditToolbar(activity.EditToolbar):
- #_com_interfaces_ = interfaces.nsIObserver
-
def __init__(self, act):
activity.EditToolbar.__init__(self)
@@ -38,30 +36,6 @@ class EditToolbar(activity.EditToolbar):
self.copy.connect('clicked', self.__copy_cb)
self.paste.connect('clicked', self.__paste_cb)
- """
- Notifications are not working right now:
- https://bugzilla.mozilla.org/show_bug.cgi?id=207339
-
- command_manager = self._get_command_manager()
- self.undo.set_sensitive(
- command_manager.isCommandEnabled('cmd_undo', None))
- self.redo.set_sensitive(
- command_manager.isCommandEnabled('cmd_redo', None))
- self.copy.set_sensitive(
- command_manager.isCommandEnabled('cmd_copy', None))
- self.paste.set_sensitive(
- command_manager.isCommandEnabled('cmd_paste', None))
-
- self._observer = xpcom.server.WrapObject(self, interfaces.nsIObserver)
- command_manager.addCommandObserver(self._observer, 'cmd_undo')
- command_manager.addCommandObserver(self._observer, 'cmd_redo')
- command_manager.addCommandObserver(self._observer, 'cmd_copy')
- command_manager.addCommandObserver(self._observer, 'cmd_paste')
-
- def observe(self, subject, topic, data):
- logging.debug('observe: %r %r %r' % (subject, topic, data))
- """
-
separator = gtk.SeparatorToolItem()
separator.set_draw(False)
separator.set_expand(True)
@@ -100,36 +74,27 @@ class EditToolbar(activity.EditToolbar):
self._next.show()
def __undo_cb(self, button):
- command_manager = self._get_command_manager()
- command_manager.doCommand('cmd_undo', None, None)
+ logging.error('Undo not implemented.')
def __redo_cb(self, button):
- command_manager = self._get_command_manager()
- command_manager.doCommand('cmd_redo', None, None)
+ logging.error('Redo not implemented.')
def __copy_cb(self, button):
- command_manager = self._get_command_manager()
- command_manager.doCommand('cmd_copy', None, None)
+ logging.error('Copy not implemented.')
def __paste_cb(self, button):
- command_manager = self._get_command_manager()
- command_manager.doCommand('cmd_paste', None, None)
-
- def _get_command_manager(self):
- tabbed_view = self._activity.get_canvas()
- web_browser = tabbed_view.props.current_browser.browser
- requestor = web_browser.queryInterface(interfaces.nsIInterfaceRequestor)
- return requestor.getInterface(interfaces.nsICommandManager)
+ logging.error('Paste not implemented.')
def __search_entry_activate_cb(self, entry):
- tabbed_view = self._activity.get_canvas()
- tabbed_view.props.current_browser.typeahead.findAgain(False, False)
+ browser = self._activity.get_canvas().props.current_browser
+ browser.search_text(entry.props.text, False, True, True)
def __search_entry_changed_cb(self, entry):
tabbed_view = self._activity.get_canvas()
- found = tabbed_view.props.current_browser.typeahead.find( \
- entry.props.text, False)
- if found == interfaces.nsITypeAheadFind.FIND_NOTFOUND:
+ found = tabbed_view.props.current_browser.search_text(
+ entry.props.text, False, True, True)
+
+ if not found:
self._prev.props.sensitive = False
self._next.props.sensitive = False
entry.modify_text(gtk.STATE_NORMAL,
@@ -142,8 +107,10 @@ class EditToolbar(activity.EditToolbar):
def __find_previous_cb(self, button):
tabbed_view = self._activity.get_canvas()
- tabbed_view.props.current_browser.typeahead.findAgain(True, False)
+ tabbed_view.props.current_browser.search_text(
+ self.search_entry.props.text, False, False, True)
def __find_next_cb(self, button):
tabbed_view = self._activity.get_canvas()
- tabbed_view.props.current_browser.typeahead.findAgain(False, False)
+ tabbed_view.props.current_browser.search_text(
+ self.search_entry.props.text, False, True, True)
diff --git a/palettes.py b/palettes.py
index 200277a..47009f9 100644
--- a/palettes.py
+++ b/palettes.py
@@ -147,6 +147,7 @@ class LinkPalette(Palette):
def __download_activate_cb(self, menu_item):
downloadmanager.save_link(self._url, self._title, self._owner_document)
+
class ImagePalette(Palette):
diff --git a/sessionstore.py b/sessionstore.py
index ae97cd2..11fe135 100644
--- a/sessionstore.py
+++ b/sessionstore.py
@@ -40,7 +40,6 @@ def set_session(browser, data):
def _get_history(history):
- logging.debug('%r' % len(history))
entries_dest = []
for i in range(0, len(history)):
entry_orig = history.get_nth_item(i)
diff --git a/webtoolbar.py b/webtoolbar.py
index 86fab60..361b016 100644
--- a/webtoolbar.py
+++ b/webtoolbar.py
@@ -355,13 +355,7 @@ class PrimaryToolbar(ToolbarBox):
self.entry.props.progress = progress
def _set_address(self, uri):
- if uri is not None:
- cls = components.classes['@mozilla.org/intl/texttosuburi;1']
- texttosuburi = cls.getService(interfaces.nsITextToSubURI)
- ui_uri = texttosuburi.unEscapeURIForUI(uri.originCharset, uri.spec)
- else:
- ui_uri = None
- self.entry.props.address = ui_uri
+ self.entry.props.address = uri
def _set_title(self, title):
self.entry.props.title = title
@@ -400,10 +394,9 @@ class PrimaryToolbar(ToolbarBox):
def _stop_and_reload_cb(self, button):
browser = self._tabbed_view.props.current_browser
if self._loading:
- browser.web_navigation.stop(interfaces.nsIWebNavigation.STOP_ALL)
+ browser.stop()
else:
- flags = interfaces.nsIWebNavigation.LOAD_FLAGS_NONE
- browser.web_navigation.reload(flags)
+ browser.reload()
def _set_loading(self, loading):
self._loading = loading
@@ -417,7 +410,8 @@ class PrimaryToolbar(ToolbarBox):
def _reload_session_history(self, current_page_index=None):
browser = self._tabbed_view.props.current_browser
- session_history = browser.web_navigation.sessionHistory
+ history = browser.get_back_forward_list()
+
if current_page_index is None:
current_page_index = session_history.index
@@ -454,7 +448,9 @@ class PrimaryToolbar(ToolbarBox):
def _history_item_activated_cb(self, menu_item, index):
browser = self._tabbed_view.props.current_browser
- browser.web_navigation.gotoIndex(index)
+ history = browser.get_back_forward_list()
+
+ history.go_to_item(history.get_nth_item(index))
def _link_add_clicked_cb(self, button):
self.emit('add-link')