Ticket #1493: sugar-1493.patch
File sugar-1493.patch, 4.3 KB (added by alsroot, 14 years ago) |
---|
-
src/jarabe/journal/palettes.py
From b22daa48b480a929344a0a9cd825d98e9f2ead94 Mon Sep 17 00:00:00 2001 From: Aleksey Lim <alsroot@member.fsf.org> Date: Sun, 27 Sep 2009 00:49:14 +0000 Subject: Keep preferable activities #1493 --- src/jarabe/journal/palettes.py | 5 ++++ src/jarabe/model/bundleregistry.py | 15 ++++++++++++- src/jarabe/model/mimeregistry.py | 41 ++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletions(-) create mode 100644 src/jarabe/model/mimeregistry.py diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index e0dfbf4..01017fc 100644
a b from sugar import mime 31 31 from jarabe.model import bundleregistry 32 32 from jarabe.model import friends 33 33 from jarabe.model import filetransfer 34 from jarabe.model import mimeregistry 34 35 from jarabe.journal import misc 35 36 from jarabe.journal import model 36 37 … … class StartWithMenu(gtk.Menu): 217 218 menu_item.show() 218 219 219 220 def __item_activate_cb(self, menu_item, service_name): 221 mime_type = self._metadata.get('mime_type', '') 222 if mime_type: 223 mime = mimeregistry.get_registry() 224 mime.set_default_activity(mime_type, service_name) 220 225 misc.resume(self._metadata, service_name) 221 226 222 227 -
src/jarabe/model/bundleregistry.py
diff --git a/src/jarabe/model/bundleregistry.py b/src/jarabe/model/bundleregistry.py index b754952..844caa8 100644
a b from sugar.bundle.bundle import MalformedBundleException, \ 31 31 from sugar import env 32 32 33 33 from jarabe import config 34 from jarabe.model import mimeregistry 34 35 35 36 class BundleRegistry(gobject.GObject): 36 37 """Tracks the available activity bundles""" … … class BundleRegistry(gobject.GObject): 244 245 245 246 def get_activities_for_type(self, mime_type): 246 247 result = [] 248 249 mime = mimeregistry.get_registry() 250 default_bundle_id = mime.get_default_activity(mime_type) 251 default_bundle = None 252 247 253 for bundle in self._bundles: 248 254 if bundle.get_mime_types() and mime_type in bundle.get_mime_types(): 249 if self.get_default_for_type(mime_type) == \ 255 256 if bundle.get_bundle_id() == default_bundle_id: 257 default_bundle = bundle 258 elif self.get_default_for_type(mime_type) == \ 250 259 bundle.get_bundle_id(): 251 260 result.insert(0, bundle) 252 261 else: 253 262 result.append(bundle) 263 264 if default_bundle is not None: 265 result.insert(0, default_bundle) 266 254 267 return result 255 268 256 269 def get_default_for_type(self, mime_type): -
new file src/jarabe/model/mimeregistry.py
diff --git a/src/jarabe/model/mimeregistry.py b/src/jarabe/model/mimeregistry.py new file mode 100644 index 0000000..53480b2
- + 1 # Copyright (C) 2009 Aleksey Lim 2 # 3 # This program is free software; you can redistribute it and/or modify 4 # it under the terms of the GNU General Public License as published by 5 # the Free Software Foundation; either version 2 of the License, or 6 # (at your option) any later version. 7 # 8 # This program is distributed in the hope that it will be useful, 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # GNU General Public License for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with this program; if not, write to the Free Software 15 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 16 17 import gconf 18 19 20 _DEFAULTS_KEY = '/desktop/sugar/journal/defaults' 21 _instance = None 22 23 24 class MimeRegistry(object): 25 26 def __init__(self): 27 # TODO move here all mime_type related code from jarabe modules 28 self._gconf = gconf.client_get_default() 29 30 def get_default_activity(self, mime_type): 31 return self._gconf.get_string(_DEFAULTS_KEY + '/' + mime_type) 32 33 def set_default_activity(self, mime_type, bundle_id): 34 self._gconf.set_string(_DEFAULTS_KEY + '/' + mime_type, bundle_id) 35 36 37 def get_registry(): 38 global _instance 39 if _instance is None: 40 _instance = MimeRegistry() 41 return _instance