summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/configHandler.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2015-11-12 20:03:17 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2015-11-12 20:03:17 (GMT)
commite19f3ec07228aeaa9bd1379413a3054953a5c51e (patch)
tree958f95fe937af722c99f472ed2c9f1bc83880e8b /Lib/idlelib/configHandler.py
parent2f85555531c79184767d4954f20e310beda99421 (diff)
parentd0c0f0041c3eb561adfa57179bc41f4dae212317 (diff)
downloadcpython-e19f3ec07228aeaa9bd1379413a3054953a5c51e.zip
cpython-e19f3ec07228aeaa9bd1379413a3054953a5c51e.tar.gz
cpython-e19f3ec07228aeaa9bd1379413a3054953a5c51e.tar.bz2
Merge with 3.4
Diffstat (limited to 'Lib/idlelib/configHandler.py')
-rw-r--r--Lib/idlelib/configHandler.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index 83abad7..336d969 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -372,8 +372,32 @@ class IdleConf:
return theme
def CurrentTheme(self):
- "Return the name of the currently active theme."
- return self.GetOption('main', 'Theme', 'name', default='')
+ """Return the name of the currently active text color theme.
+
+ idlelib.config-main.def includes this section
+ [Theme]
+ default= 1
+ name= IDLE Classic
+ name2=
+ # name2 set in user config-main.cfg for themes added after 2015 Oct 1
+
+ Item name2 is needed because setting name to a new builtin
+ causes older IDLEs to display multiple error messages or quit.
+ See https://bugs.python.org/issue25313.
+ When default = True, name2 takes precedence over name,
+ while older IDLEs will just use name.
+ """
+ default = self.GetOption('main', 'Theme', 'default',
+ type='bool', default=True)
+ if default:
+ theme = self.GetOption('main', 'Theme', 'name2', default='')
+ if default and not theme or not default:
+ theme = self.GetOption('main', 'Theme', 'name', default='')
+ source = self.defaultCfg if default else self.userCfg
+ if source['highlight'].has_section(theme):
+ return theme
+ else:
+ return "IDLE Classic"
def CurrentKeys(self):
"Return the name of the currently active key set."