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 | |
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
-rw-r--r-- | Lib/idlelib/Bindings.py | 7 | ||||
-rw-r--r-- | Lib/idlelib/ColorDelegator.py | 4 | ||||
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 1 | ||||
-rw-r--r-- | Lib/idlelib/PyShell.py | 6 | ||||
-rw-r--r-- | Lib/idlelib/config-extensions.def | 6 | ||||
-rw-r--r-- | Lib/idlelib/config-main.def | 2 | ||||
-rw-r--r-- | Lib/idlelib/configDialog.py | 11 | ||||
-rw-r--r-- | Lib/idlelib/configHandler.py | 34 |
8 files changed, 40 insertions, 31 deletions
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py index 29d0cf4..862ceb6 100644 --- a/Lib/idlelib/Bindings.py +++ b/Lib/idlelib/Bindings.py @@ -73,11 +73,6 @@ menudefs = [ ]), ] -#if sys.platform == 'win32': -# default_keydefs = windows_keydefs -#else: -# default_keydefs = unix_keydefs - -default_keydefs = idleConf.GetKeys(keySetName=None) +default_keydefs = idleConf.GetKeys(keySetName=idleConf.CurrentKeys()) del sys diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py index b4d6559..a4aefb2 100644 --- a/Lib/idlelib/ColorDelegator.py +++ b/Lib/idlelib/ColorDelegator.py @@ -60,8 +60,8 @@ class ColorDelegator(Delegator): "KEYWORD": idleConf.GetHighlight(theme, "keyword"), "STRING": idleConf.GetHighlight(theme, "string"), "DEFINITION": idleConf.GetHighlight(theme, "definition"), - "SYNC": idleConf.GetHighlight(theme, "sync"), - "TODO": idleConf.GetHighlight(theme, "todo"), + "SYNC": {'background':None,'foreground':None}, + "TODO": {'background':None,'foreground':None}, "BREAK": idleConf.GetHighlight(theme, "break"), # The following is used by ReplaceDialog: "hit": idleConf.GetHighlight(theme, "hit"), diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 0e19da1..237a462 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -206,7 +206,6 @@ class EditorWindow: if self.extensions.has_key('AutoIndent'): self.extensions['AutoIndent'].set_indentation_params( self.ispythonsource(filename)) - def set_status_bar(self): self.status_bar = self.MultiStatusBar(self.top) diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index 5037806..9333ea9 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -42,7 +42,6 @@ from FileList import FileList from ColorDelegator import ColorDelegator from UndoDelegator import UndoDelegator from OutputWindow import OutputWindow, OnDemandOutputWindow -from IdleConf import idleconf from configHandler import idleConf import idlever @@ -143,9 +142,9 @@ class ModifiedColorDelegator(ColorDelegator): tagdefs = ColorDelegator.tagdefs.copy() theme = idleConf.GetOption('main','Theme','name') - tagdefs.update({ - "stdin": idleConf.GetHighlight(theme, "stdin"), + tagdefs.update({ + "stdin": {'background':None,'foreground':None}, "stdout": idleConf.GetHighlight(theme, "stdout"), "stderr": idleConf.GetHighlight(theme, "stderr"), "console": idleConf.GetHighlight(theme, "console"), @@ -153,7 +152,6 @@ class ModifiedColorDelegator(ColorDelegator): None: idleConf.GetHighlight(theme, "normal"), }) - class ModifiedUndoDelegator(UndoDelegator): # Forbid insert/delete before the I/O mark diff --git a/Lib/idlelib/config-extensions.def b/Lib/idlelib/config-extensions.def index 2c91554..b4e9b02 100644 --- a/Lib/idlelib/config-extensions.def +++ b/Lib/idlelib/config-extensions.def @@ -1,13 +1,13 @@ # IDLE reads several config files to determine user preferences. This # file is the default config file for idle extensions settings. -[AutoIndent] +[FormatParagraph] enable=1 -[AutoExpand] +[AutoIndent] enable=1 -[FormatParagraph] +[AutoExpand] enable=1 [ZoomHeight] diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def index fbb760f..82be552 100644 --- a/Lib/idlelib/config-main.def +++ b/Lib/idlelib/config-main.def @@ -63,7 +63,7 @@ name= IDLE Classic [Keys] default= 1 -name= IDLE Classic - windows +name= IDLE Classic Windows [RecentFiles] 1= diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py index 6c88d60..bfff813 100644 --- a/Lib/idlelib/configDialog.py +++ b/Lib/idlelib/configDialog.py @@ -120,8 +120,8 @@ class ConfigDialog(Toplevel): self.radioBg.config(state=DISABLED) self.fgHilite.set(1) else: #both fg and bg can be set - self.radioFg.config(state=DISABLED) - self.radioBg.config(state=DISABLED) + self.radioFg.config(state=NORMAL) + self.radioBg.config(state=NORMAL) self.fgHilite.set(1) self.SetColourSample() @@ -496,7 +496,7 @@ class ConfigDialog(Toplevel): colours=idleConf.GetHighlight(theme, self.themeElements[element][0]) if element=='Cursor': #cursor sample needs special painting colours['background']=idleConf.GetHighlight(theme, - 'normal-text', fgBg='bg') + 'normal', fgBg='bg') apply(self.textHighlightSample.tag_config, (self.themeElements[element][0],),colours) @@ -558,11 +558,8 @@ class ConfigDialog(Toplevel): themeNames=self.themeElements.keys() themeNames.sort(self.__ThemeNameIndexCompare) self.optMenuHighlightTarget.SetMenu(themeNames,themeNames[0]) - sampleBg=idleConf.GetHighlight(currentOption, - self.highlightTarget.get())['background'] - self.fgHilite.set(0) - self.frameColourSet.config(bg=sampleBg) self.PaintThemeSample() + self.SetHighlightTarget() def __ThemeNameIndexCompare(self,a,b): if self.themeElements[a][1]<self.themeElements[b][1]: return -1 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 |