Create a new custom key set with the given name. Copy the bindings/keys from the previously active keyset to the new keyset and activate the new custom keyset.
(self, new_key_set_name)
| 1431 | self.button_new_keys.state(('!disabled',)) |
| 1432 | |
| 1433 | def create_new_key_set(self, new_key_set_name): |
| 1434 | """Create a new custom key set with the given name. |
| 1435 | |
| 1436 | Copy the bindings/keys from the previously active keyset |
| 1437 | to the new keyset and activate the new custom keyset. |
| 1438 | """ |
| 1439 | if self.keyset_source.get(): |
| 1440 | prev_key_set_name = self.builtin_name.get() |
| 1441 | else: |
| 1442 | prev_key_set_name = self.custom_name.get() |
| 1443 | prev_keys = idleConf.GetCoreKeys(prev_key_set_name) |
| 1444 | new_keys = {} |
| 1445 | for event in prev_keys: # Add key set to changed items. |
| 1446 | event_name = event[2:-2] # Trim off the angle brackets. |
| 1447 | binding = ' '.join(prev_keys[event]) |
| 1448 | new_keys[event_name] = binding |
| 1449 | # Handle any unsaved changes to prev key set. |
| 1450 | if prev_key_set_name in changes['keys']: |
| 1451 | key_set_changes = changes['keys'][prev_key_set_name] |
| 1452 | for event in key_set_changes: |
| 1453 | new_keys[event] = key_set_changes[event] |
| 1454 | # Save the new key set. |
| 1455 | self.save_new_key_set(new_key_set_name, new_keys) |
| 1456 | # Change GUI over to the new key set. |
| 1457 | custom_key_list = idleConf.GetSectionList('user', 'keys') |
| 1458 | custom_key_list.sort() |
| 1459 | self.customlist.SetMenu(custom_key_list, new_key_set_name) |
| 1460 | self.keyset_source.set(0) |
| 1461 | self.set_keys_type() |
| 1462 | |
| 1463 | def load_keys_list(self, keyset_name): |
| 1464 | """Reload the list of action/key binding pairs for the active key set. |