Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
ea5661fa
Commit
ea5661fa
authored
Jan 22, 2002
by
Steven M. Gava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
further work on config saving
parent
916492c4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
107 additions
and
30 deletions
+107
-30
Lib/idlelib/config-main.def
Lib/idlelib/config-main.def
+1
-0
Lib/idlelib/configDialog.py
Lib/idlelib/configDialog.py
+106
-30
No files found.
Lib/idlelib/config-main.def
View file @
ea5661fa
...
...
@@ -51,6 +51,7 @@ width= 80
height= 30
font= courier
font-size= 12
font-bold= 0
[Indent]
use-spaces= 1
...
...
Lib/idlelib/configDialog.py
View file @
ea5661fa
...
...
@@ -58,6 +58,7 @@ class ConfigDialog(Toplevel):
#self.bind('<Alt-a>',self.Apply) #apply changes, save
#self.bind('<F1>',self.Help) #context help
self
.
LoadConfigs
()
self
.
AttachVarCallbacks
()
#avoid callbacks during LoadConfigs
self
.
wait_window
()
def
CreateWidgets
(
self
):
...
...
@@ -88,10 +89,11 @@ class ConfigDialog(Toplevel):
def
CreatePageFontTab
(
self
):
#tkVars
self
.
fontSize
=
StringVar
(
self
)
self
.
fontBold
=
StringVar
(
self
)
self
.
fontBold
=
BooleanVar
(
self
)
self
.
fontName
=
StringVar
(
self
)
self
.
spaceNum
=
IntVar
(
self
)
self
.
tabCols
=
IntVar
(
self
)
self
.
indent
Type
=
Int
Var
(
self
)
self
.
indent
BySpaces
=
Boolean
Var
(
self
)
self
.
editFont
=
tkFont
.
Font
(
self
,(
'courier'
,
12
,
'normal'
))
##widget creation
#body frame
...
...
@@ -107,15 +109,15 @@ class ConfigDialog(Toplevel):
text
=
'Font :'
)
self
.
listFontName
=
Listbox
(
frameFontName
,
height
=
5
,
takefocus
=
FALSE
,
exportselection
=
FALSE
)
self
.
listFontName
.
bind
(
'<
<ListboxSelect>>'
,
self
.
SetFontSampleBinding
)
self
.
listFontName
.
bind
(
'<
ButtonRelease-1>'
,
self
.
OnListFontButtonRelease
)
scrollFont
=
Scrollbar
(
frameFontName
)
scrollFont
.
config
(
command
=
self
.
listFontName
.
yview
)
self
.
listFontName
.
config
(
yscrollcommand
=
scrollFont
.
set
)
labelFontSizeTitle
=
Label
(
frameFontParam
,
text
=
'Size :'
)
self
.
optMenuFontSize
=
DynOptionMenu
(
frameFontParam
,
self
.
fontSize
,
None
,
command
=
self
.
SetFontSample
Binding
)
command
=
self
.
SetFontSample
)
checkFontBold
=
Checkbutton
(
frameFontParam
,
variable
=
self
.
fontBold
,
onvalue
=
'Bold'
,
offvalue
=
''
,
text
=
'Bold'
)
onvalue
=
1
,
offvalue
=
0
,
text
=
'Bold'
,
command
=
self
.
SetFontSample
)
frameFontSample
=
Frame
(
frameFont
,
relief
=
SOLID
,
borderwidth
=
1
)
self
.
labelFontSample
=
Label
(
frameFontSample
,
text
=
'AaBbCcDdEe
\
n
FfGgHhIiJjK
\
n
1234567890
\
n
#:+=(){}[]'
,
...
...
@@ -126,9 +128,9 @@ class ConfigDialog(Toplevel):
frameIndentSize
=
Frame
(
frameIndent
)
labelIndentTypeTitle
=
Label
(
frameIndentType
,
text
=
'Choose indentation type :'
)
radioUseSpaces
=
Radiobutton
(
frameIndentType
,
variable
=
self
.
indent
Type
,
radioUseSpaces
=
Radiobutton
(
frameIndentType
,
variable
=
self
.
indent
BySpaces
,
value
=
1
,
text
=
'Tab key inserts spaces'
)
radioUseTabs
=
Radiobutton
(
frameIndentType
,
variable
=
self
.
indent
Type
,
radioUseTabs
=
Radiobutton
(
frameIndentType
,
variable
=
self
.
indent
BySpaces
,
value
=
0
,
text
=
'Tab key inserts tabs'
)
labelIndentSizeTitle
=
Label
(
frameIndentSize
,
text
=
'Choose indentation size :'
)
...
...
@@ -173,12 +175,11 @@ class ConfigDialog(Toplevel):
def
CreatePageHighlight
(
self
):
self
.
builtinTheme
=
StringVar
(
self
)
self
.
customTheme
=
StringVar
(
self
)
self
.
fgHilite
=
Int
Var
(
self
)
self
.
fgHilite
=
Boolean
Var
(
self
)
self
.
colour
=
StringVar
(
self
)
self
.
fontName
=
StringVar
(
self
)
self
.
themeIsBuiltin
=
Int
Var
(
self
)
self
.
themeIsBuiltin
=
Boolean
Var
(
self
)
self
.
highlightTarget
=
StringVar
(
self
)
self
.
highlightTarget
.
trace_variable
(
'w'
,
self
.
SetHighlightTargetBinding
)
##widget creation
#body frame
frame
=
self
.
tabPages
.
pages
[
'Highlighting'
][
'page'
]
...
...
@@ -264,11 +265,8 @@ class ConfigDialog(Toplevel):
self
.
bindingTarget
=
StringVar
(
self
)
self
.
builtinKeys
=
StringVar
(
self
)
self
.
customKeys
=
StringVar
(
self
)
self
.
keyChars
=
StringVar
(
self
)
self
.
keyCtrl
=
StringVar
(
self
)
self
.
keyAlt
=
StringVar
(
self
)
self
.
keyShift
=
StringVar
(
self
)
self
.
keysAreDefault
=
IntVar
(
self
)
self
.
keysAreDefault
=
BooleanVar
(
self
)
self
.
keyBinding
=
StringVar
(
self
)
##widget creation
#body frame
frame
=
self
.
tabPages
.
pages
[
'Keys'
][
'page'
]
...
...
@@ -330,10 +328,10 @@ class ConfigDialog(Toplevel):
def
CreatePageGeneral
(
self
):
#tkVars
self
.
runType
=
IntVar
(
self
)
self
.
winWidth
=
StringVar
(
self
)
self
.
winHeight
=
StringVar
(
self
)
self
.
startupEdit
=
IntVar
(
self
)
self
.
extEnabled
=
IntVar
(
self
)
#widget creation
#body
frame
=
self
.
tabPages
.
pages
[
'General'
][
'page'
]
...
...
@@ -368,9 +366,9 @@ class ConfigDialog(Toplevel):
self
.
listExt
.
config
(
yscrollcommand
=
scrollExtList
.
set
)
self
.
listExt
.
bind
(
'<ButtonRelease-1>'
,
self
.
ExtensionSelected
)
labelExtSetTitle
=
Label
(
frameExtSet
,
text
=
'Settings'
)
self
.
radioEnableExt
=
Radiobutton
(
frameExtSet
,
variable
=
self
.
startupEdit
,
self
.
radioEnableExt
=
Radiobutton
(
frameExtSet
,
variable
=
self
.
extEnabled
,
value
=
1
,
text
=
"enabled"
,
state
=
DISABLED
)
self
.
radioDisableExt
=
Radiobutton
(
frameExtSet
,
variable
=
self
.
startupEdit
,
self
.
radioDisableExt
=
Radiobutton
(
frameExtSet
,
variable
=
self
.
extEnabled
,
value
=
0
,
text
=
"disabled"
,
state
=
DISABLED
)
self
.
buttonExtConfig
=
Button
(
frameExtSet
,
text
=
'Configure'
,
state
=
DISABLED
)
#widget packing
...
...
@@ -402,6 +400,73 @@ class ConfigDialog(Toplevel):
self
.
buttonExtConfig
.
pack
(
side
=
TOP
,
anchor
=
W
,
pady
=
5
)
return
frame
def
AttachVarCallbacks
(
self
):
self
.
fontSize
.
trace_variable
(
'w'
,
self
.
VarChanged_fontSize
)
self
.
fontName
.
trace_variable
(
'w'
,
self
.
VarChanged_fontName
)
self
.
fontBold
.
trace_variable
(
'w'
,
self
.
VarChanged_fontBold
)
self
.
spaceNum
.
trace_variable
(
'w'
,
self
.
VarChanged_spaceNum
)
self
.
tabCols
.
trace_variable
(
'w'
,
self
.
VarChanged_tabCols
)
self
.
indentBySpaces
.
trace_variable
(
'w'
,
self
.
VarChanged_indentBySpaces
)
self
.
colour
.
trace_variable
(
'w'
,
self
.
VarChanged_colour
)
self
.
keyBinding
.
trace_variable
(
'w'
,
self
.
VarChanged_keyBinding
)
self
.
winWidth
.
trace_variable
(
'w'
,
self
.
VarChanged_winWidth
)
self
.
winHeight
.
trace_variable
(
'w'
,
self
.
VarChanged_winHeight
)
self
.
startupEdit
.
trace_variable
(
'w'
,
self
.
VarChanged_startupEdit
)
self
.
extEnabled
.
trace_variable
(
'w'
,
self
.
VarChanged_extEnabled
)
def
VarChanged_fontSize
(
self
,
*
params
):
value
=
self
.
fontSize
.
get
()
self
.
AddChangedItem
(
'main'
,
'EditorWindow'
,
'font-size'
,
value
)
print
'fontSize:'
,
value
def
VarChanged_fontName
(
self
,
*
params
):
value
=
self
.
fontName
.
get
()
self
.
AddChangedItem
(
'main'
,
'EditorWindow'
,
'font'
,
value
)
print
'fontName:'
,
value
def
VarChanged_fontBold
(
self
,
*
params
):
value
=
self
.
fontBold
.
get
()
self
.
AddChangedItem
(
'main'
,
'EditorWindow'
,
'font-bold'
,
value
)
print
'fontBold:'
,
value
def
VarChanged_indentBySpaces
(
self
,
*
params
):
value
=
self
.
indentBySpaces
.
get
()
self
.
AddChangedItem
(
'main'
,
'Indent'
,
'use-spaces'
,
value
)
print
'indentBySpaces:'
,
value
def
VarChanged_spaceNum
(
self
,
*
params
):
value
=
self
.
spaceNum
.
get
()
self
.
AddChangedItem
(
'main'
,
'Indent'
,
'num-spaces'
,
value
)
print
'spaceNum:'
,
value
def
VarChanged_tabCols
(
self
,
*
params
):
value
=
self
.
tabCols
.
get
()
self
.
AddChangedItem
(
'main'
,
'Indent'
,
'tab-cols'
,
value
)
print
'tabCols:'
,
value
def
VarChanged_colour
(
self
,
*
params
):
print
params
def
VarChanged_keyBinding
(
self
,
*
params
):
print
params
def
VarChanged_winWidth
(
self
,
*
params
):
print
params
def
VarChanged_winHeight
(
self
,
*
params
):
print
params
def
VarChanged_startupEdit
(
self
,
*
params
):
print
params
def
VarChanged_extEnabled
(
self
,
*
params
):
print
params
def
AddChangedItem
(
self
,
type
,
section
,
item
,
value
):
if
not
self
.
changedItems
[
type
].
has_key
(
section
):
self
.
changedItems
[
type
][
section
]
=
{}
self
.
changedItems
[
type
][
section
][
item
]
=
value
def
GetDefaultItems
(
self
):
dItems
=
{
'main'
:{},
'highlight'
:{},
'keys'
:{},
'extensions'
:{}}
for
configType
in
dItems
.
keys
():
...
...
@@ -440,18 +505,25 @@ class ConfigDialog(Toplevel):
title
=
'Pick new colour for : '
+
target
,
initialcolor
=
self
.
frameColourSet
.
cget
(
'bg'
))
if
colourString
:
#user didn't cancel
self
.
colour
.
set
(
colourString
)
self
.
frameColourSet
.
config
(
bg
=
colourString
)
#set sample
if
self
.
fgHilite
.
get
():
plane
=
'foreground'
else
:
plane
=
'background'
apply
(
self
.
textHighlightSample
.
tag_config
,
(
self
.
themeElements
[
target
][
0
],),{
plane
:
colourString
})
def
SetFontSampleBinding
(
self
,
event
):
def
OnListFontButtonRelease
(
self
,
event
):
self
.
fontName
.
set
(
self
.
listFontName
.
get
(
ANCHOR
))
self
.
SetFontSample
()
def
SetFontSample
(
self
):
self
.
editFont
.
config
(
size
=
self
.
fontSize
.
get
(),
weight
=
NORMAL
,
family
=
self
.
listFontName
.
get
(
self
.
listFontName
.
curselection
()[
0
]))
def
SetFontSample
(
self
,
event
=
None
):
fontName
=
self
.
fontName
.
get
()
if
self
.
fontBold
.
get
():
fontWeight
=
tkFont
.
BOLD
else
:
fontWeight
=
tkFont
.
NORMAL
self
.
editFont
.
config
(
size
=
self
.
fontSize
.
get
(),
weight
=
fontWeight
,
family
=
fontName
)
def
SetHighlightTargetBinding
(
self
,
*
args
):
self
.
SetHighlightTarget
()
...
...
@@ -499,14 +571,20 @@ class ConfigDialog(Toplevel):
self
.
listFontName
.
insert
(
END
,
font
)
configuredFont
=
idleConf
.
GetOption
(
'main'
,
'EditorWindow'
,
'font'
,
default
=
'courier'
)
self
.
fontName
.
set
(
configuredFont
)
if
configuredFont
in
fonts
:
currentFontIndex
=
fonts
.
index
(
configuredFont
)
self
.
listFontName
.
see
(
currentFontIndex
)
self
.
listFontName
.
select_set
(
currentFontIndex
)
self
.
listFontName
.
select_anchor
(
currentFontIndex
)
##font size dropdown
fontSize
=
idleConf
.
GetOption
(
'main'
,
'EditorWindow'
,
'font-size'
,
default
=
'12'
)
fontSize
=
idleConf
.
GetOption
(
'main'
,
'EditorWindow'
,
'font-size'
,
default
=
'12'
)
self
.
optMenuFontSize
.
SetMenu
((
'10'
,
'11'
,
'12'
,
'13'
,
'14'
,
'16'
,
'18'
,
'20'
,
'22'
),
fontSize
)
##fontWeight
self
.
fontBold
.
set
(
idleConf
.
GetOption
(
'main'
,
'EditorWindow'
,
'font-bold'
,
default
=
0
,
type
=
'bool'
))
##font sample
self
.
SetFontSample
()
...
...
@@ -514,7 +592,7 @@ class ConfigDialog(Toplevel):
##indent type radibuttons
spaceIndent
=
idleConf
.
GetOption
(
'main'
,
'Indent'
,
'use-spaces'
,
default
=
1
,
type
=
'bool'
)
self
.
indent
Type
.
set
(
spaceIndent
)
self
.
indent
BySpaces
.
set
(
spaceIndent
)
##indent sizes
spaceNum
=
idleConf
.
GetOption
(
'main'
,
'Indent'
,
'num-spaces'
,
default
=
4
,
type
=
'int'
)
...
...
@@ -526,7 +604,7 @@ class ConfigDialog(Toplevel):
def
LoadThemeCfg
(
self
):
##current theme type radiobutton
self
.
themeIsBuiltin
.
set
(
idleConf
.
GetOption
(
'main'
,
'Theme'
,
'default'
,
type
=
'
int
'
,
default
=
1
))
type
=
'
bool
'
,
default
=
1
))
##currently set theme
currentOption
=
idleConf
.
CurrentTheme
()
##load available theme option menus
...
...
@@ -560,7 +638,7 @@ class ConfigDialog(Toplevel):
def
LoadKeyCfg
(
self
):
##current keys type radiobutton
self
.
keysAreDefault
.
set
(
idleConf
.
GetOption
(
'main'
,
'Keys'
,
'default'
,
type
=
'
int
'
,
default
=
1
))
type
=
'
bool
'
,
default
=
1
))
##currently set keys
currentOption
=
idleConf
.
CurrentKeys
()
##load available keyset option menus
...
...
@@ -597,6 +675,7 @@ class ConfigDialog(Toplevel):
if
newKeys
.
result
:
#new keys were specified
self
.
listBindings
.
delete
(
listIndex
)
self
.
listBindings
.
insert
(
listIndex
,
bindName
+
' - '
+
newKeys
.
result
)
self
.
keyBinding
.
set
(
newKeys
.
result
)
self
.
listBindings
.
select_set
(
listIndex
)
def
KeyBindingSelected
(
self
,
event
):
...
...
@@ -618,7 +697,7 @@ class ConfigDialog(Toplevel):
self
.
radioDisableExt
.
config
(
state
=
NORMAL
)
self
.
buttonExtConfig
.
config
(
state
=
NORMAL
)
extn
=
self
.
listExt
.
get
(
ANCHOR
)
self
.
ext
State
.
set
(
idleConf
.
GetOption
(
'extensions'
,
extn
,
'enable'
,
self
.
ext
Enabled
.
set
(
idleConf
.
GetOption
(
'extensions'
,
extn
,
'enable'
,
default
=
1
,
type
=
'bool'
))
def
LoadConfigs
(
self
):
...
...
@@ -652,9 +731,6 @@ class ConfigDialog(Toplevel):
print
configType
,
section
,
item
,
value
print
self
.
changedItems
def
AddChangedItem
(
self
,
type
,
section
,
item
,
value
):
self
.
changedItems
[
type
][
section
][
item
]
=
value
def
Cancel
(
self
):
self
.
destroy
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment