[Python-checkins] cpython (3.4): Issue #22068: Don't create self reference cycles in idlelib.ConfigDialog.

terry.reedy python-checkins at python.org
Thu Jul 31 01:25:13 CEST 2014


http://hg.python.org/cpython/rev/1927f47a1838
changeset:   91944:1927f47a1838
branch:      3.4
parent:      91940:9474f2971855
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Wed Jul 30 19:24:32 2014 -0400
summary:
  Issue #22068: Don't create self reference cycles in idlelib.ConfigDialog.

files:
  Lib/idlelib/configDialog.py |  67 ++++++++++++++----------
  1 files changed, 38 insertions(+), 29 deletions(-)


diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -30,6 +30,7 @@
         _utest - bool, don't wait_window when running unittest
         """
         Toplevel.__init__(self, parent)
+        self.parent = parent
         self.wm_withdraw()
 
         self.configure(borderwidth=5)
@@ -61,7 +62,6 @@
         self.transient(parent)
         self.grab_set()
         self.protocol("WM_DELETE_WINDOW", self.Cancel)
-        self.parent = parent
         self.tabPages.focus_set()
         #key bindings for this dialog
         #self.bind('<Escape>',self.Cancel) #dismiss dialog, no save
@@ -112,12 +112,13 @@
         self.tabPages.pack(side=TOP,expand=TRUE,fill=BOTH)
 
     def CreatePageFontTab(self):
-        #tkVars
-        self.fontSize=StringVar(self)
-        self.fontBold=BooleanVar(self)
-        self.fontName=StringVar(self)
-        self.spaceNum=IntVar(self)
-        self.editFont=tkFont.Font(self,('courier',10,'normal'))
+        parent = self.parent
+        self.fontSize = StringVar(parent)
+        self.fontBold = BooleanVar(parent)
+        self.fontName = StringVar(parent)
+        self.spaceNum = IntVar(parent)
+        self.editFont = tkFont.Font(parent,('courier',10,'normal'))
+
         ##widget creation
         #body frame
         frame=self.tabPages.pages['Fonts/Tabs'].frame
@@ -153,6 +154,7 @@
         self.scaleSpaceNum=Scale(frameIndentSize, variable=self.spaceNum,
                                  orient='horizontal',
                                  tickinterval=2, from_=2, to=16)
+
         #widget packing
         #body
         frameFont.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -175,13 +177,15 @@
         return frame
 
     def CreatePageHighlight(self):
-        self.builtinTheme=StringVar(self)
-        self.customTheme=StringVar(self)
-        self.fgHilite=BooleanVar(self)
-        self.colour=StringVar(self)
-        self.fontName=StringVar(self)
-        self.themeIsBuiltin=BooleanVar(self)
-        self.highlightTarget=StringVar(self)
+        parent = self.parent
+        self.builtinTheme = StringVar(parent)
+        self.customTheme = StringVar(parent)
+        self.fgHilite = BooleanVar(parent)
+        self.colour = StringVar(parent)
+        self.fontName = StringVar(parent)
+        self.themeIsBuiltin = BooleanVar(parent)
+        self.highlightTarget = StringVar(parent)
+
         ##widget creation
         #body frame
         frame=self.tabPages.pages['Highlighting'].frame
@@ -240,6 +244,7 @@
             self.customTheme,None,command=None)
         self.buttonDeleteCustomTheme=Button(frameTheme,text='Delete Custom Theme',
                 command=self.DeleteCustomTheme)
+
         ##widget packing
         #body
         frameCustom.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -264,12 +269,13 @@
         return frame
 
     def CreatePageKeys(self):
-        #tkVars
-        self.bindingTarget=StringVar(self)
-        self.builtinKeys=StringVar(self)
-        self.customKeys=StringVar(self)
-        self.keysAreBuiltin=BooleanVar(self)
-        self.keyBinding=StringVar(self)
+        parent = self.parent
+        self.bindingTarget = StringVar(parent)
+        self.builtinKeys = StringVar(parent)
+        self.customKeys = StringVar(parent)
+        self.keysAreBuiltin = BooleanVar(parent)
+        self.keyBinding = StringVar(parent)
+
         ##widget creation
         #body frame
         frame=self.tabPages.pages['Keys'].frame
@@ -307,6 +313,7 @@
                 command=self.DeleteCustomKeys)
         buttonSaveCustomKeys=Button(frames[1],
                 text='Save as New Custom Key Set',command=self.SaveAsNewKeySet)
+
         ##widget packing
         #body
         frameCustom.pack(side=BOTTOM,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -333,15 +340,16 @@
         return frame
 
     def CreatePageGeneral(self):
-        #tkVars
-        self.winWidth=StringVar(self)
-        self.winHeight=StringVar(self)
-        self.paraWidth=StringVar(self)
-        self.startupEdit=IntVar(self)
-        self.autoSave=IntVar(self)
-        self.encoding=StringVar(self)
-        self.userHelpBrowser=BooleanVar(self)
-        self.helpBrowser=StringVar(self)
+        parent = self.parent
+        self.winWidth = StringVar(parent)
+        self.winHeight = StringVar(parent)
+        self.paraWidth = StringVar(parent)
+        self.startupEdit = IntVar(parent)
+        self.autoSave = IntVar(parent)
+        self.encoding = StringVar(parent)
+        self.userHelpBrowser = BooleanVar(parent)
+        self.helpBrowser = StringVar(parent)
+
         #widget creation
         #body
         frame=self.tabPages.pages['General'].frame
@@ -395,6 +403,7 @@
                 width=8,command=self.HelpListItemAdd)
         self.buttonHelpListRemove=Button(frameHelpListButtons,text='Remove',
                 state=DISABLED,width=8,command=self.HelpListItemRemove)
+
         #widget packing
         #body
         frameRun.pack(side=TOP,padx=5,pady=5,fill=X)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list