Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/plugin/__init__.py
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-07-24 20:16:43 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-07-24 20:16:43 (GMT)
commit3f9d5bb5ab150ed1d9c7d4a2f8ddf55aef07e645 (patch)
tree7a3302aa9b3f966ae6bfd5554c2b6046ada3b570 /plugin/__init__.py
parentc869ea9e4b0f0d2a35174e727b563bfc9160b81b (diff)
Move CP section to sweets-desktop; add binding file to start DBus services
Diffstat (limited to 'plugin/__init__.py')
-rw-r--r--plugin/__init__.py73
1 files changed, 47 insertions, 26 deletions
diff --git a/plugin/__init__.py b/plugin/__init__.py
index 61ede76..83d1a69 100644
--- a/plugin/__init__.py
+++ b/plugin/__init__.py
@@ -18,26 +18,22 @@ import logging
import subprocess
from gettext import gettext as _
+import gtk
import dbus
import gobject
from sugar.graphics.alert import NotifyAlert, ErrorAlert
from sugar_network import sugar, api_url, server_mode
from active_toolkit.options import Option
+from jarabe import plugins
ORDER = 5
+TITLE = _('Sugar Network integration')
SN_BROWSER_NAME = 'sugar-network-browser'
-
SN_MASER_URL = 'http://api-testing.network.sugarlabs.org'
-sugar_network = Option(
- 'enable Sugar Network support in Sugar Shell',
- default=False, type_cast=Option.bool_cast,
- action='store_true', name='sugar-network')
-
-
_ALERT_SEVERITIES = {
# severity: (alert_class, alert_message)
'error': (ErrorAlert, _('Sugar Network error')),
@@ -50,21 +46,20 @@ _launcher = None
_client = None
_browser = None
-Option.seek('sweets', [sugar_network])
Option.seek('local', [api_url, server_mode])
def init():
global _bundleregistry
- if not sugar_network.value:
- return
-
if api_url.value and api_url.value != SN_MASER_URL:
# For now, keep only global SN server to make testing more relibale
api_url.value = SN_MASER_URL
Option.save()
+ # Activities are assumed to be handled by SN
+ plugins.blacklist('cpsection', 'updater')
+
import jarabe.model.bundleregistry
from .bundleregistry import BundleRegistry
@@ -76,15 +71,12 @@ def init():
from .browser import Palette
Activity.get_bundle_path = _get_bundle_path
- palettes.predefined[SN_BROWSER_NAME] = Palette
+ #palettes.predefined[SN_BROWSER_NAME] = Palette
-def enable():
+def start():
global _launcher
- if not sugar_network.value:
- return
-
_bundleregistry.populate()
from jarabe.journal import misc
@@ -108,8 +100,44 @@ def enable():
shell.connect('activity-added', activity_added_cb)
-def disable():
- pass
+def control_panel_section():
+ section = gtk.VBox()
+
+ server_box = gtk.VBox()
+ section.pack_start(server_box)
+ master_button = gtk.RadioButton()
+ master_button.props.label = _('Connect to master server')
+ server_box.pack_start(master_button, expand=False)
+ discover_button = gtk.RadioButton(master_button)
+ discover_button.props.label = _('Auto discover server in local network')
+ server_box.pack_start(discover_button, expand=False)
+
+ if api_url.value:
+ master_button.props.active = True
+ else:
+ discover_button.props.active = True
+
+ server_mode_button = gtk.CheckButton()
+ server_mode_button.props.label = _('Behave as a Sugar Network server ' \
+ 'providing data from mounted device')
+ server_mode_button.props.active = server_mode.value
+ section.pack_start(server_mode_button, expand=False)
+
+ def master_toggled_cb(button, url):
+ api_url.value = url
+ Option.save()
+
+ master_button.connect('toggled', master_toggled_cb, SN_MASER_URL)
+ discover_button.connect('toggled', master_toggled_cb, '')
+
+ def server_mode_toggled_cb(button):
+ server_mode.value = button.props.active
+ Option.save()
+
+ server_mode_button.connect('toggled', server_mode_toggled_cb)
+
+ section.show_all()
+ return section
def get_registry():
@@ -128,9 +156,6 @@ def get_client():
def get_browser():
global _browser
- if not sugar_network.value:
- return
-
if _browser is None:
from .browser import Browser
_browser = Browser()
@@ -139,11 +164,7 @@ def get_browser():
def add_alert(severity, callback=None, **kwargs):
- if sugar_network.value:
- window = get_browser()
- else:
- from jarabe.journal.journalactivity import get_journal
- window = get_journal()
+ window = get_browser()
def response_cb(alert, response_id):
window.remove_alert(alert)