diff options
-rw-r--r-- | src/jarabe/model/mimeregistry.py | 12 |
1 files changed, 10 insertions, 2 deletions
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) |