From 871591927d4ddc210b7ba497f2e9a78b610c0a9b Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Tue, 9 Mar 2010 21:43:27 +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
|
b
|
|
14 | 14 | # along with this program; if not, write to the Free Software |
15 | 15 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
16 | 16 | |
| 17 | import re |
| 18 | |
17 | 19 | import gconf |
18 | 20 | |
19 | 21 | |
20 | 22 | _DEFAULTS_KEY = '/desktop/sugar/journal/defaults' |
| 23 | _GCONF_INVALID_CHARS = re.compile('[^a-zA-Z0-9-_/.]') |
21 | 24 | _instance = None |
22 | 25 | |
23 | 26 | |
… |
… |
class MimeRegistry(object): |
28 | 31 | self._gconf = gconf.client_get_default() |
29 | 32 | |
30 | 33 | def get_default_activity(self, mime_type): |
31 | | return self._gconf.get_string(_DEFAULTS_KEY + '/' + mime_type) |
| 34 | return self._gconf.get_string(_key_name(mime_type)) |
32 | 35 | |
33 | 36 | def set_default_activity(self, mime_type, bundle_id): |
34 | | self._gconf.set_string(_DEFAULTS_KEY + '/' + mime_type, bundle_id) |
| 37 | self._gconf.set_string(_key_name(mime_type), bundle_id) |
35 | 38 | |
36 | 39 | |
37 | 40 | def get_registry(): |
… |
… |
def get_registry(): |
39 | 42 | if _instance is None: |
40 | 43 | _instance = MimeRegistry() |
41 | 44 | return _instance |
| 45 | |
| 46 | |
| 47 | def _key_name(mime_type): |
| 48 | mime_type = _GCONF_INVALID_CHARS.sub('_', mime_type) |
| 49 | return '%s/%s' % (_DEFAULTS_KEY, mime_type) |