Ticket #701: sugar-701.patch

File sugar-701.patch, 3.3 KB (added by alsroot, 15 years ago)

Final patch for 0.86

  • src/jarabe/desktop/activitieslist.py

    From 5b6061946af68b03e00de0fd6617c5c8ceb56715 Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@member.fsf.org>
    Date: Fri, 28 Aug 2009 11:37:35 +0000
    Subject: Let user upgrade system activity from .xo #701
    
    ---
     src/jarabe/desktop/activitieslist.py |    9 +++++----
     src/jarabe/model/bundleregistry.py   |   22 ++++++++++++++++------
     2 files changed, 21 insertions(+), 10 deletions(-)
    
    diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py
    index 8b35560..66e2870 100644
    a b class ActivityListPalette(ActivityPalette): 
    403403        self.menu.append(self._favorite_item)
    404404        self._favorite_item.show()
    405405
    406         menu_item = MenuItem(_('Erase'), 'list-remove')
    407         menu_item.connect('activate', self.__erase_activate_cb)
    408         self.menu.append(menu_item)
    409         menu_item.show()
     406        if activity_info.is_user_activity():
     407            menu_item = MenuItem(_('Erase'), 'list-remove')
     408            menu_item.connect('activate', self.__erase_activate_cb)
     409            self.menu.append(menu_item)
     410            menu_item.show()
    410411
    411412        if not os.access(activity_info.get_path(), os.W_OK):
    412413            menu_item.props.sensitive = False
  • src/jarabe/model/bundleregistry.py

    diff --git a/src/jarabe/model/bundleregistry.py b/src/jarabe/model/bundleregistry.py
    index 1d23f0c..b754952 100644
    a b class BundleRegistry(gobject.GObject): 
    219219            logging.exception('Error loading bundle %r', bundle_path)
    220220            return None
    221221
    222         if self.get_bundle(bundle.get_bundle_id()):
    223             return None
     222        bundle_id = bundle.get_bundle_id()
     223        installed = self.get_bundle(bundle_id)
     224
     225        if installed is not None:
     226            if installed.get_activity_version() >= \
     227                    bundle.get_activity_version():
     228                logging.debug('Skip old version for %s', bundle_id)
     229                return None
     230            else:
     231                logging.debug('Upgrade %s', bundle_id)
     232                self.remove_bundle(installed.get_path())
    224233
    225234        self._bundles.append(bundle)
    226235        return bundle
    class BundleRegistry(gobject.GObject): 
    367376                act.get_activity_version() != bundle.get_activity_version():
    368377            logging.warning('Not uninstalling, different bundle present')
    369378            return
    370         elif not act.get_path().startswith(env.get_user_activities_path()):
    371             logging.warning('Not uninstalling system activity')
     379
     380        if not act.is_user_activity():
     381            logging.debug('Do not uninstall system activity')
    372382            return
    373383
    374384        install_path = act.get_path()
    375385
    376386        bundle.uninstall(install_path, force)
    377        
     387
    378388        if not self.remove_bundle(install_path):
    379389            raise RegistrationException
    380390
    class BundleRegistry(gobject.GObject): 
    385395        elif act.get_activity_version() == bundle.get_activity_version():
    386396            logging.debug('No upgrade needed, same version already installed.')
    387397            return
    388         elif act.get_path().startswith(env.get_user_activities_path()):
     398        elif act.is_user_activity():
    389399            try:
    390400                self.uninstall(bundle, force=True)
    391401            except Exception: