Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <erikos@localhost.localdomain>2008-10-11 16:19:59 (GMT)
committer Simon Schampijer <erikos@localhost.localdomain>2008-10-11 16:19:59 (GMT)
commit8361ca82ae89ce8b038a4faa8274b2b88cfe81a6 (patch)
treed89a24023f019235a88c104b10fa6a2291bd82c8
parent38cb73f56dd83c58252a27ace7b067109cefa311 (diff)
Use gconf for the profile
-rw-r--r--bin/sugar-session8
-rw-r--r--configure.ac14
-rw-r--r--extensions/cpsection/aboutme/__init__.py7
-rw-r--r--extensions/cpsection/aboutme/model.py35
-rw-r--r--extensions/cpsection/aboutme/view.py25
-rw-r--r--extensions/cpsection/datetime/model.py12
-rw-r--r--extensions/cpsection/frame/model.py31
-rw-r--r--extensions/cpsection/frame/view.py6
-rw-r--r--extensions/cpsection/network/model.py19
-rw-r--r--extensions/cpsection/power/model.py22
-rw-r--r--extensions/deviceicon/battery.py10
-rw-r--r--extensions/deviceicon/speaker.py11
-rw-r--r--extensions/deviceicon/wireless.py9
-rw-r--r--schemas/Makefile.am20
-rw-r--r--schemas/sugar.schemas.in159
-rw-r--r--src/jarabe/desktop/activitieslist.py13
-rw-r--r--src/jarabe/desktop/favoritesview.py24
-rw-r--r--src/jarabe/desktop/groupbox.py17
-rw-r--r--src/jarabe/desktop/homebox.py22
-rw-r--r--src/jarabe/desktop/meshbox.py6
-rw-r--r--src/jarabe/desktop/myicon.py8
-rw-r--r--src/jarabe/desktop/schoolserver.py13
-rw-r--r--src/jarabe/frame/activitiestray.py10
-rw-r--r--src/jarabe/frame/clipboardicon.py8
-rw-r--r--src/jarabe/frame/clipboardmenu.py14
-rw-r--r--src/jarabe/frame/eventarea.py33
-rw-r--r--src/jarabe/intro/__init__.py17
-rw-r--r--src/jarabe/intro/window.py9
-rw-r--r--src/jarabe/journal/journaltoolbox.py8
-rw-r--r--src/jarabe/journal/keepicon.py10
-rw-r--r--src/jarabe/journal/modalalert.py8
-rw-r--r--src/jarabe/journal/palettes.py7
-rw-r--r--src/jarabe/journal/volumesmanager.py12
-rw-r--r--src/jarabe/journal/volumestoolbar.py2
-rw-r--r--src/jarabe/model/owner.py5
-rw-r--r--src/jarabe/model/shell.py8
-rw-r--r--src/jarabe/model/sound.py12
-rw-r--r--src/jarabe/view/keyhandler.py10
-rw-r--r--src/jarabe/view/palettes.py9
39 files changed, 461 insertions, 212 deletions
diff --git a/bin/sugar-session b/bin/sugar-session
index ca1c02e..4f8dfa7 100644
--- a/bin/sugar-session
+++ b/bin/sugar-session
@@ -18,6 +18,7 @@
import sys
import os
import gettext
+import gconf
import gtk
import gobject
@@ -60,8 +61,11 @@ def main():
intro.check_profile()
- if get_profile().timezone is not None:
- os.environ['TZ'] = get_profile().timezone
+ client = gconf.client_get_default()
+ timezone = client.get_string('/desktop/sugar/date/timezone')
+
+ if timezone is not '':
+ os.environ['TZ'] = timezone
service.start_all()
diff --git a/configure.ac b/configure.ac
index ec6621c..181a085 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@ AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip])
AM_PATH_PYTHON
-PKG_CHECK_MODULES(SHELL, pygtk-2.0 gtk+-2.0)
+PKG_CHECK_MODULES(SHELL, pygtk-2.0 gtk+-2.0 gconf-2.0)
# Setup GETTEXT
#
@@ -29,6 +29,17 @@ AC_ARG_ENABLE(update-mimedb,
enable_update_mimedb=yes)
AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes)
+# Verify that gconftool is installed
+#
+AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
+
+if test "$GCONFTOOL" = no; then
+ AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
+fi
+
+AM_GCONF_SOURCE_2
+
+
AC_CONFIG_FILES([
bin/sugar
src/jarabe/config.py
@@ -49,6 +60,7 @@ extensions/cpsection/language/Makefile
extensions/cpsection/network/Makefile
extensions/cpsection/power/Makefile
extensions/deviceicon/Makefile
+schemas/Makefile
src/Makefile
src/jarabe/Makefile
src/jarabe/controlpanel/Makefile
diff --git a/extensions/cpsection/aboutme/__init__.py b/extensions/cpsection/aboutme/__init__.py
index b683e28..98843e1 100644
--- a/extensions/cpsection/aboutme/__init__.py
+++ b/extensions/cpsection/aboutme/__init__.py
@@ -15,11 +15,14 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from gettext import gettext as _
-from sugar import profile
+import gconf
+
+from sugar.graphics.xocolor import XoColor
CLASS = 'AboutMe'
ICON = 'module-about_me'
TITLE = _('About Me')
-COLOR = profile.get_color()
+client = gconf.client_get_default()
+COLOR = XoColor(client.get_string('/desktop/sugar/user/color'))
diff --git a/extensions/cpsection/aboutme/model.py b/extensions/cpsection/aboutme/model.py
index 3818792..8500799 100644
--- a/extensions/cpsection/aboutme/model.py
+++ b/extensions/cpsection/aboutme/model.py
@@ -16,9 +16,7 @@
#
from gettext import gettext as _
-
-from sugar import profile
-from sugar.graphics.xocolor import XoColor
+import gconf
_COLORS = {'red': {'dark':'#b20008', 'medium':'#e6000a', 'light':'#ffadce'},
'orange': {'dark':'#9a5200', 'medium':'#c97e00', 'light':'#ffc169'},
@@ -31,7 +29,8 @@ _COLORS = {'red': {'dark':'#b20008', 'medium':'#e6000a', 'light':'#ffadce'},
_MODIFIERS = ('dark', 'medium', 'light')
def get_nick():
- return profile.get_nick_name()
+ client = gconf.client_get_default()
+ return client.get_string("/desktop/sugar/user/nick")
def print_nick():
print get_nick()
@@ -42,18 +41,18 @@ def set_nick(nick):
"""
if not nick:
raise ValueError(_("You must enter a name."))
- pro = profile.get_profile()
if not isinstance(nick, unicode):
nick = unicode(nick, 'utf-8')
- pro.nick_name = nick
- pro.save()
+ client = gconf.client_get_default()
+ client.set_string("/desktop/sugar/user/nick", nick)
return 1
-def get_color():
- return profile.get_color()
+def get_color():
+ client = gconf.client_get_default()
+ return client.get_string("/desktop/sugar/user/color")
def print_color():
- color_string = get_color().to_string()
+ color_string = get_color()
tmp = color_string.split(',')
stroke_tuple = None
@@ -98,19 +97,19 @@ def set_color(stroke, fill, stroke_modifier='medium', fill_modifier='medium'):
color = _COLORS[stroke][stroke_modifier] + ',' \
+ _COLORS[fill][fill_modifier]
- pro = profile.get_profile()
- pro.color = XoColor(color)
- pro.save()
+
+ client = gconf.client_get_default()
+ client.set_string("/desktop/sugar/user/color", color)
return 1
-def get_color_xo():
- return profile.get_color()
+def get_color_xo():
+ client = gconf.client_get_default()
+ return client.get_string("/desktop/sugar/user/color")
def set_color_xo(color):
"""Set a color with an XoColor
This method is used by the graphical user interface
"""
- pro = profile.get_profile()
- pro.color = color
- pro.save()
+ client = gconf.client_get_default()
+ client.set_string("/desktop/sugar/user/color", color)
return 1
diff --git a/extensions/cpsection/aboutme/view.py b/extensions/cpsection/aboutme/view.py
index fc4f351..cabd66a 100644
--- a/extensions/cpsection/aboutme/view.py
+++ b/extensions/cpsection/aboutme/view.py
@@ -21,16 +21,10 @@ from gettext import gettext as _
from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
-from sugar import profile
from jarabe.controlpanel.sectionview import SectionView
from jarabe.controlpanel.inlinealert import InlineAlert
-CLASS = 'AboutMe'
-ICON = 'module-about_me'
-COLOR = profile.get_color()
-TITLE = _('About Me')
-
class EventIcon(gtk.EventBox):
__gtype_name__ = "SugarEventIcon"
def __init__(self, **kwargs):
@@ -49,7 +43,7 @@ class ColorPicker(EventIcon):
__gsignals__ = {
'color-changed': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
- ([object]))
+ ([str]))
}
def __init__(self, xocolor=None):
EventIcon.__init__(self)
@@ -64,7 +58,7 @@ class ColorPicker(EventIcon):
def _set_random_colors(self):
xocolor = XoColor()
self.icon.props.xo_color = xocolor
- self.emit('color-changed', xocolor)
+ self.emit('color-changed', xocolor.to_string())
class AboutMe(SectionView):
def __init__(self, model, alerts):
@@ -160,7 +154,8 @@ class AboutMe(SectionView):
def setup(self):
self._nick_entry.set_text(self._model.get_nick())
- self._color_picker.icon.props.xo_color = self._model.get_color_xo()
+ color = XoColor(self._model.get_color_xo())
+ self._color_picker.icon.props.xo_color = color
self._color_valid = True
self._nick_valid = True
@@ -198,13 +193,12 @@ class AboutMe(SectionView):
self._model.set_nick(widget.get_text())
except ValueError, detail:
self._nick_alert.props.msg = detail
- self._nick_valid = False
+ self._nick_valid = False
else:
self._nick_alert.props.msg = self.restart_msg
- self._nick_valid = True
+ self._nick_valid = True
self.needs_restart = True
self.restart_alerts.append('nick')
-
self._validate()
self._nick_alert.show()
return False
@@ -218,9 +212,4 @@ class AboutMe(SectionView):
self._validate()
self._color_alert.show()
-
-
-
-
-
-
+ return False
diff --git a/extensions/cpsection/datetime/model.py b/extensions/cpsection/datetime/model.py
index 4a4c560..76064e4 100644
--- a/extensions/cpsection/datetime/model.py
+++ b/extensions/cpsection/datetime/model.py
@@ -22,8 +22,7 @@
import os
from gettext import gettext as _
-
-from sugar import profile
+import gconf
_zone_tab = '/usr/share/zoneinfo/zone.tab'
@@ -69,8 +68,8 @@ def read_all_timezones(fn=_zone_tab):
return timezones
def get_timezone():
- pro = profile.get_profile()
- return pro.timezone
+ client = gconf.client_get_default()
+ return client.get_string('/desktop/sugar/date/timezone')
def print_timezone():
print get_timezone()
@@ -82,9 +81,8 @@ def set_timezone(timezone):
timezones = read_all_timezones()
if timezone in timezones:
os.environ['TZ'] = timezone
- pro = profile.get_profile()
- pro.timezone = timezone
- pro.save()
+ client = gconf.client_get_default()
+ client.set_string('/desktop/sugar/date/timezone', timezone)
else:
raise ValueError(_("Error timezone does not exist."))
return 1
diff --git a/extensions/cpsection/frame/model.py b/extensions/cpsection/frame/model.py
index 0e19703..9eea9ad 100644
--- a/extensions/cpsection/frame/model.py
+++ b/extensions/cpsection/frame/model.py
@@ -16,12 +16,12 @@
#
from gettext import gettext as _
-
-from sugar import profile
+import gconf
def get_corner_delay():
- pro = profile.get_profile()
- return pro.hot_corners_delay
+ client = gconf.client_get_default()
+ corner_delay = client.get_int('/desktop/sugar/frame/corner_delay')
+ return corner_delay
def print_corner_delay():
print get_corner_delay()
@@ -35,15 +35,15 @@ def set_corner_delay(delay):
try:
int(delay)
except ValueError:
- raise ValueError(_("Value must be an integer."))
- pro = profile.get_profile()
- pro.hot_corners_delay = int(delay)
- pro.save()
- return 1
+ raise ValueError(_("Value must be an integer."))
+ client = gconf.client_get_default()
+ client.set_int('/desktop/sugar/frame/corner_delay', int(delay))
+ return 0
def get_edge_delay():
- pro = profile.get_profile()
- return pro.warm_edges_delay
+ client = gconf.client_get_default()
+ edge_delay = client.get_int('/desktop/sugar/frame/edge_delay')
+ return edge_delay
def print_edge_delay():
print get_edge_delay()
@@ -57,8 +57,7 @@ def set_edge_delay(delay):
try:
int(delay)
except ValueError:
- raise ValueError(_("Value must be an integer."))
- pro = profile.get_profile()
- pro.warm_edges_delay = int(delay)
- pro.save()
- return 1
+ raise ValueError(_("Value must be an integer."))
+ client = gconf.client_get_default()
+ client.set_int('/desktop/sugar/frame/edge_delay', int(delay))
+ return 0
diff --git a/extensions/cpsection/frame/view.py b/extensions/cpsection/frame/view.py
index 7ab7bd2..cbe43bb 100644
--- a/extensions/cpsection/frame/view.py
+++ b/extensions/cpsection/frame/view.py
@@ -26,7 +26,7 @@ from jarabe.controlpanel.inlinealert import InlineAlert
_never = _('never')
_instantaneous = _('instantaneous')
_seconds_label = _('%s seconds')
-_MAX_DELAY = 1000.0
+_MAX_DELAY = 1000
class Frame(SectionView):
def __init__(self, model, alerts):
@@ -193,7 +193,7 @@ class Frame(SectionView):
def __corner_delay_format_cb(self, scale, value):
if value == _MAX_DELAY:
return _never
- elif value == 0.0:
+ elif value == 0:
return _instantaneous
else:
return _seconds_label % (value / _MAX_DELAY)
@@ -226,7 +226,7 @@ class Frame(SectionView):
def __edge_delay_format_cb(self, scale, value):
if value == _MAX_DELAY:
return _never
- elif value == 0.0:
+ elif value == 0:
return _instantaneous
else:
return _seconds_label % (value / _MAX_DELAY)
diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
index 101297c..90a448f 100644
--- a/extensions/cpsection/network/model.py
+++ b/extensions/cpsection/network/model.py
@@ -17,8 +17,7 @@
import dbus
from gettext import gettext as _
-
-from sugar import profile
+import gconf
from jarabe.model.network import get_manager
@@ -36,8 +35,8 @@ class ReadError(Exception):
return repr(self.value)
def get_jabber():
- pro = profile.get_profile()
- return pro.jabber_server
+ client = gconf.client_get_default()
+ return client.get_string('/desktop/sugar/collaboration/jabber_server')
def print_jabber():
print get_jabber()
@@ -46,10 +45,9 @@ def set_jabber(server):
"""Set the jabber server
server : e.g. 'olpc.collabora.co.uk'
"""
- pro = profile.get_profile()
- pro.jabber_server = server
- pro.jabber_registered = False
- pro.save()
+ client = gconf.client_get_default()
+ client.set_string('/desktop/sugar/collaboration/jabber_server', server)
+ client.set_bool('/desktop/sugar/collaboration/jabber_registered', False)
return 1
def get_radio():
@@ -87,9 +85,8 @@ def set_radio(state):
def clear_registration():
"""Clear the registration with the schoolserver
"""
- pro = profile.get_profile()
- pro.backup1 = None
- pro.save()
+ client = gconf.client_get_default()
+ client.set_string('/desktop/sugar/backup_url', '')
return 1
def clear_networks():
diff --git a/extensions/cpsection/power/model.py b/extensions/cpsection/power/model.py
index 47af483..c76035d 100644
--- a/extensions/cpsection/power/model.py
+++ b/extensions/cpsection/power/model.py
@@ -16,8 +16,8 @@
#
from gettext import gettext as _
+import gconf
-from sugar import profile
import dbus
OHM_SERVICE_NAME = 'org.freedesktop.ohm'
@@ -31,9 +31,8 @@ class ReadError(Exception):
return repr(self.value)
def get_automatic_pm():
- pro = profile.get_profile()
- ret = pro.automatic_pm
- return ret
+ client = gconf.client_get_default()
+ return client.get_bool('/desktop/sugar/power/automatic')
def print_automatic_pm():
print ('off', 'on')[get_automatic_pm()]
@@ -54,15 +53,13 @@ def set_automatic_pm(enabled):
else:
raise ValueError(_("Error in automatic pm argument, use on/off."))
- pro = profile.get_profile()
- pro.automatic_pm = enabled
- pro.save()
+ client = gconf.client_get_default()
+ client.set_bool('/desktop/sugar/power/automatic', enabled)
return 0
def get_extreme_pm():
- pro = profile.get_profile()
- ret = pro.extreme_pm
- return ret
+ client = gconf.client_get_default()
+ return client.get_bool('/desktop/sugar/power/extreme')
def print_extreme_pm():
print ('off', 'on')[get_extreme_pm()]
@@ -83,7 +80,6 @@ def set_extreme_pm(enabled):
else:
raise ValueError(_("Error in extreme pm argument, use on/off."))
- pro = profile.get_profile()
- pro.extreme_pm = enabled
- pro.save()
+ client = gconf.client_get_default()
+ client.set_bool('/desktop/sugar/power/extreme', enabled)
return 0
diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py
index 37691b4..c9d621e 100644
--- a/extensions/deviceicon/battery.py
+++ b/extensions/deviceicon/battery.py
@@ -16,12 +16,12 @@
import logging
from gettext import gettext as _
+import gconf
import gobject
import gtk
import dbus
-from sugar import profile
from sugar.graphics import style
from sugar.graphics.icon import get_icon_state
from sugar.graphics.tray import TrayIcon
@@ -45,8 +45,10 @@ class DeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 1000
def __init__(self, udi):
- TrayIcon.__init__(self, icon_name=_ICON_NAME,
- xo_color=profile.get_color())
+ client = gconf.client_get_default()
+ self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
+ TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color)
self._model = DeviceModel(udi)
self.palette = BatteryPalette(_('My Battery'))
@@ -65,7 +67,7 @@ class DeviceView(TrayIcon):
def _update_info(self):
name = _ICON_NAME
current_level = self._model.props.level
- xo_color = profile.get_color()
+ xo_color = self._color
badge_name = None
if self._model.props.charging:
diff --git a/extensions/deviceicon/speaker.py b/extensions/deviceicon/speaker.py
index b62ae65..5497873 100644
--- a/extensions/deviceicon/speaker.py
+++ b/extensions/deviceicon/speaker.py
@@ -15,11 +15,11 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from gettext import gettext as _
+import gconf
import gobject
import gtk
-from sugar import profile
from sugar.graphics import style
from sugar.graphics.icon import get_icon_state, Icon
from sugar.graphics.menuitem import MenuItem
@@ -37,9 +37,10 @@ class DeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 800
def __init__(self):
- TrayIcon.__init__(self,
- icon_name=_ICON_NAME,
- xo_color=profile.get_color())
+ client = gconf.client_get_default()
+ self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
+ TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color)
self._model = DeviceModel()
self.palette = SpeakerPalette(_('My Speakers'), model=self._model)
@@ -59,7 +60,7 @@ class DeviceView(TrayIcon):
def _update_info(self):
name = _ICON_NAME
current_level = self._model.props.level
- xo_color = profile.get_color()
+ xo_color = self._color
if self._model.props.muted:
name += '-muted'
diff --git a/extensions/deviceicon/wireless.py b/extensions/deviceicon/wireless.py
index 1544526..dcaffd3 100644
--- a/extensions/deviceicon/wireless.py
+++ b/extensions/deviceicon/wireless.py
@@ -17,15 +17,16 @@
import logging
from gettext import gettext as _
+import gconf
import gobject
import gtk
from sugar.graphics.icon import get_icon_state
+from sugar.graphics.xocolor import XoColor
from sugar.graphics.tray import TrayIcon
from sugar.graphics import style
from sugar.graphics.palette import Palette
-from sugar import profile
from jarabe.model import network
from jarabe.frame.frameinvoker import FrameWidgetInvoker
@@ -169,6 +170,10 @@ class MeshDeviceView(TrayIcon):
self.model.connect('notify::state', self._state_changed_cb)
self.model.connect('notify::activation-stage', self._state_changed_cb)
+
+ client = gconf.client_get_default()
+ self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
self._update_state()
def _state_changed_cb(self, model, pspec):
@@ -183,7 +188,7 @@ class MeshDeviceView(TrayIcon):
self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg()
self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg()
elif state == STATE_ACTIVATED:
- self.icon.props.xo_color = profile.get_color()
+ self.icon.props.xo_color = self._color
elif state == STATE_INACTIVE:
self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg()
self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg()
diff --git a/schemas/Makefile.am b/schemas/Makefile.am
new file mode 100644
index 0000000..0614031
--- /dev/null
+++ b/schemas/Makefile.am
@@ -0,0 +1,20 @@
+@INTLTOOL_SCHEMAS_RULE@
+
+schemadir = $(GCONF_SCHEMA_FILE_DIR)
+schema_in_files = sugar.schemas.in
+schema_DATA = $(schema_in_files:.schemas.in=.schemas)
+
+install-data-local: $(schema_DATA)
+if GCONF_SCHEMAS_INSTALL
+ if test -z "$(DESTDIR)" ; then \
+ for p in $^ ; do \
+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p 2>&1 > /dev/null; \
+ done \
+ fi
+endif
+
+EXTRA_DIST = \
+ $(schema_in_files)
+
+DISTCLEANFILES = \
+ $(schema_in_files:.schemas.in=.schemas)
diff --git a/schemas/sugar.schemas.in b/schemas/sugar.schemas.in
new file mode 100644
index 0000000..5cdff4d
--- /dev/null
+++ b/schemas/sugar.schemas.in
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<gconfschemafile>
+ <schemalist>
+ <schema>
+ <key>/schemas/desktop/sugar/user/nick</key>
+ <applyto>/desktop/sugar/user/nick</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default></default>
+ <locale name="C">
+ <short>User Name</short>
+ <long>User name that is used throughout the desktop.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/sugar/user/color</key>
+ <applyto>/desktop/sugar/user/color</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default></default>
+ <locale name="C">
+ <short>User Color</short>
+ <long>Color for the XO icon that is used throughout the
+ desktop. The string is composed of the stroke color and fill
+ color, format is that of rbg colors. Example: #AC32FF,#9A5200
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/sound/volume</key>
+ <applyto>/desktop/sugar/sound/volume</applyto>
+ <owner>sugar</owner>
+ <type>int</type>
+ <default>80</default>
+ <locale name="C">
+ <short>Volume Level</short>
+ <long>Volume level for the sound device.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/sugar/sound/mute</key>
+ <applyto>/desktop/sugar/sound/mute</applyto>
+ <owner>sugar</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Sound Muted</short>
+ <long>Setting for muting the sound device.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/backup_url</key>
+ <applyto>/desktop/sugar/backup_url</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default></default>
+ <locale name="C">
+ <short>Backup URL</short>
+ <long>Url where the backup is saved to.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/date/timezone</key>
+ <applyto>/desktop/sugar/date/timezone</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default>"UTC"</default>
+ <locale name="C">
+ <short>Timezone</short>
+ <long>Timezone setting for the system.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/desktop/favorites_layout</key>
+ <applyto>/desktop/sugar/desktop/favorites_layout</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default>"ring-layout"</default>
+ <locale name="C">
+ <short>Favorites Layout</short>
+ <long>Layout of the favorites view.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/frame/edge_delay</key>
+ <applyto>/desktop/sugar/frame/edge_delay</applyto>
+ <owner>sugar</owner>
+ <type>int</type>
+ <default>1000</default>
+ <locale name="C">
+ <short>Edge Delay</short>
+ <long>Delay for the activation of the frame using the edges.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/sugar/frame/corner_delay</key>
+ <applyto>/desktop/sugar/frame/corner_delay</applyto>
+ <owner>sugar</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Corner Delay</short>
+ <long>Delay for the activation of the frame using the corners.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/collaboration/jabber_server</key>
+ <applyto>/desktop/sugar/collaboration/jabber_server</applyto>
+ <owner>sugar</owner>
+ <type>string</type>
+ <default>""</default>
+ <locale name="C">
+ <short>Jabber Server</short>
+ <long>Url of the jabber server to use.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/sugar/collaboration/jabber_registered</key>
+ <applyto>/desktop/sugar/collaboration/jabber_registered</applyto>
+ <owner>sugar</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Jabber Registered</short>
+ <long>Flag to keep track of the registration status with the jabber server.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/sugar/power/automatic</key>
+ <applyto>/desktop/sugar/power/automatic</applyto>
+ <owner>sugar</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Power Automatic</short>
+ <long>Power Automatic.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/sugar/power/extreme</key>
+ <applyto>/desktop/sugar/power/extreme</applyto>
+ <owner>sugar</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Power Extreme</short>
+ <long>Power Extreme. </long>
+ </locale>
+ </schema>
+
+ </schemalist>
+</gconfschemafile>
diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py
index a7997cc..db88c47 100644
--- a/src/jarabe/desktop/activitieslist.py
+++ b/src/jarabe/desktop/activitieslist.py
@@ -17,11 +17,12 @@
import gobject
import gtk
import hippo
+import gconf
-from sugar import profile
from sugar import util
from sugar.graphics import style
from sugar.graphics.icon import CanvasIcon
+from sugar.graphics.xocolor import XoColor
from sugar.activity import activityfactory
from jarabe.model import bundleregistry
@@ -135,6 +136,9 @@ class ActivityIcon(CanvasIcon):
self.connect('hovering-changed', self.__hovering_changed_event_cb)
self.connect('button-release-event', self.__button_release_event_cb)
+ client = gconf.client_get_default()
+ self._xocolor = XoColor(client.get_string("/desktop/sugar/user/color"))
+
def create_palette(self):
palette = ActivityPalette(self._activity_info)
palette.connect('erase-activated', self.__erase_activated_cb)
@@ -144,7 +148,7 @@ class ActivityIcon(CanvasIcon):
self.emit('erase-activated', self._activity_info.get_bundle_id())
def _color(self):
- self.props.xo_color = profile.get_color()
+ self.props.xo_color = self._xocolor
def _uncolor(self):
self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
@@ -160,7 +164,6 @@ class ActivityIcon(CanvasIcon):
self.palette.popdown(immediate=True)
self._uncolor()
-
class ActivityEntry(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = 'SugarActivityEntry'
@@ -278,7 +281,9 @@ class FavoriteIcon(CanvasIcon):
self._favorite = favorite
if favorite:
- self.props.xo_color = profile.get_color()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ self.props.xo_color = color
else:
self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
self.props.fill_color = style.COLOR_WHITE.get_svg()
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index 87e0f92..4ffa7fe 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -17,6 +17,7 @@
import logging
from gettext import gettext as _
+import gconf
import gobject
import gtk
@@ -27,7 +28,7 @@ from sugar.graphics.palette import Palette
from sugar.graphics.icon import Icon, CanvasIcon
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.alert import Alert
-from sugar.profile import get_profile
+from sugar.graphics.xocolor import XoColor
from sugar.activity import activityfactory
from jarabe.view.palettes import JournalPalette
@@ -331,6 +332,9 @@ class ActivityIcon(CanvasIcon):
self.connect('hovering-changed', self.__hovering_changed_event_cb)
self.connect('button-release-event', self.__button_release_event_cb)
+ client = gconf.client_get_default()
+ self._xocolor = XoColor(client.get_string("/desktop/sugar/user/color"))
+
def create_palette(self):
palette = ActivityPalette(self._activity_info)
palette.connect('erase-activated', self.__erase_activated_cb)
@@ -340,7 +344,7 @@ class ActivityIcon(CanvasIcon):
self.emit('erase-activated', self._activity_info.get_bundle_id())
def _color(self):
- self.props.xo_color = get_profile().color
+ self.props.xo_color = self._xocolor
def _uncolor(self):
self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
@@ -413,16 +417,17 @@ class _MyIcon(MyIcon):
MyIcon.__init__(self, scale)
self._power_manager = None
- self._profile = get_profile()
self.register_menu = None
def enable_palette(self):
+ client = gconf.client_get_default()
+ nick = client.get_string("/desktop/sugar/user/nick")
+ color = XoColor(client.get_string("/desktop/sugar/user/color"))
+
palette_icon = Icon(icon_name='computer-xo',
icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
- xo_color=self._profile.color)
- palette = Palette(self._profile.nick_name,
- #secondary_text='Sample secondary label',
- icon=palette_icon)
+ xo_color=color)
+ palette = Palette(nick, icon=palette_icon)
item = MenuItem(_('Settings'), 'preferences-system')
item.connect('activate', self.__controlpanel_activate_cb)
@@ -439,11 +444,12 @@ class _MyIcon(MyIcon):
palette.menu.append(item)
item.show()
- if not self._profile.is_registered():
+ backup_url = client.get_string('/desktop/sugar/backup_url')
+ if not backup_url:
self.register_menu = MenuItem(_('Register'), 'media-record')
palette.menu.append(self.register_menu)
self.register_menu.show()
-
+
self.set_palette(palette)
def _reboot_activate_cb(self, menuitem):
diff --git a/src/jarabe/desktop/groupbox.py b/src/jarabe/desktop/groupbox.py
index 75173ff..5f4bdf2 100644
--- a/src/jarabe/desktop/groupbox.py
+++ b/src/jarabe/desktop/groupbox.py
@@ -17,11 +17,12 @@
import gobject
import gtk
import hippo
+import gconf
-from sugar import profile
from sugar.graphics import style
from sugar.graphics.icon import CanvasIcon, Icon
from sugar.graphics.palette import Palette
+from sugar.graphics.xocolor import XoColor
from jarabe.model import friends
from jarabe.desktop.friendview import FriendView
@@ -41,14 +42,19 @@ class GroupBox(hippo.Canvas):
self._layout = SpreadLayout()
self._box.set_layout(self._layout)
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string("/desktop/sugar/user/color"))
+
self._owner_icon = CanvasIcon(icon_name='computer-xo', cache=True,
- xo_color=profile.get_color())
+ xo_color=color)
self._owner_icon.props.size = style.LARGE_ICON_SIZE
palette_icon = Icon(icon_name='computer-xo',
- xo_color=profile.get_color())
+ xo_color=color)
palette_icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
- palette = Palette(None, primary_text=profile.get_nick_name(),
- icon=palette_icon)
+
+ nick = client.get_string("/desktop/sugar/user/nick")
+ palette = Palette(None, primary_text=nick, icon=palette_icon)
+
self._owner_icon.set_palette(palette)
self._layout.add(self._owner_icon)
@@ -86,4 +92,3 @@ class GroupBox(hippo.Canvas):
self._layout.move(self._owner_icon, x, y)
hippo.Canvas.do_size_allocate(self, allocation)
-
diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py
index 337555d..999fede 100644
--- a/src/jarabe/desktop/homebox.py
+++ b/src/jarabe/desktop/homebox.py
@@ -17,6 +17,7 @@
from gettext import gettext as _
import logging
import os
+import gconf
import gobject
import gtk
@@ -26,7 +27,6 @@ from sugar.graphics import iconentry
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.alert import Alert
from sugar.graphics.icon import Icon
-from sugar import profile
from jarabe.model import bundleregistry
from jarabe.desktop import favoritesview
@@ -34,6 +34,7 @@ from jarabe.desktop.activitieslist import ActivitiesList
_FAVORITES_VIEW = 0
_LIST_VIEW = 1
+_FAVORITES_KEY = "/desktop/sugar/desktop/favorites_layout"
_AUTOSEARCH_TIMEOUT = 1000
@@ -65,8 +66,9 @@ class HomeBox(gtk.VBox):
self.pack_start(self._toolbar, expand=False)
self._toolbar.show()
- profile_layout_constant = profile.get_profile().favorites_layout
- layout = _convert_layout_constant(profile_layout_constant)
+ client = gconf.client_get_default()
+ layout_constant = client.get_string(_FAVORITES_KEY)
+ layout = _convert_layout_constant(layout_constant)
self._set_view(_FAVORITES_VIEW, layout)
def __erase_activated_cb(self, view, bundle_id):
@@ -160,11 +162,12 @@ class HomeBox(gtk.VBox):
def __toolbar_view_changed_cb(self, toolbar, view, layout):
self._set_view(view, layout)
if layout is not None:
- current_profile = profile.get_profile()
+ client = gconf.client_get_default()
+ layout_profile = client.get_string(_FAVORITES_KEY)
+ layout = _convert_layout_constant(layout_profile)
profile_key = favoritesview.LAYOUT_MAP[layout].profile_key
- if profile_key != current_profile.favorites_layout:
- current_profile.favorites_layout = profile_key
- current_profile.save()
+ if profile_key != layout:
+ client.set_string(_FAVORITES_KEY, profile_key)
else:
logging.warning('Incorrect layout requested: %r' % layout)
@@ -325,8 +328,9 @@ class FavoritesButton(RadioToolButton):
self.props.accelerator = _('<Ctrl>1')
self.props.group = None
- profile_layout_constant = profile.get_profile().favorites_layout
- self._layout = _convert_layout_constant(profile_layout_constant)
+ client = gconf.client_get_default()
+ layout_constant = client.get_string(_FAVORITES_KEY)
+ self._layout = _convert_layout_constant(layout_constant)
self._update_icon()
# someday, this will be a gtk.Table()
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index 8f0587b..3170d35 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -16,6 +16,7 @@
from gettext import gettext as _
import logging
+import gconf
import hippo
import gobject
@@ -30,7 +31,6 @@ from sugar.graphics import iconentry
from sugar.graphics.menuitem import MenuItem
from sugar.activity.activityhandle import ActivityHandle
from sugar.activity import activityfactory
-from sugar import profile
from jarabe.model import accesspoint
from jarabe.model import neighborhood
@@ -258,7 +258,9 @@ class MeshDeviceView(CanvasPulsingIcon):
self.props.pulsing = False
self.props.base_color = XoColor('#D5D5D5,#D5D5D5')
else:
- self.props.base_color = profile.get_color()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ self.props.base_color = color
def set_filter(self, query):
self._greyed_out = (query != '')
diff --git a/src/jarabe/desktop/myicon.py b/src/jarabe/desktop/myicon.py
index af0f6ce..4a4ad95 100644
--- a/src/jarabe/desktop/myicon.py
+++ b/src/jarabe/desktop/myicon.py
@@ -14,11 +14,15 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+import gconf
+
from sugar.graphics.icon import CanvasIcon
-from sugar import profile
+from sugar.graphics.xocolor import XoColor
class MyIcon(CanvasIcon):
def __init__(self, size):
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string("/desktop/sugar/user/color"))
CanvasIcon.__init__(self, size=size,
icon_name='computer-xo',
- xo_color=profile.get_color())
+ xo_color=color)
diff --git a/src/jarabe/desktop/schoolserver.py b/src/jarabe/desktop/schoolserver.py
index a9ed60b..db58778 100644
--- a/src/jarabe/desktop/schoolserver.py
+++ b/src/jarabe/desktop/schoolserver.py
@@ -4,7 +4,7 @@ from xmlrpclib import ServerProxy, Error
import socket
import os
-from sugar.profile import get_profile
+from sugar import profile
REGISTER_URL = 'http://schoolserver:8080/'
@@ -21,11 +21,12 @@ def register_laptop(url=REGISTER_URL):
sn = sn or 'SHF00000000'
uuid = uuid or '00000000-0000-0000-0000-000000000000'
- profile = get_profile()
+ client = gconf.client_get_default()
+ nick = client.get_string('/desktop/sugar/user/nick')
server = ServerProxy(url)
try:
- data = server.register(sn, profile.nick_name, uuid, profile.pubkey)
+ data = server.register(sn, nick, uuid, profile.pubkey)
except (Error, socket.error), e:
logging.error('Registration: cannot connect to server: %s' % e)
raise RegisterError(_('Cannot connect to the server.'))
@@ -35,9 +36,9 @@ def register_laptop(url=REGISTER_URL):
data['error'])
raise RegisterError(_('The server could not complete the request.'))
- profile.jabber_server = data['jabberserver']
- profile.backup1 = data['backupurl']
- profile.save()
+ client.set_string('/desktop/sugar/collaboration/jabber_server',
+ data['jabberserver'])
+ client.set_string('/desktop/sugar/backup_url', data['backupurl'])
return True
diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
index 157d73e..dc37bf3 100644
--- a/src/jarabe/frame/activitiestray.py
+++ b/src/jarabe/frame/activitiestray.py
@@ -17,6 +17,8 @@
import logging
from gettext import gettext as _
+import gconf
+
import gtk
from sugar.graphics import style
@@ -29,7 +31,6 @@ from sugar.graphics.palette import Palette, WidgetInvoker
from sugar.graphics.menuitem import MenuItem
from sugar.activity.activityhandle import ActivityHandle
from sugar.activity import activityfactory
-from sugar import profile
from jarabe.model import shell
from jarabe.model import neighborhood
@@ -164,7 +165,10 @@ class PrivateInviteButton(BaseInviteButton):
self._private_channel = invite.get_private_channel()
self._bundle_id = invite.get_bundle_id()
- self._icon.props.xo_color = profile.get_color()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
+ self._icon.props.xo_color = color
registry = bundleregistry.get_registry()
self._bundle = registry.get_bundle(self._bundle_id)
@@ -180,7 +184,7 @@ class PrivateInviteButton(BaseInviteButton):
palette.set_group_id('frame')
self.set_palette(palette)
- self._notif_icon.props.xo_color = profile.get_color()
+ self._notif_icon.props.xo_color = color
if self._bundle:
self._notif_icon.props.icon_filename = self._bundle.get_icon()
diff --git a/src/jarabe/frame/clipboardicon.py b/src/jarabe/frame/clipboardicon.py
index 6c744ca..f67ec1f 100644
--- a/src/jarabe/frame/clipboardicon.py
+++ b/src/jarabe/frame/clipboardicon.py
@@ -16,12 +16,13 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import logging
+import gconf
+
import gtk
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.icon import Icon
from sugar.graphics.xocolor import XoColor
-from sugar import profile
from jarabe.frame import clipboard
from jarabe.frame.clipboardmenu import ClipboardMenu
@@ -42,7 +43,9 @@ class ClipboardIcon(RadioToolButton):
self._current_percent = None
self._icon = Icon()
- self._icon.props.xo_color = profile.get_color()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ self._icon.props.xo_color = color
self.set_icon_widget(self._icon)
self._icon.show()
@@ -139,4 +142,3 @@ class ClipboardIcon(RadioToolButton):
for format_type in self._cb_object.get_formats().keys():
targets.append((format_type, 0, 0))
return targets
-
diff --git a/src/jarabe/frame/clipboardmenu.py b/src/jarabe/frame/clipboardmenu.py
index a6b256a..266dc81 100644
--- a/src/jarabe/frame/clipboardmenu.py
+++ b/src/jarabe/frame/clipboardmenu.py
@@ -19,15 +19,16 @@ import tempfile
import urlparse
import os
import logging
+import gconf
import gtk
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
+from sugar.graphics.xocolor import XoColor
from sugar.datastore import datastore
from sugar import mime
-from sugar import profile
from jarabe.frame import clipboard
from jarabe.journal import misc
@@ -59,8 +60,10 @@ class ClipboardMenu(Palette):
self._open_item.show()
self._journal_item = MenuItem(_('Keep'))
- icon = Icon(icon_name='document-save', icon_size=gtk.ICON_SIZE_MENU,
- xo_color=profile.get_color())
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ icon = Icon(icon_name='document-save', icon_size=gtk.ICON_SIZE_MENU,
+ xo_color=color)
self._journal_item.set_image(icon)
self._journal_item.connect('activate', self._journal_item_activate_cb)
@@ -229,10 +232,11 @@ class ClipboardMenu(Palette):
jobject.metadata['keep'] = '0'
jobject.metadata['buddies'] = ''
jobject.metadata['preview'] = ''
- jobject.metadata['icon-color'] = profile.get_color().to_string()
+ client = gconf.client_get_default()
+ color = client.get_string('/desktop/sugar/user/color')
+ jobject.metadata['icon-color'] = color
jobject.metadata['mime_type'] = mime_type
jobject.file_path = file_path
datastore.write(jobject, transfer_ownership=transfer_ownership)
return jobject
-
diff --git a/src/jarabe/frame/eventarea.py b/src/jarabe/frame/eventarea.py
index 0eba150..5b31b24 100644
--- a/src/jarabe/frame/eventarea.py
+++ b/src/jarabe/frame/eventarea.py
@@ -17,8 +17,7 @@
import gtk
import gobject
import wnck
-
-from sugar import profile
+import gconf
_MAX_DELAY = 1000
@@ -36,43 +35,47 @@ class EventArea(gobject.GObject):
self._windows = []
self._hover = False
self._sids = {}
- pro = profile.get_profile()
- self._hot_delay = int(pro.hot_corners_delay)
- self._warm_delay = int(pro.warm_edges_delay)
+ client = gconf.client_get_default()
+ self._edge_delay = client.get_int('/desktop/sugar/frame/edge_delay')
+ self._corner_delay = client.get_int('/desktop/sugar/frame/corner_delay')
right = gtk.gdk.screen_width() - 1
bottom = gtk.gdk.screen_height() -1
width = gtk.gdk.screen_width() - 2
height = gtk.gdk.screen_height() - 2
- if self._warm_delay != _MAX_DELAY:
- invisible = self._create_invisible(1, 0, width, 1, self._warm_delay)
+ if self._edge_delay != _MAX_DELAY:
+ invisible = self._create_invisible(1, 0, width, 1,
+ self._edge_delay)
self._windows.append(invisible)
invisible = self._create_invisible(1, bottom, width, 1,
- self._warm_delay)
+ self._edge_delay)
self._windows.append(invisible)
invisible = self._create_invisible(0, 1, 1, height,
- self._warm_delay)
+ self._edge_delay)
self._windows.append(invisible)
invisible = self._create_invisible(right, 1, 1, height,
- self._warm_delay)
+ self._edge_delay)
self._windows.append(invisible)
- if self._hot_delay != _MAX_DELAY:
- invisible = self._create_invisible(0, 0, 1, 1, self._hot_delay)
+ if self._corner_delay != _MAX_DELAY:
+ invisible = self._create_invisible(0, 0, 1, 1,
+ self._corner_delay)
self._windows.append(invisible)
- invisible = self._create_invisible(right, 0, 1, 1, self._hot_delay)
+ invisible = self._create_invisible(right, 0, 1, 1,
+ self._corner_delay)
self._windows.append(invisible)
- invisible = self._create_invisible(0, bottom, 1, 1, self._hot_delay)
+ invisible = self._create_invisible(0, bottom, 1, 1,
+ self._corner_delay)
self._windows.append(invisible)
invisible = self._create_invisible(right, bottom, 1, 1,
- self._hot_delay)
+ self._corner_delay)
self._windows.append(invisible)
screen = wnck.screen_get_default()
diff --git a/src/jarabe/intro/__init__.py b/src/jarabe/intro/__init__.py
index 6f875d5..204f686 100644
--- a/src/jarabe/intro/__init__.py
+++ b/src/jarabe/intro/__init__.py
@@ -2,17 +2,20 @@ import os
import gtk
+from sugar import env
from sugar.profile import get_profile
from jarabe.intro.window import IntroWindow
from jarabe.intro.window import create_profile
def check_profile():
- if not get_profile().is_valid():
- if 'SUGAR_PROFILE_NAME' in os.environ:
- create_profile(os.environ['SUGAR_PROFILE_NAME'])
- else:
- win = IntroWindow()
- win.show_all()
- gtk.main()
+ profile = get_profile()
+ path = os.path.join(env.get_profile_path(), 'config')
+ if os.path.exists(path):
+ profile.convert_profile()
+
+ if not profile.is_valid():
+ win = IntroWindow()
+ win.show_all()
+ gtk.main()
diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py
index be1a963..3975900 100644
--- a/src/jarabe/intro/window.py
+++ b/src/jarabe/intro/window.py
@@ -17,6 +17,7 @@
import os
import logging
from gettext import gettext as _
+import gconf
import gtk
import gobject
@@ -27,7 +28,6 @@ from sugar.graphics import style
from sugar.graphics.icon import Icon
from sugar.graphics.entry import CanvasEntry
from sugar.graphics.xocolor import XoColor
-from sugar.profile import get_profile
from jarabe.intro import colorpicker
@@ -44,10 +44,9 @@ def create_profile(name, color=None, pixbuf=None):
icon_path = os.path.join(env.get_profile_path(), "buddy-icon.jpg")
pixbuf.save(icon_path, "jpeg", {"quality":"85"})
- profile = get_profile()
- profile.nick_name = name
- profile.color = color
- profile.save()
+ client = gconf.client_get_default()
+ client.set_string("/desktop/sugar/user/nick", name)
+ client.set_string("/desktop/sugar/user/color", color.to_string())
# Generate keypair
import commands
diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py
index 383cec0..7e2709f 100644
--- a/src/jarabe/journal/journaltoolbox.py
+++ b/src/jarabe/journal/journaltoolbox.py
@@ -18,6 +18,7 @@ from gettext import gettext as _
import logging
from datetime import datetime, timedelta
import os
+import gconf
import gobject
import gtk
@@ -28,9 +29,9 @@ from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.combobox import ComboBox
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
+from sugar.graphics.xocolor import XoColor
from sugar.graphics import iconentry
from sugar.graphics import style
-from sugar import profile
from sugar import mime
from sugar.datastore import datastore
@@ -318,7 +319,9 @@ class EntryToolbar(gtk.Toolbar):
self._copy = ToolButton()
- icon = Icon(icon_name='edit-copy', xo_color=profile.get_color())
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ icon = Icon(icon_name='edit-copy', xo_color=color)
self._copy.set_icon_widget(icon)
icon.show()
@@ -417,4 +420,3 @@ class EntryToolbar(gtk.Toolbar):
activity_info.get_bundle_id())
palette.menu.append(menu_item)
menu_item.show()
-
diff --git a/src/jarabe/journal/keepicon.py b/src/jarabe/journal/keepicon.py
index 8a86c83..c6dc470 100644
--- a/src/jarabe/journal/keepicon.py
+++ b/src/jarabe/journal/keepicon.py
@@ -16,10 +16,11 @@
import gobject
import hippo
+import gconf
from sugar.graphics.icon import CanvasIcon
from sugar.graphics import style
-from sugar import profile
+from sugar.graphics.xocolor import XoColor
class KeepIcon(CanvasIcon):
def __init__(self, keep):
@@ -27,7 +28,7 @@ class KeepIcon(CanvasIcon):
box_width=style.GRID_CELL_SIZE * 3 / 5,
size=style.SMALL_ICON_SIZE)
self.connect('motion-notify-event', self.__motion_notify_event_cb)
-
+
self._keep = None
self.set_keep(keep)
@@ -37,7 +38,9 @@ class KeepIcon(CanvasIcon):
self._keep = keep
if keep:
- self.props.xo_color = profile.get_color()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ self.props.xo_color = color
else:
self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
@@ -54,4 +57,3 @@ class KeepIcon(CanvasIcon):
icon.props.fill_color = style.COLOR_BUTTON_GREY.get_svg()
elif event.detail == hippo.MOTION_DETAIL_LEAVE:
icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
-
diff --git a/src/jarabe/journal/modalalert.py b/src/jarabe/journal/modalalert.py
index 6c7bce9..a5a86ab 100644
--- a/src/jarabe/journal/modalalert.py
+++ b/src/jarabe/journal/modalalert.py
@@ -16,10 +16,11 @@
import gtk
from gettext import gettext as _
+import gconf
from sugar.graphics.icon import Icon
from sugar.graphics import style
-from sugar import profile
+from sugar.graphics.xocolor import XoColor
class ModalAlert(gtk.Window):
@@ -47,9 +48,12 @@ class ModalAlert(gtk.Window):
self._main_view.add(self._vbox)
self._vbox.show()
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
icon = Icon(icon_name='activity-journal',
pixel_size=style.XLARGE_ICON_SIZE,
- xo_color=profile.get_color())
+ xo_color=color)
self._vbox.pack_start(icon, False)
icon.show()
diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py
index 501e4fb..9ca1190 100644
--- a/src/jarabe/journal/palettes.py
+++ b/src/jarabe/journal/palettes.py
@@ -16,10 +16,10 @@
from gettext import gettext as _
import logging
+import gconf
import gtk
-from sugar import profile
from sugar.graphics import style
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
@@ -65,8 +65,10 @@ class ObjectPalette(Palette):
# TODO: Add "Start with" menu item
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
menu_item = MenuItem(_('Copy'))
- icon = Icon(icon_name='edit-copy', xo_color=profile.get_color(),
+ icon = Icon(icon_name='edit-copy', xo_color=color,
icon_size=gtk.ICON_SIZE_MENU)
menu_item.set_image(icon)
menu_item.connect('activate', self.__copy_activate_cb)
@@ -102,7 +104,6 @@ class ObjectPalette(Palette):
registry.uninstall(bundle)
datastore.delete(self._jobject.object_id)
-
class BuddyPalette(Palette):
def __init__(self, buddy):
self._buddy = buddy
diff --git a/src/jarabe/journal/volumesmanager.py b/src/jarabe/journal/volumesmanager.py
index b2ef08d..b7e1e37 100644
--- a/src/jarabe/journal/volumesmanager.py
+++ b/src/jarabe/journal/volumesmanager.py
@@ -16,11 +16,12 @@
import logging
from gettext import gettext as _
+import gconf
import gobject
import dbus
-from sugar import profile
+from sugar.graphics.xocolor import XoColor
from sugar.datastore import datastore
HAL_SERVICE_NAME = 'org.freedesktop.Hal'
@@ -52,10 +53,13 @@ class VolumesManager(gobject.GObject):
self._volumes = []
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+
# Internal flash is not in HAL
internal_fash_id = datastore.mounts()[0]['id']
self._volumes.append(Volume(internal_fash_id, _('Journal'),
- 'activity-journal', profile.get_color(),
+ 'activity-journal', color,
None, False))
bus = dbus.SystemBus()
@@ -227,10 +231,12 @@ class VolumesManager(gobject.GObject):
volume_name = device.GetProperty('volume.label')
if not volume_name:
volume_name = device.GetProperty('volume.uuid')
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
volume = Volume(mount_id,
volume_name,
self._get_icon_for_volume(udi),
- profile.get_color(),
+ color,
udi,
True)
self._volumes.append(volume)
diff --git a/src/jarabe/journal/volumestoolbar.py b/src/jarabe/journal/volumestoolbar.py
index f4f21db..4e5f5db 100644
--- a/src/jarabe/journal/volumestoolbar.py
+++ b/src/jarabe/journal/volumestoolbar.py
@@ -23,6 +23,7 @@ import gtk
from sugar.datastore import datastore
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.palette import Palette
+from sugar.graphics.xocolor import XoColor
from jarabe.journal import volumesmanager
@@ -134,4 +135,3 @@ class VolumeButton(RadioToolButton):
info, timestamp):
jobject = datastore.get(selection_data.data)
datastore.copy(jobject, self.volume.id)
-
diff --git a/src/jarabe/model/owner.py b/src/jarabe/model/owner.py
index 73beba8..bdfd9a8 100644
--- a/src/jarabe/model/owner.py
+++ b/src/jarabe/model/owner.py
@@ -18,11 +18,11 @@
import gobject
import os
import cjson
+import gconf
from telepathy.interfaces import CHANNEL_TYPE_TEXT
from sugar import env
-from sugar import profile
from sugar.presence import presenceservice
from sugar import util
from jarabe.model.invites import Invites
@@ -46,7 +46,8 @@ class Owner(gobject.GObject):
def __init__(self):
gobject.GObject.__init__(self)
- self._nick = profile.get_nick_name()
+ client = gconf.client_get_default()
+ self._nick = client.get_string("/desktop/sugar/user/nick")
self._icon = None
self._icon_hash = ""
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index 334cff8..5c7c8e0 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -19,6 +19,7 @@ import logging
import time
import os
+import gconf
import wnck
import gobject
import gtk
@@ -27,7 +28,6 @@ import dbus
from sugar import wm
from sugar.graphics.xocolor import XoColor
from sugar.presence import presenceservice
-from sugar import profile
from jarabe.model.bundleregistry import get_registry
from jarabe import config
@@ -135,8 +135,7 @@ class Activity(gobject.GObject):
Uses activity_id to index into the PresenceService's
set of activity colours, if the PresenceService does not
have an entry (implying that this is not a Sugar-shared application)
- uses the local user's profile.get_color() to determine the
- colour for the icon.
+ uses the local user's profile colour for the icon.
"""
pservice = presenceservice.get_instance()
@@ -151,7 +150,8 @@ class Activity(gobject.GObject):
if activity != None:
return XoColor(activity.props.color)
else:
- return profile.get_color()
+ client = gconf.client_get_default()
+ return XoColor(client.get_string("/desktop/sugar/user/color"))
def get_activity_id(self):
"""Retrieve the "activity_id" passed in to our constructor
diff --git a/src/jarabe/model/sound.py b/src/jarabe/model/sound.py
index c6cb75f..65090a4 100644
--- a/src/jarabe/model/sound.py
+++ b/src/jarabe/model/sound.py
@@ -14,7 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-from sugar.profile import get_profile
+import gconf
+
from sugar import env
from sugar import _sugarext
from sugar import dispatch
@@ -46,13 +47,12 @@ def set_muted(new_state):
def save():
if env.is_emulator() is False:
- profile = get_profile()
- profile.sound_volume = get_volume()
- profile.save()
+ client = gconf.client_get_default()
+ client.set_int('/desktop/sugar/sound/volume', get_volume())
def restore():
if env.is_emulator() is False:
- profile = get_profile()
- set_volume(profile.sound_volume)
+ client = gconf.client_get_default()
+ set_volume(client.get_int('/desktop/sugar/sound/volume'))
_volume = _sugarext.VolumeAlsa()
diff --git a/src/jarabe/view/keyhandler.py b/src/jarabe/view/keyhandler.py
index 1c33f44..1e9a890 100644
--- a/src/jarabe/view/keyhandler.py
+++ b/src/jarabe/view/keyhandler.py
@@ -22,13 +22,13 @@ import errno
import tempfile
import time
from gettext import gettext as _
+import gconf
import dbus
import gtk
import wnck
from sugar._sugarext import KeyGrabber
-from sugar import profile
from sugar.datastore import datastore
from jarabe.model import screen
@@ -211,13 +211,17 @@ class KeyHandler(object):
screenshot.get_from_drawable(window, window.get_colormap(), x_orig,
y_orig, 0, 0, width, height)
screenshot.save(file_path, "png")
+
+ client = gconf.client_get_default()
+ color = client.get_string('/desktop/sugar/user/color')
+
jobject = datastore.create()
try:
jobject.metadata['title'] = _('Screenshot')
jobject.metadata['keep'] = '0'
jobject.metadata['buddies'] = ''
- jobject.metadata['preview'] = ''
- jobject.metadata['icon-color'] = profile.get_color().to_string()
+ jobject.metadata['preview'] = ''
+ jobject.metadata['icon-color'] = color
jobject.metadata['mime_type'] = 'image/png'
jobject.file_path = file_path
datastore.write(jobject, transfer_ownership=True)
diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py
index 72326c4..fc383c8 100644
--- a/src/jarabe/view/palettes.py
+++ b/src/jarabe/view/palettes.py
@@ -17,12 +17,12 @@
import os
import statvfs
from gettext import gettext as _
+import gconf
import gobject
import gtk
from sugar import env
-from sugar import profile
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
@@ -90,8 +90,10 @@ class ActivityPalette(Palette):
}
def __init__(self, activity_info):
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string("/desktop/sugar/user/color"))
activity_icon = Icon(file=activity_info.get_icon(),
- xo_color=profile.get_color(),
+ xo_color=color,
icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
Palette.__init__(self, primary_text=activity_info.get_name(),
@@ -144,7 +146,8 @@ class ActivityPalette(Palette):
style.COLOR_TRANSPARENT.get_svg()))
else:
label.set_text(_('Make favorite'))
- xo_color = profile.get_color()
+ client = gconf.client_get_default()
+ xo_color = XoColor(client.get_string("/desktop/sugar/user/color"))
self._favorite_icon.props.xo_color = xo_color