summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven M. Gava <elguavas@python.net>2002-01-04 07:53:06 (GMT)
committerSteven M. Gava <elguavas@python.net>2002-01-04 07:53:06 (GMT)
commit0cae01c49638c95fcff200aa92a3e7d580a9bb3e (patch)
tree46414c55ede31480184d493badb989bbe090863e
parentc597640515a9ca3aa1807cc633b8d7bf2aa4a4e6 (diff)
downloadcpython-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.py7
-rw-r--r--Lib/idlelib/ColorDelegator.py4
-rw-r--r--Lib/idlelib/EditorWindow.py1
-rw-r--r--Lib/idlelib/PyShell.py6
-rw-r--r--Lib/idlelib/config-extensions.def6
-rw-r--r--Lib/idlelib/config-main.def2
-rw-r--r--Lib/idlelib/configDialog.py11
-rw-r--r--Lib/idlelib/configHandler.py34
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