Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2010-03-09 22:41:39 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2010-03-09 22:41:39 (GMT)
commitbf0574da46f8f480711772c10c26845ea1f97b6c (patch)
treeef08c9be4cf611091c6e1031398fb935cff7adf8
parentda1be6e637b636f16e476a00b07e64164609c1a9 (diff)
Do not use not valid symbols for preferable activities gconf keys #1811
-rw-r--r--src/jarabe/model/mimeregistry.py12
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)