From 59d57a03d9673e4f8f9c07aa7ba84edef32b8976 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 15 Nov 2006 12:56:19 +0000 Subject: First implementation of ClipboardService. Implement pdf viewing and downloading via ClipboardService. --- (limited to 'activities') 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()) -- cgit v0.9.1