Show
Ignore:
Timestamp:
05/22/07 13:45:03 (20 months ago)
Author:
aafshar
Message:

fixed project controllers to be correctly updated when unloading plugins which use them

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pida/core/features.py

    r873 r932  
    4646 
    4747    def unsubscribe_foreign_features(self): 
    48         for (servicename, featurename), feature_object in self._foreign_feature_objects.items(): 
    49             self.svc.unsubscribe_foreign_feature(servicename, feature_object) 
     48        for (servicename, featurename), feature_objects in self._foreign_feature_objects.items(): 
     49            for feature_object in feature_objects: 
     50                self.svc.unsubscribe_foreign_feature(servicename, feature_object) 
     51            del self._foreign_feature_objects[(servicename, featurename)] 
     52 
     53    def has_foreign_feature(self, servicename, featurename): 
     54        for (service, feature), feature_object in self._foreign_feature_objects.items(): 
     55            if servicename == service and featurename == feature: 
     56                return True 
     57        return False 
    5058 
    5159    def subscribe_foreign_feature(self, servicename, featurename, instance): 
    5260        feature_object = self.svc.subscribe_foreign_feature(servicename, featurename, instance) 
    53         self._foreign_feature_objects[(servicename, featurename)] = feature_object 
     61        self._foreign_feature_objects.setdefault((servicename, featurename), []).append(feature_object) 
    5462 
    5563    def subscribe_feature(self, featurename, instance):