From f31eec0e2ee3f27951693e7478c5650f64971b3c Mon Sep 17 00:00:00 2001 From: "Steven M. Gava" Date: Tue, 5 Mar 2002 00:25:58 +0000 Subject: [PATCH] further work on new config system --- Lib/idlelib/configDialog.py | 17 ++++++++++++++--- Lib/idlelib/keybindingDialog.py | 15 +++++++++------ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py index 6b9a146ab1b..753a1fc1539 100644 --- a/Lib/idlelib/configDialog.py +++ b/Lib/idlelib/configDialog.py @@ -463,7 +463,10 @@ class ConfigDialog(Toplevel): def VarChanged_themeIsBuiltin(self,*params): value=self.themeIsBuiltin.get() self.AddChangedItem('main','Theme','default',value) - self.PaintThemeSample() + if value: + self.VarChanged_builtinTheme() + else: + self.VarChanged_customTheme() def VarChanged_highlightTarget(self,*params): self.SetHighlightTarget() @@ -495,9 +498,9 @@ class ConfigDialog(Toplevel): value=self.keysAreBuiltin.get() self.AddChangedItem('main','Keys','default',value) if value: - self.LoadKeysList(self.builtinKeys.get()) + self.VarChanged_builtinKeys() else: - self.LoadKeysList(self.customKeys.get()) + self.VarChanged_customKeys() def VarChanged_winWidth(self,*params): value=self.winWidth.get() @@ -936,24 +939,31 @@ class ConfigDialog(Toplevel): type='bool',default=1)) ##currently set theme currentOption=idleConf.CurrentTheme() + print 'current option',currentOption ##load available theme option menus if self.themeIsBuiltin.get(): #default theme selected + print 'builtin theme' itemList=idleConf.GetSectionList('default','highlight') itemList.sort() + print 'builtin items:',itemList self.optMenuThemeBuiltin.SetMenu(itemList,currentOption) itemList=idleConf.GetSectionList('user','highlight') itemList.sort() + print 'user items:',itemList if not itemList: self.radioThemeCustom.config(state=DISABLED) self.customTheme.set('- no custom themes -') else: self.optMenuThemeCustom.SetMenu(itemList,itemList[0]) else: #user theme selected + print 'user theme' itemList=idleConf.GetSectionList('user','highlight') itemList.sort() + print 'user items:',itemList self.optMenuThemeCustom.SetMenu(itemList,currentOption) itemList=idleConf.GetSectionList('default','highlight') itemList.sort() + print 'builtin items:',itemList self.optMenuThemeBuiltin.SetMenu(itemList,itemList[0]) self.SetThemeType() ##load theme element option menu @@ -1112,4 +1122,5 @@ if __name__ == '__main__': root=Tk() Button(root,text='Dialog', command=lambda:ConfigDialog(root,'Settings')).pack() + root.instanceDict={} root.mainloop() diff --git a/Lib/idlelib/keybindingDialog.py b/Lib/idlelib/keybindingDialog.py index 3b1ddbafeca..f99e4520b92 100644 --- a/Lib/idlelib/keybindingDialog.py +++ b/Lib/idlelib/keybindingDialog.py @@ -142,7 +142,8 @@ class GetKeysDialog(Toplevel): if modifiers: modifiers[0]='<'+modifiers[0] keyList=keyList+modifiers if finalKey: - if (not modifiers) and (finalKey in self.functionKeys): + if (not modifiers) and (finalKey not + in self.alphanumKeys+self.punctuationKeys): finalKey='<'+self.TranslateKey(finalKey) else: finalKey=self.TranslateKey(finalKey) @@ -225,16 +226,18 @@ class GetKeysDialog(Toplevel): tkMessageBox.showerror(title='Key Sequence Error', message='No final key specified.') keysOk=0 - elif (not modifiers) and (finalKey not in self.functionKeys): - #modifier required if not a function key + elif (not modifiers) and (finalKey in + self.alphanumKeys+self.punctuationKeys): + #modifier required tkMessageBox.showerror(title='Key Sequence Error', message='No modifier key(s) specified.') keysOk=0 - elif (modifiers==['Shift']) and (finalKey not in self.functionKeys): + elif (modifiers==['Shift']) and (finalKey not + in self.functionKeys+('Tab',)): #shift alone is only a useful modifier with a function key tkMessageBox.showerror(title='Key Sequence Error', - message='Shift alone is only a useful modifier '+ - 'when used with a function key.') + message='Shift alone is not a useful modifier '+ + 'when used with this final key key.') keysOk=0 elif keySequence in self.currentKeySequences: #keys combo already in use tkMessageBox.showerror(title='Key Sequence Error',