From bf0574da46f8f480711772c10c26845ea1f97b6c Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Tue, 09 Mar 2010 22:41:39 +0000 Subject: Do not use not valid symbols for preferable activities gconf keys #1811 --- diff --git a/src/jarabe/model/mimeregistry.py b/src/jarabe/model/mimeregistry.py index 53480b2..537f6f3 100644 --- a/src/jarabe/model/mimeregistry.py +++ b/src/jarabe/model/mimeregistry.py @@ -14,10 +14,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import re + import gconf _DEFAULTS_KEY = '/desktop/sugar/journal/defaults' +_GCONF_INVALID_CHARS = re.compile('[^a-zA-Z0-9-_/.]') _instance = None @@ -28,10 +31,10 @@ class MimeRegistry(object): self._gconf = gconf.client_get_default() def get_default_activity(self, mime_type): - return self._gconf.get_string(_DEFAULTS_KEY + '/' + mime_type) + return self._gconf.get_string(_key_name(mime_type)) def set_default_activity(self, mime_type, bundle_id): - self._gconf.set_string(_DEFAULTS_KEY + '/' + mime_type, bundle_id) + self._gconf.set_string(_key_name(mime_type), bundle_id) def get_registry(): @@ -39,3 +42,8 @@ def get_registry(): if _instance is None: _instance = MimeRegistry() return _instance + + +def _key_name(mime_type): + mime_type = _GCONF_INVALID_CHARS.sub('_', mime_type) + return '%s/%s' % (_DEFAULTS_KEY, mime_type) -- cgit v0.9.1