[3.6] bpo-31083: IDLE: Describe the Page classes in configdialog (GH-2965) (#2973)

Add template as comment. Update existing classes to match outline.
Initial patch by Cheryl Sabella.
(cherry picked from commit 6f446be)
This commit is contained in:
Terry Jan Reedy 2017-08-01 01:00:33 -04:00 committed by GitHub
parent f9463b8cc9
commit 48fcc72c83
2 changed files with 30 additions and 15 deletions

View File

@ -1382,11 +1382,27 @@ class ConfigDialog(Toplevel):
self.ext_userCfg.Save() self.ext_userCfg.Save()
# class TabPage(Frame): # A template for Page classes.
# def __init__(self, master):
# super().__init__(master)
# self.create_page_tab()
# self.load_tab_cfg()
# def create_page_tab(self):
# # Define tk vars and register var and callback with tracers.
# # Create subframes and widgets.
# # Pack widgets.
# def load_tab_cfg(self):
# # Initialize widgets with data from idleConf.
# def var_changed_var_name():
# # For each tk var that needs other than default callback.
# def other_methods():
# # Define tab-specific behavior.
class FontPage(Frame): class FontPage(Frame):
def __init__(self, parent, highpage): def __init__(self, master, highpage):
super().__init__(parent) super().__init__(master)
self.parent = parent
self.highlight_sample = highpage.highlight_sample self.highlight_sample = highpage.highlight_sample
self.create_page_font_tab() self.create_page_font_tab()
self.load_font_cfg() self.load_font_cfg()
@ -1439,19 +1455,17 @@ class FontPage(Frame):
indent_title: Label indent_title: Label
(*)indent_scale: Scale - space_num (*)indent_scale: Scale - space_num
""" """
parent = self.parent self.font_name = tracers.add(StringVar(self), self.var_changed_font)
self.font_name = tracers.add(StringVar(parent), self.var_changed_font) self.font_size = tracers.add(StringVar(self), self.var_changed_font)
self.font_size = tracers.add(StringVar(parent), self.var_changed_font) self.font_bold = tracers.add(BooleanVar(self), self.var_changed_font)
self.font_bold = tracers.add(BooleanVar(parent), self.var_changed_font)
self.space_num = tracers.add(IntVar(self), ('main', 'Indent', 'num-spaces')) self.space_num = tracers.add(IntVar(self), ('main', 'Indent', 'num-spaces'))
# Create widgets: # Create widgets:
# body and body section frames. # body and body section frames.
frame = self
frame_font = LabelFrame( frame_font = LabelFrame(
frame, borderwidth=2, relief=GROOVE, text=' Base Editor Font ') self, borderwidth=2, relief=GROOVE, text=' Base Editor Font ')
frame_indent = LabelFrame( frame_indent = LabelFrame(
frame, borderwidth=2, relief=GROOVE, text=' Indentation Width ') self, borderwidth=2, relief=GROOVE, text=' Indentation Width ')
# frame_font. # frame_font.
frame_font_name = Frame(frame_font) frame_font_name = Frame(frame_font)
frame_font_param = Frame(frame_font) frame_font_param = Frame(frame_font)
@ -1471,7 +1485,7 @@ class FontPage(Frame):
frame_font_param, variable=self.font_bold, frame_font_param, variable=self.font_bold,
onvalue=1, offvalue=0, text='Bold') onvalue=1, offvalue=0, text='Bold')
frame_font_sample = Frame(frame_font, relief=SOLID, borderwidth=1) frame_font_sample = Frame(frame_font, relief=SOLID, borderwidth=1)
temp_font = tkFont.Font(parent, ('courier', 10, 'normal')) temp_font = tkFont.Font(self, ('courier', 10, 'normal'))
self.font_sample = Label( self.font_sample = Label(
frame_font_sample, justify=LEFT, font=temp_font, frame_font_sample, justify=LEFT, font=temp_font,
text='AaBbCcDdEe\nFfGgHhIiJj\n1234567890\n#:+=(){}[]') text='AaBbCcDdEe\nFfGgHhIiJj\n1234567890\n#:+=(){}[]')
@ -1503,8 +1517,6 @@ class FontPage(Frame):
indent_title.pack(side=TOP, anchor=W, padx=5) indent_title.pack(side=TOP, anchor=W, padx=5)
self.indent_scale.pack(side=TOP, padx=5, fill=X) self.indent_scale.pack(side=TOP, padx=5, fill=X)
return frame
def load_font_cfg(self): def load_font_cfg(self):
"""Load current configuration settings for the font options. """Load current configuration settings for the font options.
@ -1597,8 +1609,8 @@ class FontPage(Frame):
class GenPage(Frame): class GenPage(Frame):
def __init__(self, parent): def __init__(self, master):
super().__init__(parent) super().__init__(master)
self.create_page_general() self.create_page_general()
self.load_general_cfg() self.load_general_cfg()

View File

@ -0,0 +1,3 @@
IDLE - Add an outline of a TabPage class in configdialog.
Update existing classes to match outline.
Initial patch by Cheryl Sabella.