diff options
author | Steven M. Gava <elguavas@python.net> | 2002-01-04 07:53:06 (GMT) |
---|---|---|
committer | Steven M. Gava <elguavas@python.net> | 2002-01-04 07:53:06 (GMT) |
commit | 0cae01c49638c95fcff200aa92a3e7d580a9bb3e (patch) | |
tree | 46414c55ede31480184d493badb989bbe090863e /Lib/idlelib/configHandler.py | |
parent | c597640515a9ca3aa1807cc633b8d7bf2aa4a4e6 (diff) | |
download | cpython-0cae01c49638c95fcff200aa92a3e7d580a9bb3e.zip cpython-0cae01c49638c95fcff200aa92a3e7d580a9bb3e.tar.gz cpython-0cae01c49638c95fcff200aa92a3e7d580a9bb3e.tar.bz2 |
loading core keybindings via new config system plus
further devel of highlight handling
Diffstat (limited to 'Lib/idlelib/configHandler.py')
-rw-r--r-- | Lib/idlelib/configHandler.py | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py index b761a1c..ba18457 100644 --- a/Lib/idlelib/configHandler.py +++ b/Lib/idlelib/configHandler.py @@ -27,7 +27,6 @@ class IdleConfParser(ConfigParser): """ Get an option value for given section/option or return default. If type is specified, return as type. - If a default is returned a warning is printed to stderr. """ if type=='bool': getVal=self.getboolean @@ -125,6 +124,7 @@ class IdleConf: fallback to a useable passed-in default if the option isn't present in either the user or the default configuration. configType must be one of ('main','extensions','highlight','keys') + If a default is returned a warning is printed to stderr. """ if self.userCfg[configType].has_option(section,option): return self.userCfg[configType].Get(section, option, type=type) @@ -201,14 +201,14 @@ class IdleConf: """ Returns the name of the currently active theme """ - return self.GetOption('main','Theme','name') + return self.GetOption('main','Theme','name',default='') def CurrentKeys(self): """ Returns the name of the currently active theme """ - return self.GetOption('main','Keys','name') + return self.GetOption('main','Keys','name',default='') def GetExtensions(self, activeOnly=1): """ @@ -230,11 +230,21 @@ class IdleConf: else: return extns + def GetKeyBinding(self, keySetName, eventStr): + """ + returns the keybinding for a specific event. + keySetName - string, name of key binding set + eventStr - string, the virtual event we want the binding for, + represented as a string, eg. '<<event>>' + """ + eventName=eventStr[2:-2] #trim off the angle brackets + binding=self.GetOption('keys',keySetName,eventName,default='').split() + return binding + def GetKeys(self, keySetName=None): """ - returns the requested keybindings, with fallbacks if required. + returns the requested set of keybindings, with fallbacks if required. """ - #default keybindings. #keybindings loaded from the config file(s) are loaded _over_ these #defaults, so if there is a problem getting any binding there will #be an 'ultimate last resort fallback' to the CUA-ish bindings @@ -266,9 +276,19 @@ class IdleConf: '<<save-window>>': ['<Control-s>'], '<<select-all>>': ['<Alt-a>'], '<<toggle-auto-coloring>>': ['<Control-slash>'], - '<<undo>>': ['<Control-z>']} + '<<undo>>': ['<Control-z>'], + '<<find-again>>': ['<Control-g>', '<F3>'], + '<<find-in-files>>': ['<Alt-F3>'], + '<<find-selection>>': ['<Control-F3>'], + '<<find>>': ['<Control-f>'], + '<<replace>>': ['<Control-h>'], + '<<goto-line>>': ['<Alt-g>'] } + if keySetName: - pass + for event in keyBindings.keys(): + binding=self.GetKeyBinding(keySetName,event) + if binding: #otherwise will keep default + keyBindings[event]=binding return keyBindings |