diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2006-11-15 12:56:19 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2006-11-15 12:56:19 (GMT) |
commit | 59d57a03d9673e4f8f9c07aa7ba84edef32b8976 (patch) | |
tree | 825251fb38b27e97555f23d26026f60b7957d3ef /activities | |
parent | 66acd2a91b0f0b98ef3428e4a4c14f21d8aa0f1f (diff) |
First implementation of ClipboardService. Implement pdf viewing and downloading via ClipboardService.
Diffstat (limited to 'activities')
-rw-r--r-- | activities/web/webactivity.py | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/activities/web/webactivity.py b/activities/web/webactivity.py index 200bd39..14a763d 100644 --- a/activities/web/webactivity.py +++ b/activities/web/webactivity.py @@ -18,10 +18,12 @@ from gettext import gettext as _ import gtk import gtkmozembed import logging +import dbus import _sugar from sugar.activity import ActivityFactory from sugar.activity.Activity import Activity +from sugar.clipboard import ClipboardService from sugar import env from sugar.graphics import style import web.stylesheet @@ -104,12 +106,33 @@ def start(): style.load_stylesheet(web.stylesheet) - chandler = _sugar.get_browser_chandler() - chandler.connect('handle-content', handle_content_cb) + download_manager = _sugar.get_download_manager() + download_manager.connect('download-started', download_started_cb) + download_manager.connect('download-completed', download_completed_cb) + download_manager.connect('download-cancelled', download_started_cb) + download_manager.connect('download-progress', download_progress_cb) def stop(): gtkmozembed.pop_startup() -def handle_content_cb(chandler, url, mimeType, tmpFileName): - activity = ActivityFactory.create("org.laptop.sugar.Xbook") - activity.execute("open_document", [tmpFileName]) +def download_started_cb(download_manager, download): + name = download.get_url().rsplit('/', 1)[1] + + cbService = ClipboardService.get_instance() + cbService.add_object(name, + download.get_mime_type(), + download.get_file_name()) + +def download_completed_cb(download_manager, download): + cbService = ClipboardService.get_instance() + cbService.set_object_state(download.get_file_name(), 100) + +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 + #FIXME: clipboard API. + raise "Cancelling downloads still not implemented." + +def download_progress_cb(download_manager, download): + cbService = ClipboardService.get_instance() + cbService.set_object_state(download.get_file_name(), download.get_percent()) |