From 61f24de7482ceb48335d1b2635de5fdff93fd0d9 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Fri, 10 Nov 2006 13:14:15 +0000 Subject: Reverting clipboard changes pushed by mistake. These are commits 23565cfd483e38d3a64cd5980deea47cccb28581 and a7e4092b0e4f3d30a21ee5a7982aecd5252a0822. --- diff --git a/.gitignore b/.gitignore index edc5592..0748927 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,3 @@ lib/src/sugar-marshal.c lib/src/sugar-marshal.h lib/src/stamp-sugar-marshal.c lib/src/stamp-sugar-marshal.h -services/clipboard/org.laptop.Clipboard.service diff --git a/activities/web/webactivity.py b/activities/web/webactivity.py index 6fc0fac..200bd39 100644 --- a/activities/web/webactivity.py +++ b/activities/web/webactivity.py @@ -18,12 +18,10 @@ 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 @@ -106,28 +104,12 @@ def start(): style.load_stylesheet(web.stylesheet) - 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) + chandler = _sugar.get_browser_chandler() + chandler.connect('handle-content', handle_content_cb) def stop(): gtkmozembed.pop_startup() -def download_started_cb(download_manager, url, mimeType, tmpFileName): - cbService = ClipboardService.get_instance() - cbService.add_object(mimeType, tmpFileName) - -def download_completed_cb(download_manager, tmpFileName): - cbService = ClipboardService.get_instance() - cbService.update_object_state(tmpFileName, 100) - -def download_cancelled_cb(download_manager, tmpFileName): - cbService = ClipboardService.get_instance() - #FIXME: Needs to update the state of the object to 'download stopped' - #cbService.update_object_state(tmpFileName, 100) - -def download_progress_cb(download_manager, tmpFileName, progress): - cbService = ClipboardService.get_instance() - cbService.update_object_state(tmpFileName, progress) +def handle_content_cb(chandler, url, mimeType, tmpFileName): + activity = ActivityFactory.create("org.laptop.sugar.Xbook") + activity.execute("open_document", [tmpFileName]) diff --git a/configure.ac b/configure.ac index 52320d1..6c904de 100644 --- a/configure.ac +++ b/configure.ac @@ -65,7 +65,6 @@ lib/threadframe/Makefile services/Makefile services/presence/Makefile services/nm/Makefile -services/clipboard/Makefile shell/Makefile shell/conf/Makefile shell/data/Makefile @@ -78,7 +77,6 @@ sugar/__installed__.py sugar/activity/Makefile sugar/chat/Makefile sugar/chat/sketchpad/Makefile -sugar/clipboard/Makefile sugar/graphics/Makefile sugar/p2p/Makefile sugar/presence/Makefile diff --git a/lib/python/_sugar.defs b/lib/python/_sugar.defs index 6a42d96..5a31c91 100644 --- a/lib/python/_sugar.defs +++ b/lib/python/_sugar.defs @@ -35,11 +35,11 @@ (gtype-id "SUGAR_TYPE_PUSH_SCROLLER") ) -(define-object DownloadManager +(define-object BrowserChandler (in-module "Sugar") (parent "GObject") - (c-name "SugarDownloadManager") - (gtype-id "SUGAR_TYPE_DOWNLOAD_MANAGER") + (c-name "SugarBrowserChandler") + (gtype-id "SUGAR_TYPE_BROWSER_CHANDLER") ) ;; Enumerations and flags ... @@ -181,14 +181,14 @@ ) ) -;; From sugar-download-manager.h +;; From sugar-browser-chandler.h -(define-function sugar_download_manager_get_type - (c-name "sugar_download_manager_get_type") +(define-function sugar_browser_chandler_get_type + (c-name "sugar_browser_chandler_get_type") (return-type "GType") ) -(define-function get_download_manager - (c-name "sugar_get_download_manager") - (return-type "SugarDownloadManager*") +(define-function get_browser_chandler + (c-name "sugar_get_browser_chandler") + (return-type "SugarBrowserChandler*") ) diff --git a/lib/python/_sugar.override b/lib/python/_sugar.override index f1f5cd7..9d27bbe 100644 --- a/lib/python/_sugar.override +++ b/lib/python/_sugar.override @@ -9,7 +9,7 @@ headers #include "sugar-address-entry.h" #include "sugar-tray-manager.h" #include "sugar-push-scroller.h" -#include "sugar-download-manager.h" +#include "sugar-browser-chandler.h" %% modulename gecko diff --git a/lib/src/Makefile.am b/lib/src/Makefile.am index 7416f83..0224885 100644 --- a/lib/src/Makefile.am +++ b/lib/src/Makefile.am @@ -19,8 +19,8 @@ libsugarprivate_la_SOURCES = \ sugar-address-entry.c \ sugar-browser.h \ sugar-browser.cpp \ - sugar-download-manager.h \ - sugar-download-manager.c \ + sugar-browser-chandler.h \ + sugar-browser-chandler.c \ SugarContentHandler.h \ SugarContentHandler.cpp \ SugarDownload.h \ diff --git a/lib/src/SugarContentHandler.cpp b/lib/src/SugarContentHandler.cpp index de30aec..b39b20b 100644 --- a/lib/src/SugarContentHandler.cpp +++ b/lib/src/SugarContentHandler.cpp @@ -1,6 +1,9 @@ #include #include +#include "sugar-browser-chandler.h" +#include "SugarDownload.h" + #include "SugarContentHandler.h" GSugarContentHandler::GSugarContentHandler() diff --git a/lib/src/SugarDownload.cpp b/lib/src/SugarDownload.cpp index b087670..9c68b8f 100644 --- a/lib/src/SugarDownload.cpp +++ b/lib/src/SugarDownload.cpp @@ -1,4 +1,4 @@ -#include "sugar-download-manager.h" +#include "sugar-browser-chandler.h" #include "SugarDownload.h" @@ -35,39 +35,27 @@ GSugarDownload::Init (nsIURI *aSource, NS_IMETHODIMP GSugarDownload::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) -{ - SugarDownloadManager *download_manager = sugar_get_download_manager(); - - if (((aStateFlags & STATE_IS_REQUEST) && - (aStateFlags & STATE_IS_NETWORK) && - (aStateFlags & STATE_START)) || - aStateFlags == STATE_START) { +{ + nsCString url; + nsCString mimeType; + nsCString targetURI; - nsCString url; - nsCString mimeType; + if ((((aStateFlags & STATE_IS_REQUEST) && + (aStateFlags & STATE_IS_NETWORK) && + (aStateFlags & STATE_STOP)) || + aStateFlags == STATE_STOP) && + NS_SUCCEEDED (aStatus)) { mMIMEInfo->GetMIMEType(mimeType); mSource->GetSpec(url); - sugar_download_manager_download_started(download_manager, - url.get(), - mimeType.get(), - mTargetFileName.get()); - - } else if (((aStateFlags & STATE_IS_REQUEST) && - (aStateFlags & STATE_IS_NETWORK) && - (aStateFlags & STATE_STOP)) || - aStateFlags == STATE_STOP) { - - if (NS_SUCCEEDED (aStatus)) { - sugar_download_manager_download_completed(download_manager, - mTargetFileName.get()); - } else { - sugar_download_manager_download_cancelled(download_manager, - mTargetFileName.get()); - } + SugarBrowserChandler *browser_chandler = sugar_get_browser_chandler(); + sugar_browser_chandler_handle_content(browser_chandler, + url.get(), + mimeType.get(), + mTargetFileName.get()); } - + return NS_OK; } @@ -91,15 +79,7 @@ GSugarDownload::OnProgressChange64 (nsIWebProgress *aWebProgress, PRInt64 aMaxSelfProgress, PRInt64 aCurTotalProgress, PRInt64 aMaxTotalProgress) -{ - SugarDownloadManager *download_manager = sugar_get_download_manager(); - PRInt32 percentComplete = - (PRInt32)(((float)aCurSelfProgress / (float)aMaxSelfProgress) * 100.0); - - sugar_download_manager_update_progress(download_manager, - mTargetFileName.get(), - percentComplete); - +{ return NS_OK; } diff --git a/lib/src/sugar-browser-chandler.c b/lib/src/sugar-browser-chandler.c new file mode 100644 index 0000000..a65519a --- /dev/null +++ b/lib/src/sugar-browser-chandler.c @@ -0,0 +1,56 @@ +#include "sugar-marshal.h" +#include "sugar-browser-chandler.h" + +enum { + HANDLE_CONTENT, + LAST_SIGNAL +}; +static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE(SugarBrowserChandler, sugar_browser_chandler, G_TYPE_OBJECT) + +SugarBrowserChandler *browserChandler = NULL; + +static void +sugar_browser_chandler_init(SugarBrowserChandler *browserChandler) +{ +} + +static void +sugar_browser_chandler_class_init(SugarBrowserChandlerClass *browser_chandler_class) +{ + signals[HANDLE_CONTENT] = + g_signal_new ("handle-content", + G_OBJECT_CLASS_TYPE (browser_chandler_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (SugarBrowserChandlerClass, handle_content), + NULL, NULL, + sugar_marshal_VOID__STRING_STRING_STRING, + G_TYPE_NONE, 3, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING); +} + +SugarBrowserChandler * +sugar_get_browser_chandler() +{ + if(browserChandler == NULL) + browserChandler = g_object_new(SUGAR_TYPE_BROWSER_CHANDLER, NULL); + + return browserChandler; +} + +void +sugar_browser_chandler_handle_content (SugarBrowserChandler *browser_chandler, + const char *url, + const char *mime_type, + const char *tmp_file_name) +{ + g_signal_emit(browser_chandler, + signals[HANDLE_CONTENT], + 0 /* details */, + url, + mime_type, + tmp_file_name); +} diff --git a/lib/src/sugar-browser-chandler.h b/lib/src/sugar-browser-chandler.h new file mode 100644 index 0000000..cccd983 --- /dev/null +++ b/lib/src/sugar-browser-chandler.h @@ -0,0 +1,39 @@ +#ifndef __SUGAR_BROWSER_CHANDLER_H__ +#define __SUGAR_BROWSER_CHANDLER_H__ + +#include +#include + +G_BEGIN_DECLS + +typedef struct _SugarBrowserChandler SugarBrowserChandler; +typedef struct _SugarBrowserChandlerClass SugarBrowserChandlerClass; + +#define SUGAR_TYPE_BROWSER_CHANDLER (sugar_browser_chandler_get_type()) +#define SUGAR_BROWSER_CHANDLER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), SUGAR_TYPE_BROWSER_CHANDLER, SugarBrowserChandler)) +#define SUGAR_BROWSER_CHANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SUGAR_TYPE_BROWSER_CHANDLER, SugarBrowserChandlerClass)) +#define SUGAR_IS_BROWSER_CHANDLER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), SUGAR_TYPE_BROWSER_CHANDLER)) +#define SUGAR_IS_BROWSER_CHANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SUGAR_TYPE_BROWSER_CHANDLER)) +#define SUGAR_BROWSER_CHANDLER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), SUGAR_TYPE_BROWSER_CHANDLER, SugarBrowserChandlerClass)) + +struct _SugarBrowserChandler { + GObject base_instance; +}; + +struct _SugarBrowserChandlerClass { + GObjectClass base_class; + + void (* handle_content) (char *url, char *tmp_file_name); + +}; + +GType sugar_browser_chandler_get_type (void); +SugarBrowserChandler *sugar_get_browser_chandler (void); +void sugar_browser_chandler_handle_content (SugarBrowserChandler *chandler, + const char *url, + const char *mime_type, + const char *tmp_file_name); + +G_END_DECLS + +#endif diff --git a/lib/src/sugar-browser.cpp b/lib/src/sugar-browser.cpp index f787f19..d2ffb8a 100644 --- a/lib/src/sugar-browser.cpp +++ b/lib/src/sugar-browser.cpp @@ -78,7 +78,7 @@ sugar_browser_startup(void) PR_TRUE, getter_AddRefs(file)); NS_ENSURE_TRUE(file, FALSE); - rv = prefService->ReadUserPrefs (file); + rv = prefService->ReadUserPrefs (file); if (NS_FAILED(rv)) { g_warning ("failed to read default preferences, error: %x", rv); return FALSE; diff --git a/lib/src/sugar-download-manager.c b/lib/src/sugar-download-manager.c deleted file mode 100644 index c3ffcf2..0000000 --- a/lib/src/sugar-download-manager.c +++ /dev/null @@ -1,121 +0,0 @@ -#include "sugar-marshal.h" -#include "sugar-download-manager.h" - -enum { - DOWNLOAD_STARTED, - DOWNLOAD_COMPLETED, - DOWNLOAD_CANCELLED, - DOWNLOAD_PROGRESS, - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; - -G_DEFINE_TYPE(SugarDownloadManager, sugar_download_manager, G_TYPE_OBJECT) - -SugarDownloadManager *DownloadManager = NULL; - -static void -sugar_download_manager_init(SugarDownloadManager *DownloadManager) -{ -} - -static void -sugar_download_manager_class_init(SugarDownloadManagerClass *download_manager_class) -{ - signals[DOWNLOAD_STARTED] = - g_signal_new ("download-started", - G_OBJECT_CLASS_TYPE (download_manager_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (SugarDownloadManagerClass, handle_content), - NULL, NULL, - sugar_marshal_VOID__STRING_STRING_STRING, - G_TYPE_NONE, 3, - G_TYPE_STRING, - G_TYPE_STRING, - G_TYPE_STRING); - - signals[DOWNLOAD_COMPLETED] = - g_signal_new ("download-completed", - G_OBJECT_CLASS_TYPE (download_manager_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (SugarDownloadManagerClass, handle_content), - NULL, NULL, - sugar_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - signals[DOWNLOAD_CANCELLED] = - g_signal_new ("download-cancelled", - G_OBJECT_CLASS_TYPE (download_manager_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (SugarDownloadManagerClass, handle_content), - NULL, NULL, - sugar_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - signals[DOWNLOAD_PROGRESS] = - g_signal_new ("download-progress", - G_OBJECT_CLASS_TYPE (download_manager_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (SugarDownloadManagerClass, handle_content), - NULL, NULL, - sugar_marshal_VOID__STRING_INT, - G_TYPE_NONE, 2, - G_TYPE_STRING, - G_TYPE_INT); -} - -SugarDownloadManager * -sugar_get_download_manager() -{ - if(DownloadManager == NULL) - DownloadManager = g_object_new(SUGAR_TYPE_DOWNLOAD_MANAGER, NULL); - - return DownloadManager; -} - -void -sugar_download_manager_download_started (SugarDownloadManager *download_manager, - const char *url, - const char *mime_type, - const char *tmp_file_name) -{ - g_signal_emit(download_manager, - signals[DOWNLOAD_STARTED], - 0 /* details */, - url, - mime_type, - tmp_file_name); -} - -void -sugar_download_manager_download_completed (SugarDownloadManager *download_manager, - const char *tmp_file_name) -{ - g_signal_emit(download_manager, - signals[DOWNLOAD_COMPLETED], - 0 /* details */, - tmp_file_name); -} - -void sugar_download_manager_download_cancelled (SugarDownloadManager *download_manager, - const char *tmp_file_name) -{ - g_signal_emit(download_manager, - signals[DOWNLOAD_CANCELLED], - 0 /* details */, - tmp_file_name); -} - -void -sugar_download_manager_update_progress (SugarDownloadManager *download_manager, - const char *tmp_file_name, - const int percent) -{ - g_signal_emit(download_manager, - signals[DOWNLOAD_PROGRESS], - 0 /* details */, - tmp_file_name, - percent); -} diff --git a/lib/src/sugar-download-manager.h b/lib/src/sugar-download-manager.h deleted file mode 100644 index 2d112d8..0000000 --- a/lib/src/sugar-download-manager.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef __SUGAR_DOWNLOAD_MANAGER_H__ -#define __SUGAR_DOWNLOAD_MANAGER_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef struct _SugarDownloadManager SugarDownloadManager; -typedef struct _SugarDownloadManagerClass SugarDownloadManagerClass; - -#define SUGAR_TYPE_DOWNLOAD_MANAGER (sugar_download_manager_get_type()) -#define SUGAR_DOWNLOAD_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), SUGAR_TYPE_DOWNLOAD_MANAGER, SugarDownloadManager)) -#define SUGAR_DOWNLOAD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SUGAR_TYPE_DOWNLOAD_MANAGER, SugarDownloadManagerClass)) -#define SUGAR_IS_DOWNLOAD_MANAGER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), SUGAR_TYPE_DOWNLOAD_MANAGER)) -#define SUGAR_IS_DOWNLOAD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SUGAR_TYPE_DOWNLOAD_MANAGER)) -#define SUGAR_DOWNLOAD_MANAGER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), SUGAR_TYPE_DOWNLOAD_MANAGER, SugarDownloadManagerClass)) - -struct _SugarDownloadManager { - GObject base_instance; -}; - -struct _SugarDownloadManagerClass { - GObjectClass base_class; - - void (* handle_content) (char *url, char *tmp_file_name); - -}; - -GType sugar_download_manager_get_type(void); - -SugarDownloadManager *sugar_get_download_manager(void); - -void sugar_download_manager_download_started( - SugarDownloadManager *download_manager, - const char *url, - const char *mime_type, - const char *tmp_file_name); - -void sugar_download_manager_download_completed( - SugarDownloadManager *download_manager, - const char *tmp_file_name); - -void sugar_download_manager_download_cancelled( - SugarDownloadManager *download_manager, - const char *tmp_file_name); - -void sugar_download_manager_update_progress( - SugarDownloadManager *download_manager, - const char *tmp_file_name, - const int percent); - -G_END_DECLS - -#endif diff --git a/lib/src/sugar-marshal.list b/lib/src/sugar-marshal.list index 4d987f8..5a0120f 100644 --- a/lib/src/sugar-marshal.list +++ b/lib/src/sugar-marshal.list @@ -1,5 +1,3 @@ VOID:OBJECT,STRING,LONG,LONG VOID:OBJECT,LONG VOID:STRING,STRING,STRING -VOID:STRING,INT -VOID:STRING diff --git a/services/Makefile.am b/services/Makefile.am index 2a0fe5a..1bae7e7 100644 --- a/services/Makefile.am +++ b/services/Makefile.am @@ -1 +1 @@ -SUBDIRS = presence nm clipboard +SUBDIRS = presence nm diff --git a/services/clipboard/ClipboardService.py b/services/clipboard/ClipboardService.py deleted file mode 100644 index 9ed9217..0000000 --- a/services/clipboard/ClipboardService.py +++ /dev/null @@ -1,76 +0,0 @@ -# vi: ts=4 ai noet -# -# Copyright (C) 2006, Red Hat, Inc. -# -# 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 -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# 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 logging -import gobject -import dbus -import dbus.service -from sugar import env - -class ClipboardDBusServiceHelper(dbus.service.Object): - - _CLIPBOARD_DBUS_INTERFACE = "org.laptop.Clipboard" - _CLIPBOARD_OBJECT_PATH = "/org/laptop/Clipboard" - - def __init__(self, parent): - self._parent = parent - - bus = dbus.SessionBus() - bus_name = dbus.service.BusName(self._CLIPBOARD_DBUS_INTERFACE, bus=bus) - dbus.service.Object.__init__(self, bus_name, self._CLIPBOARD_OBJECT_PATH) - - @dbus.service.method(_CLIPBOARD_DBUS_INTERFACE, - in_signature="ss", out_signature="") - def add_object(self, mimeType, fileName): - self.object_added(mimeType, fileName) - logging.debug('Added object of type ' + mimeType + ' with path at ' + fileName) - - @dbus.service.method(_CLIPBOARD_DBUS_INTERFACE, - in_signature="s", out_signature="") - def delete_object(self, fileName): - self.object_deleted(fileName) - logging.debug('Deleted object with path at ' + fileName) - - @dbus.service.method(_CLIPBOARD_DBUS_INTERFACE, - in_signature="si", out_signature="") - def update_object_state(self, fileName, percent): - logging.debug('Updated object with path at ' + fileName + ' with percent ' + str(percent)) - self.object_state_updated(fileName, percent) - - @dbus.service.signal(_CLIPBOARD_DBUS_INTERFACE, signature="ss") - def object_added(self, mimeType, fileName): - pass - - @dbus.service.signal(_CLIPBOARD_DBUS_INTERFACE, signature="s") - def object_deleted(self, fileName): - pass - - @dbus.service.signal(_CLIPBOARD_DBUS_INTERFACE, signature="si") - def object_state_updated(self, fileName, percent): - pass - -class ClipboardService(object): - def __init__(self): - self._dbus_helper = ClipboardDBusServiceHelper(self) - - def run(self): - loop = gobject.MainLoop() - try: - loop.run() - except KeyboardInterrupt: - print 'Ctrl+C pressed, exiting...' diff --git a/services/clipboard/Makefile.am b/services/clipboard/Makefile.am deleted file mode 100644 index ccc54f2..0000000 --- a/services/clipboard/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -servicedir = $(datadir)/sugar/services -service_in_files = org.laptop.Clipboard.service.in -service_DATA = $(service_in_files:.service.in=.service) - -$(service_DATA): $(service_in_files) Makefile - @sed -e "s|\@bindir\@|$(bindir)|" $< > $@ - -sugardir = $(pkgdatadir)/services/clipboard -sugar_PYTHON = \ - __init__.py \ - ClipboardService.py - -bin_SCRIPTS = sugar-clipboard - -EXTRA_DIST = $(service_in_files) $(bin_SCRIPTS) diff --git a/services/clipboard/__init__.py b/services/clipboard/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/services/clipboard/__init__.py +++ /dev/null diff --git a/services/clipboard/org.laptop.Clipboard.service.in b/services/clipboard/org.laptop.Clipboard.service.in deleted file mode 100644 index b38bf2b..0000000 --- a/services/clipboard/org.laptop.Clipboard.service.in +++ /dev/null @@ -1,4 +0,0 @@ -[D-BUS Service] -Name = org.laptop.Clipboard -Exec = @bindir@/sugar-clipboard - diff --git a/services/clipboard/sugar-clipboard b/services/clipboard/sugar-clipboard deleted file mode 100755 index bcbd280..0000000 --- a/services/clipboard/sugar-clipboard +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/python -# vi: ts=4 ai noet -# -# Copyright (C) 2006, Red Hat, Inc. -# -# 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 -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# 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 sys -import logging - -from sugar import logger -logger.start('clipboard') - -import gobject -import pygtk -pygtk.require('2.0') - -import dbus.glib - -from sugar import env - -sys.path.insert(0, env.get_services_dir()) - -from clipboard.ClipboardService import ClipboardService - -logging.info('Starting clipboard service.') - -gobject.threads_init() -dbus.glib.threads_init() - -app = ClipboardService() -app.run() diff --git a/shell/view/ClipboardIcon.py b/shell/view/ClipboardIcon.py deleted file mode 100644 index db23353..0000000 --- a/shell/view/ClipboardIcon.py +++ /dev/null @@ -1,37 +0,0 @@ -from sugar.graphics.menuicon import MenuIcon -from view.ClipboardMenu import ClipboardMenu -from sugar.activity import ActivityFactory -from sugar.clipboard import ClipboardService - -class ClipboardIcon(MenuIcon): - - def __init__(self, menu_shell, file_name): - MenuIcon.__init__(self, menu_shell, icon_name='activity-xbook') - self._file_name = file_name - self._percent = 0 - self.connect('activated', self._icon_activated_cb) - self._menu = None - - def create_menu(self): - self._menu = ClipboardMenu(self._file_name, self._percent) - self._menu.connect('action', self._popup_action_cb) - return self._menu - - def set_percent(self, percent): - self._percent = percent - if self._menu: - self._menu.set_percent(percent) - - def _icon_activated_cb(self, icon): - if self._percent == 100: - activity = ActivityFactory.create("org.laptop.sugar.Xbook") - activity.execute("open_document", [self._file_name]) - - def _popup_action_cb(self, popup, action): - self.popdown() - - if action == ClipboardMenu.ACTION_STOP_DOWNLOAD: - raise "Stopping downloads still not implemented." - elif action == ClipboardMenu.ACTION_DELETE: - cb_service = ClipboardService.get_instance() - cb_service.delete_object(self._file_name) diff --git a/shell/view/ClipboardMenu.py b/shell/view/ClipboardMenu.py deleted file mode 100644 index 0964fc3..0000000 --- a/shell/view/ClipboardMenu.py +++ /dev/null @@ -1,74 +0,0 @@ -import gtk -import gobject -import hippo - -from sugar.graphics.menu import Menu -from sugar.graphics.canvasicon import CanvasIcon -from sugar.graphics.ClipboardBubble import ClipboardBubble -from sugar.graphics import style - -clipboard_bubble = { - 'fill-color' : 0x646464FF, - 'stroke-color' : 0x646464FF, - 'progress-color': 0x333333FF, - 'spacing' : style.space_unit, - 'padding' : style.space_unit * 1.5 -} - -clipboard_menu_item_title = { - 'xalign': hippo.ALIGNMENT_START, - 'padding-left': 5, - 'color' : 0xFFFFFFFF, - 'font' : style.get_font_description('Bold', 1.2) -} - -style.register_stylesheet("clipboard.Bubble", clipboard_bubble) -style.register_stylesheet("clipboard.MenuItem.Title", clipboard_menu_item_title) - -class ClipboardMenuItem(ClipboardBubble): - - def __init__(self, percent = 0, stylesheet="clipboard.Bubble"): - ClipboardBubble.__init__(self, percent = percent) - style.apply_stylesheet(self, stylesheet) - -class ClipboardMenu(Menu): - - ACTION_DELETE = 0 - ACTION_SHARE = 1 - ACTION_STOP_DOWNLOAD = 2 - - def __init__(self, file_name, percent): - Menu.__init__(self, file_name) - - self._progress_bar = ClipboardMenuItem(percent) - self._root.append(self._progress_bar) - - #icon = CanvasIcon(icon_name='stock-share-mesh') - #self.add_action(icon, ClipboardMenu.ACTION_SHARE) - - self._remove_icon = None - self._stop_icon = None - - self._create_icons(percent) - - def _create_icons(self, percent): - if percent == 100: - if not self._remove_icon: - self._remove_icon = CanvasIcon(icon_name='stock-remove') - self.add_action(self._remove_icon, ClipboardMenu.ACTION_DELETE) - - if self._stop_icon: - self.remove_action(self._stop_icon) - self._stop_icon = None - else: - if not self._stop_icon: - self._stop_icon = CanvasIcon(icon_name='stock-close') - self.add_action(self._stop_icon, ClipboardMenu.ACTION_STOP_DOWNLOAD) - - if self._remove_icon: - self.remove_action(self._remove_icon) - self._remove_icon = None - - def set_percent(self, percent): - self._progress_bar.set_property('percent', percent) - self._create_icons(percent) diff --git a/shell/view/Makefile.am b/shell/view/Makefile.am index bd90a2d..bf77593 100644 --- a/shell/view/Makefile.am +++ b/shell/view/Makefile.am @@ -7,8 +7,6 @@ sugar_PYTHON = \ FirstTimeDialog.py \ BuddyIcon.py \ BuddyMenu.py \ - ClipboardIcon.py \ - ClipboardMenu.py \ OverlayWindow.py \ Shell.py \ dconmanager.py \ diff --git a/shell/view/frame/ClipboardBox.py b/shell/view/frame/ClipboardBox.py deleted file mode 100644 index 1ca1a8c..0000000 --- a/shell/view/frame/ClipboardBox.py +++ /dev/null @@ -1,42 +0,0 @@ -import logging -import dbus -import hippo - -from sugar.graphics import style -from view.ClipboardIcon import ClipboardIcon -from sugar.clipboard import ClipboardService - -class ClipboardBox(hippo.CanvasBox): - - def __init__(self, frame, menu_shell): - hippo.CanvasBox.__init__(self) - self._frame = frame - self._menu_shell = menu_shell - self._icons = {} - - cb_service = ClipboardService.get_instance() - cb_service.connect('object-added', self._object_added_cb) - cb_service.connect('object-deleted', self._object_deleted_cb) - cb_service.connect('object-state-updated', self._object_state_updated_cb) - - def _object_added_cb(self, cb_service, mimeType, fileName): - icon = ClipboardIcon(self._menu_shell, fileName) - style.apply_stylesheet(icon, 'frame.BuddyIcon') - self.append(icon) - self._icons[fileName] = icon - - if not self._frame.is_visible(): - self._frame.show_and_hide(0.1) - - logging.debug('ClipboardBox: ' + fileName + ' was added.') - - def _object_deleted_cb(self, cb_service, fileName): - icon = self._icons[fileName] - self.remove(icon) - del self._icons[fileName] - logging.debug('ClipboardBox: ' + fileName + ' was deleted.') - - def _object_state_updated_cb(self, cb_service, fileName, percent): - icon = self._icons[fileName] - icon.set_percent(percent) - logging.debug('ClipboardBox: ' + fileName + ' state was updated.') diff --git a/shell/view/frame/Frame.py b/shell/view/frame/Frame.py index 4a5f31a..80fb4d1 100644 --- a/shell/view/frame/Frame.py +++ b/shell/view/frame/Frame.py @@ -23,7 +23,6 @@ from view.frame.ActivitiesBox import ActivitiesBox from view.frame.ZoomBox import ZoomBox from view.frame.overlaybox import OverlayBox from view.frame.FriendsBox import FriendsBox -from view.frame.ClipboardBox import ClipboardBox from view.frame.PanelWindow import PanelWindow from view.frame.notificationtray import NotificationTray from sugar.graphics.timeline import Timeline @@ -199,10 +198,7 @@ class Frame: root.append(box) # Left panel - [menu_shell, root] = self._create_panel(grid, 0, 1, 1, 10) - - box = ClipboardBox(self, menu_shell) - root.append(box) + self._create_panel(grid, 0, 1, 1, 10) def _create_panel(self, grid, x, y, width, height): panel = PanelWindow() diff --git a/shell/view/frame/Makefile.am b/shell/view/frame/Makefile.am index 23e24af..eec6d0f 100644 --- a/shell/view/frame/Makefile.am +++ b/shell/view/frame/Makefile.am @@ -2,7 +2,6 @@ sugardir = $(pkgdatadir)/shell/view/frame sugar_PYTHON = \ __init__.py \ ActivitiesBox.py \ - ClipboardBox.py \ FriendsBox.py \ PanelWindow.py \ Frame.py \ diff --git a/sugar-emulator b/sugar-emulator index a26f0f2..6635a39 100755 --- a/sugar-emulator +++ b/sugar-emulator @@ -40,7 +40,6 @@ if sourcedir: bin_path = sourcedir bin_path += ':' + os.path.join(sourcedir, 'shell') bin_path += ':' + os.path.join(sourcedir, 'services/presence') - bin_path += ':' + os.path.join(sourcedir, 'services/clipboard') if os.environ.has_key('PATH'): old_path = os.environ['PATH'] @@ -55,11 +54,6 @@ if sourcedir: bin = os.path.join(sourcedir, 'services/presence/sugar-presence-service') setup.write_service('org.laptop.Presence', bin, - env.get_activity_info_dir()) - - bin = os.path.join(sourcedir, - 'services/clipboard/sugar-clipboard') - setup.write_service('org.laptop.Clipboard', bin, env.get_activity_info_dir()) from sugar.emulator import Emulator diff --git a/sugar/Makefile.am b/sugar/Makefile.am index 905555a..ae2e2ee 100644 --- a/sugar/Makefile.am +++ b/sugar/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = activity chat clipboard graphics p2p presence +SUBDIRS = activity chat graphics p2p presence sugardir = $(pythondir)/sugar sugar_PYTHON = \ diff --git a/sugar/clipboard/ClipboardService.py b/sugar/clipboard/ClipboardService.py deleted file mode 100644 index e189653..0000000 --- a/sugar/clipboard/ClipboardService.py +++ /dev/null @@ -1,73 +0,0 @@ -import dbus -import gobject - -DBUS_SERVICE = "org.laptop.Clipboard" -DBUS_INTERFACE = "org.laptop.Clipboard" -DBUS_PATH = "/org/laptop/Clipboard" - -class ClipboardService(gobject.GObject): - - __gsignals__ = { - 'object-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([str, str])), - 'object-deleted': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([str])), - 'object-state-updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([str, int])), - } - - def __init__(self): - gobject.GObject.__init__(self) - - self._dbus_service = None - bus = dbus.SessionBus() - bus.add_signal_receiver(self._name_owner_changed_cb, - signal_name="NameOwnerChanged", - dbus_interface="org.freedesktop.DBus") - # Try to register to ClipboardService, if we fail, we'll try later. - try: - self._connect_clipboard_signals() - except dbus.DBusException, exception: - pass - - def _connect_clipboard_signals(self): - bus = dbus.SessionBus() - proxy_obj = bus.get_object(DBUS_SERVICE, DBUS_PATH) - self._dbus_service = dbus.Interface(proxy_obj, DBUS_SERVICE) - self._dbus_service.connect_to_signal('object_added', self._object_added_cb) - self._dbus_service.connect_to_signal('object_deleted', self._object_deleted_cb) - self._dbus_service.connect_to_signal('object_state_updated', - self._object_state_updated_cb) - - def _name_owner_changed_cb(self, name, old, new): - if name != DBUS_SERVICE: - return - - if (not old and not len(old)) and (new and len(new)): - # ClipboardService started up - self._connect_clipboard_signals() - - def _object_added_cb(self, mimeType, fileName): - self.emit('object-added', mimeType, fileName) - - def _object_deleted_cb(self, fileName): - self.emit('object-deleted', fileName) - - def _object_state_updated_cb(self, fileName, percent): - self.emit('object-state-updated', fileName, percent) - - def add_object(self, mimeType, fileName): - self._dbus_service.add_object(mimeType, fileName) - - def delete_object(self, fileName): - self._dbus_service.delete_object(fileName) - - def update_object_state(self, fileName, percent): - self._dbus_service.update_object_state(fileName, percent) - -_clipboard_service = None -def get_instance(): - global _clipboard_service - if not _clipboard_service: - _clipboard_service = ClipboardService() - return _clipboard_service diff --git a/sugar/clipboard/Makefile.am b/sugar/clipboard/Makefile.am deleted file mode 100644 index dbfabe9..0000000 --- a/sugar/clipboard/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -sugardir = $(pythondir)/sugar/clipboard -sugar_PYTHON = \ - __init__.py \ - ClipboardService.py - diff --git a/sugar/clipboard/__init__.py b/sugar/clipboard/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/sugar/clipboard/__init__.py +++ /dev/null diff --git a/sugar/graphics/ClipboardBubble.py b/sugar/graphics/ClipboardBubble.py deleted file mode 100644 index 4c1da58..0000000 --- a/sugar/graphics/ClipboardBubble.py +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright (C) 2006, Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -#TODO: has to be merged with all the existing bubbles in a generic progress bar widget - -import math - -import gobject -import gtk -import hippo - -class ClipboardBubble(hippo.CanvasBox, hippo.CanvasItem): - __gtype_name__ = 'ClipboardBubble' - - __gproperties__ = { - 'fill-color': (object, None, None, - gobject.PARAM_READWRITE), - 'stroke-color': (object, None, None, - gobject.PARAM_READWRITE), - 'progress-color': (object, None, None, - gobject.PARAM_READWRITE), - 'percent' : (object, None, None, - gobject.PARAM_READWRITE), - } - - def __init__(self, **kwargs): - self._stroke_color = 0xFFFFFFFF - self._fill_color = 0xFFFFFFFF - self._progress_color = 0x000000FF - self._percent = 0 - self._radius = 8 - - hippo.CanvasBox.__init__(self, **kwargs) - - def do_set_property(self, pspec, value): - if pspec.name == 'fill-color': - self._fill_color = value - self.emit_paint_needed(0, 0, -1, -1) - elif pspec.name == 'stroke-color': - self._stroke_color = value - self.emit_paint_needed(0, 0, -1, -1) - elif pspec.name == 'progress-color': - self._progress_color = value - self.emit_paint_needed(0, 0, -1, -1) - elif pspec.name == 'percent': - self._percent = value - self.emit_paint_needed(0, 0, -1, -1) - - def do_get_property(self, pspec): - if pspec.name == 'fill-color': - return self._fill_color - elif pspec.name == 'stroke-color': - return self._stroke_color - elif pspec.name == 'progress-color': - return self._progress_color - elif pspec.name == 'percent': - return self._percent - - def _int_to_rgb(self, int_color): - red = (int_color >> 24) & 0x000000FF - green = (int_color >> 16) & 0x000000FF - blue = (int_color >> 8) & 0x000000FF - alpha = int_color & 0x000000FF - return (red / 255.0, green / 255.0, blue / 255.0) - - def do_paint_below_children(self, cr, damaged_box): - [width, height] = self.get_allocation() - - line_width = 3.0 - x = line_width - y = line_width - width -= line_width * 2 - height -= line_width * 2 - - cr.move_to(x + self._radius, y); - cr.arc(x + width - self._radius, y + self._radius, - self._radius, math.pi * 1.5, math.pi * 2); - cr.arc(x + width - self._radius, x + height - self._radius, - self._radius, 0, math.pi * 0.5); - cr.arc(x + self._radius, y + height - self._radius, - self._radius, math.pi * 0.5, math.pi); - cr.arc(x + self._radius, y + self._radius, self._radius, - math.pi, math.pi * 1.5); - - color = self._int_to_rgb(self._fill_color) - cr.set_source_rgb(*color) - cr.fill_preserve(); - - color = self._int_to_rgb(self._stroke_color) - cr.set_source_rgb(*color) - cr.set_line_width(line_width) - cr.stroke(); - - self._paint_progress_bar(cr, x, y, width, height, line_width) - - def _paint_progress_bar(self, cr, x, y, width, height, line_width): - prog_x = x + line_width - prog_y = y + line_width - prog_width = (width - (line_width * 2)) * (self._percent / 100.0) - prog_height = (height - (line_width * 2)) - - x = prog_x - y = prog_y - width = prog_width - height = prog_height - - cr.move_to(x + self._radius, y); - cr.arc(x + width - self._radius, y + self._radius, - self._radius, math.pi * 1.5, math.pi * 2); - cr.arc(x + width - self._radius, x + height - self._radius, - self._radius, 0, math.pi * 0.5); - cr.arc(x + self._radius, y + height - self._radius, - self._radius, math.pi * 0.5, math.pi); - cr.arc(x + self._radius, y + self._radius, self._radius, - math.pi, math.pi * 1.5); - - color = self._int_to_rgb(self._progress_color) - cr.set_source_rgb(*color) - cr.fill_preserve(); diff --git a/sugar/graphics/Makefile.am b/sugar/graphics/Makefile.am index 9828c8c..83b0920 100644 --- a/sugar/graphics/Makefile.am +++ b/sugar/graphics/Makefile.am @@ -4,7 +4,6 @@ sugar_PYTHON = \ bubble.py \ canvasicon.py \ colors.py \ - ClipboardBubble.py \ grid.py \ iconcolor.py \ menu.py \ diff --git a/sugar/graphics/menu.py b/sugar/graphics/menu.py index 9c031ba..5404cf5 100644 --- a/sugar/graphics/menu.py +++ b/sugar/graphics/menu.py @@ -49,7 +49,6 @@ class Menu(gtk.Window): self._root.append(content_box) self._action_box = None - self._action_box_separator = None def _create_separator(self): separator = hippo.CanvasBox() @@ -57,8 +56,8 @@ class Menu(gtk.Window): return separator def _create_action_box(self): - self._action_box_separator = self._create_separator() - self._root.append(self._action_box_separator) + separator = self._create_separator() + self._root.append(separator) self._action_box = hippo.CanvasBox( orientation=hippo.ORIENTATION_HORIZONTAL) @@ -72,8 +71,5 @@ class Menu(gtk.Window): icon.connect('activated', self._action_clicked_cb, action_id) self._action_box.append(icon) - def remove_action(self, icon): - self._action_box.remove(icon) - def _action_clicked_cb(self, icon, action): self.emit('action', action) -- cgit v0.9.1