163 default=default, |
163 default=default, |
164 immutable=True)) |
164 immutable=True)) |
165 setattr(self, 'bind_' + name, _bind) |
165 setattr(self, 'bind_' + name, _bind) |
166 self.bindingsNames.append(name) |
166 self.bindingsNames.append(name) |
167 |
167 |
168 def addSettings(self, name, desc, fields, btnlabel, callback): |
168 def addSettings(self, name, desc, fields, btnlabel, callback, |
|
169 addAfterName = None): |
169 def _bind(ctx): |
170 def _bind(ctx): |
170 return annotate.MethodBinding( |
171 return annotate.MethodBinding( |
171 'action_' + name, |
172 'action_' + name, |
172 annotate.Method( |
173 annotate.Method( |
173 arguments=[ |
174 arguments=[ |
177 action=btnlabel) |
178 action=btnlabel) |
178 setattr(self, 'bind_' + name, _bind) |
179 setattr(self, 'bind_' + name, _bind) |
179 |
180 |
180 setattr(self, 'action_' + name, callback) |
181 setattr(self, 'action_' + name, callback) |
181 |
182 |
182 if name not in self.bindingsNames: |
183 if addAfterName not in self.bindingsNames: |
183 self.bindingsNames.append(name) |
184 # Just append new setting if not yet present |
|
185 if name not in self.bindingsNames: |
|
186 self.bindingsNames.append(name) |
|
187 else: |
|
188 # We need to insert new setting |
|
189 # imediately _after_ addAfterName |
|
190 |
|
191 # First remove new setting if already present |
|
192 # to make sure it goes into correct place |
|
193 if name in self.bindingsNames: |
|
194 self.bindingsNames.remove(name) |
|
195 # Now add new setting in correct place |
|
196 self.bindingsNames.insert( |
|
197 self.bindingsNames.index(addAfterName)+1, |
|
198 name) |
|
199 |
184 |
200 |
185 |
201 |
186 def delSettings(self, name): |
202 def delSettings(self, name): |
187 if name in self.bindingsNames: |
203 if name in self.bindingsNames: |
188 self.bindingsNames.remove(name) |
204 self.bindingsNames.remove(name) |