Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--bin/Makefile.am1
-rw-r--r--bin/sugar-activity (renamed from src/sugar3/activity/main.py)55
-rw-r--r--configure.ac1
-rw-r--r--src/sugar3/activity/Makefile.am1
-rw-r--r--src/sugar3/activity/activity.py21
6 files changed, 45 insertions, 36 deletions
diff --git a/Makefile.am b/Makefile.am
index 6359a2b..86a095c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,4 +11,4 @@ EXTRA_DIST = \
intltool-update.in \
intltool-extract.in
-SUBDIRS = src po
+SUBDIRS = bin src po
diff --git a/bin/Makefile.am b/bin/Makefile.am
new file mode 100644
index 0000000..0d78267
--- /dev/null
+++ b/bin/Makefile.am
@@ -0,0 +1 @@
+dist_bin_SCRIPTS = sugar-activity
diff --git a/src/sugar3/activity/main.py b/bin/sugar-activity
index fa84f02..2b1b9b3 100644
--- a/src/sugar3/activity/main.py
+++ b/bin/sugar-activity
@@ -1,41 +1,40 @@
-# Copyright (C) 2008 Red Hat, Inc.
+#!/usr/bin/env python
+
+# Copyright (C) 2006-2008, 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 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 library is distributed in the hope that it will be useful,
+# 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
-# Lesser General Public License for more details.
+# 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 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.
+# 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 sys
import gettext
from optparse import OptionParser
-import gtk
import dbus
import dbus.service
import dbus.glib
import sugar
-from sugar3.activity import activityhandle
-from sugar3.activity import i18n
-from sugar3.bundle.activitybundle import ActivityBundle
-from sugar3.graphics import style
+from sugar.activity import activityhandle
+from sugar.bundle.activitybundle import ActivityBundle
from sugar import logger
def create_activity_instance(constructor, handle):
activity = constructor(handle)
activity.show()
+ return activity
def get_single_process_name(bundle_id):
@@ -61,7 +60,6 @@ class SingleProcess(dbus.service.Object):
handle = activityhandle.create_from_dict(handle_dict)
create_activity_instance(self.constructor, handle)
-
def main():
parser = OptionParser()
parser.add_option('-b', '--bundle-id', dest='bundle_id',
@@ -100,20 +98,6 @@ def main():
os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name()
os.environ['SUGAR_BUNDLE_VERSION'] = str(bundle.get_activity_version())
- gtk.icon_theme_get_default().append_search_path(bundle.get_icons_path())
-
- # This code can be removed when we grow an xsettings daemon (the GTK+
- # init routines will then automatically figure out the font settings)
- settings = gtk.settings_get_default()
- settings.set_property('gtk-font-name',
- '%s %f' % (style.FONT_FACE, style.FONT_SIZE))
-
- locale_path = i18n.get_locale_path(bundle.get_bundle_id())
-
- gettext.bindtextdomain(bundle.get_bundle_id(), locale_path)
- gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
- gettext.textdomain(bundle.get_bundle_id())
-
splitted_module = args[0].rsplit('.', 1)
module_name = splitted_module[0]
class_name = splitted_module[1]
@@ -155,6 +139,9 @@ def main():
if hasattr(module, 'start'):
module.start()
- create_activity_instance(activity_constructor, activity_handle)
+ instance = create_activity_instance(activity_constructor, activity_handle)
+
+ if hasattr(instance, 'run_main_loop'):
+ instance.run_main_loop()
- gtk.main()
+main()
diff --git a/configure.ac b/configure.ac
index 91db19a..fa38c66 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,6 +39,7 @@ GOBJECT_INTROSPECTION_CHECK([1.30.0])
AC_OUTPUT([
Makefile
+bin/Makefile
src/Makefile
src/sugar3/Makefile
src/sugar3/activity/Makefile
diff --git a/src/sugar3/activity/Makefile.am b/src/sugar3/activity/Makefile.am
index 50e12a5..40701d1 100644
--- a/src/sugar3/activity/Makefile.am
+++ b/src/sugar3/activity/Makefile.am
@@ -7,6 +7,5 @@ sugar_PYTHON = \
activityservice.py \
bundlebuilder.py \
i18n.py \
- main.py \
namingalert.py \
widgets.py
diff --git a/src/sugar3/activity/activity.py b/src/sugar3/activity/activity.py
index f92f261..d6b9590 100644
--- a/src/sugar3/activity/activity.py
+++ b/src/sugar3/activity/activity.py
@@ -71,8 +71,10 @@ from telepathy.interfaces import CHANNEL, \
from telepathy.constants import CONNECTION_HANDLE_TYPE_CONTACT
from telepathy.constants import CONNECTION_HANDLE_TYPE_ROOM
+import sugar3
from sugar3 import util
from sugar3.presence import presenceservice
+from sugar3.activity import i18n
from sugar3.activity.activityservice import ActivityService
from sugar3.activity.namingalert import NamingAlert
from sugar3.graphics import style
@@ -259,6 +261,22 @@ class Activity(Window, Gtk.Container):
the base class __init()__ before doing Activity specific things.
"""
+ # Stuff that needs to be done early
+
+ locale_path = i18n.get_locale_path(self.get_bundle_id())
+ gettext.bindtextdomain(self.get_bundle_id(), locale_path)
+ gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
+ gettext.textdomain(self.get_bundle_id())
+
+ icons_path = os.path.join(get_bundle_path(), 'icons')
+ Gtk.IconTheme.get_default().append_search_path(icons_path)
+
+ # This code can be removed when we grow an xsettings daemon (the GTK+
+ # init routines will then automatically figure out the font settings)
+ settings = Gtk.Settings.get_default()
+ settings.set_property('gtk-font-name',
+ '%s %f' % (style.FONT_FACE, style.FONT_SIZE))
+
Window.__init__(self)
if 'SUGAR_ACTIVITY_ROOT' in os.environ:
@@ -349,6 +367,9 @@ class Activity(Window, Gtk.Container):
self.__jobject_updated_cb)
self.set_title(self._jobject.metadata['title'])
+ def run_main_loop(self):
+ Gtk.main()
+
def _initialize_journal_object(self):
title = _('%s Activity') % get_bundle_name()
client = GConf.Client.get_default()