Changeset 1144:6f275136d765
- Timestamp:
- 04/29/08 10:51:47 (4 months ago)
- Author:
- Ronny Pfannschmidt <Ronny.Pfannschmidt@…>
- Message:
-
removed the need for Service.reg
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r932
|
r1144
|
|
| 73 | 73 | return self._features.get_features(featurename) |
| 74 | 74 | |
| | 75 | #XXX: workaround for keeping svc.features(name) |
| | 76 | __call__ = get_feature_providers |
| 75 | 77 | |
| 76 | 78 | # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: |
-
|
r1143
|
r1144
|
|
| 34 | 34 | self.boss = boss |
| 35 | 35 | self.log.debug('Loading Service') |
| 36 | | self.reg = Registry() |
| 37 | 36 | |
| 38 | 37 | def create_all(self): |
| … |
… |
|
| 41 | 40 | {servicemanager.ServiceManager} |
| 42 | 41 | """ |
| 43 | | |
| 44 | | self._register_options_config(self.options_config) |
| 45 | | self._register_events_config(self.events_config) |
| 46 | | self._register_commands_config(self.commands_config) |
| 47 | | self._register_feature_config(self.features_config) |
| 48 | | self._register_actions_config(self.actions_config) |
| | 42 | |
| | 43 | self.options = self.options_config(self) |
| | 44 | self.events = self.events_config(self) |
| | 45 | self.commands = self.commands_config(self) |
| | 46 | self.features = self.features_config(self) |
| | 47 | self.actions = self.actions_config(self) |
| 49 | 48 | |
| 50 | 49 | def subscribe_all(self): |
| … |
… |
|
| 81 | 80 | |
| 82 | 81 | ########## |
| 83 | | # Options |
| 84 | | |
| 85 | | def _register_options_config(self, config_cls): |
| 86 | | instance = config_cls(self) |
| 87 | | self.reg.register_plugin( |
| 88 | | instance=instance, |
| 89 | | singletons=(IOptions,) |
| 90 | | ) |
| 91 | | |
| 92 | | # Public Options API |
| 93 | | def get_options(self): |
| 94 | | return self.reg.get_singleton(IOptions) |
| 95 | | |
| | 82 | # Options API |
| 96 | 83 | def get_option(self, name): |
| 97 | | return self.get_options().get_option(name) |
| | 84 | return self.options.get_option(name) |
| 98 | 85 | |
| 99 | 86 | def opt(self, name): |
| 100 | | return self.get_options().get_value(name) |
| | 87 | return self.options.get_value(name) |
| 101 | 88 | |
| 102 | 89 | def set_opt(self, name, value): |
| 103 | | return self.get_options().set_value(name, value) |
| 104 | | |
| 105 | | ########## |
| 106 | | # Commands |
| 107 | | |
| 108 | | def _register_commands_config(self, config_cls): |
| 109 | | self.reg.register_plugin( |
| 110 | | instance = config_cls(self), |
| 111 | | singletons=(ICommands,) |
| 112 | | ) |
| 113 | | |
| 114 | | # Public Commands API |
| 115 | | |
| 116 | | def _get_commands(self): |
| 117 | | return self.reg.get_singleton(ICommands) |
| 118 | | |
| 119 | | def cmd(self, commandname, *args, **kw): |
| 120 | | if args: |
| 121 | | raise TypeError( |
| 122 | | _('You must call command %(cmd)s in service %(svc)s with named arguments') |
| 123 | | % {'cmd':commandname, 'svc':self.get_name()}) |
| 124 | | else: |
| 125 | | return self._get_commands().call(commandname, **kw) |
| | 90 | return self.options.set_value(name, value) |
| | 91 | |
| | 92 | ########## |
| | 93 | # Commands API |
| | 94 | |
| | 95 | |
| | 96 | def cmd(self, commandname, **kw): |
| | 97 | return self.commands.call(commandname, **kw) |
| 126 | 98 | |
| 127 | 99 | ########## |
| … |
… |
|
| 129 | 101 | |
| 130 | 102 | # Private Events API |
| 131 | | def _register_events_config(self, config_cls): |
| 132 | | self.reg.register_plugin( |
| 133 | | instance = config_cls(self), |
| 134 | | singletons=(IEvents,) |
| 135 | | ) |
| 136 | 103 | |
| 137 | 104 | def _subscribe_foreign_events(self): |
| 138 | | self._get_events().subscribe_foreign_events() |
| | 105 | self.events.subscribe_foreign_events() |
| 139 | 106 | |
| 140 | 107 | def _unsubscribe_foreign_events(self): |
| 141 | | self._get_events().unsubscribe_foreign_events() |
| | 108 | self.events.unsubscribe_foreign_events() |
| 142 | 109 | |
| 143 | 110 | # Public Events API |
| 144 | | def _get_events(self): |
| 145 | | return self.reg.get_singleton(IEvents) |
| 146 | | |
| 147 | 111 | def get_event(self, name): |
| 148 | | return self._get_events().get(name) |
| | 112 | return self.events.get(name) |
| 149 | 113 | |
| 150 | 114 | def subscribe_foreign_event(self, servicename, name, callback): |
| … |
… |
|
| 155 | 119 | |
| 156 | 120 | def subscribe_event(self, name, callback): |
| 157 | | self._get_events().subscribe_event(name, callback) |
| | 121 | self.events.subscribe_event(name, callback) |
| 158 | 122 | |
| 159 | 123 | def unsubscribe_event(self, name, callback): |
| 160 | | self._get_events().unsubscribe_event(name, callback) |
| 161 | | |
| | 124 | self.events.unsubscribe_event(name, callback) |
| 162 | 125 | |
| 163 | 126 | def emit(self, name, **kw): |
| 164 | | self._get_events().emit(name, **kw) |
| | 127 | self.events.emit(name, **kw) |
| 165 | 128 | |
| 166 | 129 | ########## |
| 167 | 130 | # Features |
| 168 | 131 | |
| 169 | | def _register_feature_config(self, config_cls): |
| 170 | | self.reg.register_plugin( |
| 171 | | instance = config_cls(self), |
| 172 | | singletons=(IFeatures,) |
| 173 | | ) |
| 174 | 132 | |
| 175 | 133 | def _subscribe_foreign_features(self): |
| 176 | | self._get_features().subscribe_foreign_features() |
| | 134 | self.features.subscribe_foreign_features() |
| 177 | 135 | |
| 178 | 136 | def _unsubscribe_foreign_features(self): |
| 179 | | self._get_features().unsubscribe_foreign_features() |
| 180 | | |
| 181 | | def _get_features(self): |
| 182 | | return self.reg.get_singleton(IFeatures) |
| | 137 | self.features.unsubscribe_foreign_features() |
| 183 | 138 | |
| 184 | 139 | # Public Feature API |
| 185 | 140 | |
| 186 | 141 | def list_features(self): |
| 187 | | return self._get_features().list_features() |
| | 142 | return self.features.list_features() |
| 188 | 143 | |
| 189 | 144 | def has_foreign_feature(self, servicename, featurename): |
| 190 | | return self._get_features().has_foreign_feature(servicename, featurename) |
| | 145 | return self.features.has_foreign_feature(servicename, featurename) |
| 191 | 146 | |
| 192 | 147 | def subscribe_feature(self, feature, instance): |
| 193 | | return self._get_features().subscribe_feature(feature, instance) |
| | 148 | return self.features.subscribe_feature(feature, instance) |
| 194 | 149 | |
| 195 | 150 | def unsubscribe_feature(self, feature_object): |
| 196 | | self._get_features().unsubscribe_feature(feature_object) |
| | 151 | self.features.unsubscribe_feature(feature_object) |
| 197 | 152 | |
| 198 | 153 | def subscribe_foreign_feature(self, servicename, feature, instance): |
| … |
… |
|
| 202 | 157 | self.boss.unsubscribe_feature(servicename, feature_object) |
| 203 | 158 | |
| 204 | | def features(self, name): |
| 205 | | return self._get_features().get_feature_providers(name) |
| 206 | | |
| 207 | 159 | ########## |
| 208 | 160 | # Actions |
| 209 | 161 | |
| 210 | | def _register_actions_config(self, config_cls): |
| 211 | | self.reg.register_plugin( |
| 212 | | instance = config_cls(self), |
| 213 | | singletons=(IActions,) |
| 214 | | ) |
| 215 | | |
| 216 | 162 | def _unregister_actions_config(self): |
| 217 | | self._get_actions().remove_actions() |
| | 163 | self.actions.remove_actions() |
| 218 | 164 | |
| 219 | 165 | def _subscribe_keyboard_shortcuts(self): |
| 220 | | self._get_actions().subscribe_keyboard_shortcuts() |
| 221 | | |
| 222 | | def _get_actions(self): |
| 223 | | return self.reg.get_singleton(IActions) |
| | 166 | self.actions.subscribe_keyboard_shortcuts() |
| | 167 | |
| 224 | 168 | |
| 225 | 169 | def get_action_group(self): |
| 226 | | return self._get_actions().get_action_group() |
| | 170 | return self.actions.get_action_group() |
| 227 | 171 | |
| 228 | 172 | def get_action(self, name): |
| 229 | | return self._get_actions().get_action(name) |
| | 173 | return self.actions.get_action(name) |
| 230 | 174 | |
| 231 | 175 | def get_keyboard_options(self): |
| 232 | | return self._get_actions().get_keyboard_options() |
| | 176 | return self.actions.get_keyboard_options() |
| 233 | 177 | |
| 234 | 178 | # Logging |
-
|
r1125
|
r1144
|
|
| 74 | 74 | self._services = [] |
| 75 | 75 | for svc in self.svc.boss.get_services(): |
| 76 | | if len(svc.get_options()): |
| | 76 | if len(svc.options): |
| 77 | 77 | self._services.append(svc) |
| 78 | 78 | self._services_display.append( |
| … |
… |
|
| 109 | 109 | labelsizer = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) |
| 110 | 110 | widgetsizer = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) |
| 111 | | options = list(svc.get_options().iter_options()) |
| | 111 | options = list(svc.options.iter_options()) |
| 112 | 112 | options.sort() |
| 113 | 113 | for opt in options: |
| … |
… |
|
| 192 | 192 | |
| 193 | 193 | def plugin_changed(self, plugin): |
| 194 | | if len(plugin.get_options()): |
| | 194 | if len(plugin.options): |
| 195 | 195 | self.svc.refresh_view() |
| 196 | 196 | |
-
|
r1141
|
r1144
|
|
| 53 | 53 | svc.create_all() |
| 54 | 54 | self.assertEqual( |
| 55 | | svc.reg.get_singleton(IOptions).get_option('g1'), |
| | 55 | svc.options.get_option('g1'), |
| 56 | 56 | svc.o_test |
| 57 | 57 | ) |