[Idle-dev] CVS: idle configDialog.py,1.26,1.27 config-main.def,1.7,1.8

Stephen M. Gava elguavas@users.sourceforge.net
Mon, 21 Jan 2002 21:56:42 -0800


Update of /cvsroot/idlefork/idle
In directory usw-pr-cvs1:/tmp/cvs-serv8402

Modified Files:
	configDialog.py config-main.def 
Log Message:
further work on config saving


Index: configDialog.py
===================================================================
RCS file: /cvsroot/idlefork/idle/configDialog.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -r1.26 -r1.27
*** configDialog.py	2002/01/21 06:38:21	1.26
--- configDialog.py	2002/01/22 05:56:40	1.27
***************
*** 59,62 ****
--- 59,63 ----
          #self.bind('<F1>',self.Help) #context help
          self.LoadConfigs()
+         self.AttachVarCallbacks() #avoid callbacks during LoadConfigs 
          self.wait_window()
          
***************
*** 89,96 ****
          #tkVars
          self.fontSize=StringVar(self)
!         self.fontBold=StringVar(self)
          self.spaceNum=IntVar(self)
          self.tabCols=IntVar(self)
!         self.indentType=IntVar(self) 
          self.editFont=tkFont.Font(self,('courier',12,'normal'))
          ##widget creation
--- 90,98 ----
          #tkVars
          self.fontSize=StringVar(self)
!         self.fontBold=BooleanVar(self)
!         self.fontName=StringVar(self)
          self.spaceNum=IntVar(self)
          self.tabCols=IntVar(self)
!         self.indentBySpaces=BooleanVar(self) 
          self.editFont=tkFont.Font(self,('courier',12,'normal'))
          ##widget creation
***************
*** 108,112 ****
          self.listFontName=Listbox(frameFontName,height=5,takefocus=FALSE,
                  exportselection=FALSE)
!         self.listFontName.bind('<<ListboxSelect>>',self.SetFontSampleBinding)
          scrollFont=Scrollbar(frameFontName)
          scrollFont.config(command=self.listFontName.yview)
--- 110,114 ----
          self.listFontName=Listbox(frameFontName,height=5,takefocus=FALSE,
                  exportselection=FALSE)
!         self.listFontName.bind('<ButtonRelease-1>',self.OnListFontButtonRelease)
          scrollFont=Scrollbar(frameFontName)
          scrollFont.config(command=self.listFontName.yview)
***************
*** 114,120 ****
          labelFontSizeTitle=Label(frameFontParam,text='Size :')
          self.optMenuFontSize=DynOptionMenu(frameFontParam,self.fontSize,None,
!             command=self.SetFontSampleBinding)
          checkFontBold=Checkbutton(frameFontParam,variable=self.fontBold,
!             onvalue='Bold',offvalue='',text='Bold')
          frameFontSample=Frame(frameFont,relief=SOLID,borderwidth=1)
          self.labelFontSample=Label(frameFontSample,
--- 116,122 ----
          labelFontSizeTitle=Label(frameFontParam,text='Size :')
          self.optMenuFontSize=DynOptionMenu(frameFontParam,self.fontSize,None,
!             command=self.SetFontSample)
          checkFontBold=Checkbutton(frameFontParam,variable=self.fontBold,
!             onvalue=1,offvalue=0,text='Bold',command=self.SetFontSample)
          frameFontSample=Frame(frameFont,relief=SOLID,borderwidth=1)
          self.labelFontSample=Label(frameFontSample,
***************
*** 127,133 ****
          labelIndentTypeTitle=Label(frameIndentType,
                  text='Choose indentation type :')
!         radioUseSpaces=Radiobutton(frameIndentType,variable=self.indentType,
              value=1,text='Tab key inserts spaces')
!         radioUseTabs=Radiobutton(frameIndentType,variable=self.indentType,
              value=0,text='Tab key inserts tabs')
          labelIndentSizeTitle=Label(frameIndentSize,
--- 129,135 ----
          labelIndentTypeTitle=Label(frameIndentType,
                  text='Choose indentation type :')
!         radioUseSpaces=Radiobutton(frameIndentType,variable=self.indentBySpaces,
              value=1,text='Tab key inserts spaces')
!         radioUseTabs=Radiobutton(frameIndentType,variable=self.indentBySpaces,
              value=0,text='Tab key inserts tabs')
          labelIndentSizeTitle=Label(frameIndentSize,
***************
*** 174,183 ****
          self.builtinTheme=StringVar(self)
          self.customTheme=StringVar(self)
!         self.fgHilite=IntVar(self)
          self.colour=StringVar(self)
          self.fontName=StringVar(self)
!         self.themeIsBuiltin=IntVar(self) 
          self.highlightTarget=StringVar(self)
-         self.highlightTarget.trace_variable('w',self.SetHighlightTargetBinding)
          ##widget creation
          #body frame
--- 176,184 ----
          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)
          ##widget creation
          #body frame
***************
*** 265,273 ****
          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) 
          ##widget creation
          #body frame
--- 266,271 ----
          self.builtinKeys=StringVar(self)
          self.customKeys=StringVar(self)
!         self.keysAreDefault=BooleanVar(self) 
!         self.keyBinding=StringVar(self)
          ##widget creation
          #body frame
***************
*** 331,338 ****
      def CreatePageGeneral(self):
          #tkVars        
-         self.runType=IntVar(self)       
          self.winWidth=StringVar(self)       
          self.winHeight=StringVar(self)
          self.startupEdit=IntVar(self)       
          #widget creation
          #body
--- 329,336 ----
      def CreatePageGeneral(self):
          #tkVars        
          self.winWidth=StringVar(self)       
          self.winHeight=StringVar(self)
          self.startupEdit=IntVar(self)       
+         self.extEnabled=IntVar(self)       
          #widget creation
          #body
***************
*** 369,375 ****
          self.listExt.bind('<ButtonRelease-1>',self.ExtensionSelected)
          labelExtSetTitle=Label(frameExtSet,text='Settings')
!         self.radioEnableExt=Radiobutton(frameExtSet,variable=self.startupEdit,
              value=1,text="enabled",state=DISABLED)
!         self.radioDisableExt=Radiobutton(frameExtSet,variable=self.startupEdit,
              value=0,text="disabled",state=DISABLED)
          self.buttonExtConfig=Button(frameExtSet,text='Configure',state=DISABLED)
--- 367,373 ----
          self.listExt.bind('<ButtonRelease-1>',self.ExtensionSelected)
          labelExtSetTitle=Label(frameExtSet,text='Settings')
!         self.radioEnableExt=Radiobutton(frameExtSet,variable=self.extEnabled,
              value=1,text="enabled",state=DISABLED)
!         self.radioDisableExt=Radiobutton(frameExtSet,variable=self.extEnabled,
              value=0,text="disabled",state=DISABLED)
          self.buttonExtConfig=Button(frameExtSet,text='Configure',state=DISABLED)
***************
*** 403,406 ****
--- 401,471 ----
          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':{}}
***************
*** 441,444 ****
--- 506,510 ----
              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'
***************
*** 447,456 ****
                  (self.themeElements[target][0],),{plane:colourString})
      
!     def SetFontSampleBinding(self,event):
          self.SetFontSample()
          
!     def SetFontSample(self):
!         self.editFont.config(size=self.fontSize.get(),weight=NORMAL,
!             family=self.listFontName.get(self.listFontName.curselection()[0]))
  
      def SetHighlightTargetBinding(self,*args):
--- 513,528 ----
                  (self.themeElements[target][0],),{plane:colourString})
      
!     def OnListFontButtonRelease(self,event):
!         self.fontName.set(self.listFontName.get(ANCHOR))
          self.SetFontSample()
          
!     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):
***************
*** 500,511 ****
          configuredFont=idleConf.GetOption('main','EditorWindow','font',
                  default='courier')
          if configuredFont in fonts:
              currentFontIndex=fonts.index(configuredFont)
              self.listFontName.see(currentFontIndex)
              self.listFontName.select_set(currentFontIndex)
          ##font size dropdown
!         fontSize=idleConf.GetOption('main','EditorWindow','font-size',default='12')
          self.optMenuFontSize.SetMenu(('10','11','12','13','14',
                  '16','18','20','22'),fontSize )
          ##font sample 
          self.SetFontSample()
--- 572,589 ----
          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')
          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()
***************
*** 515,519 ****
          spaceIndent=idleConf.GetOption('main','Indent','use-spaces',
                  default=1,type='bool')
!         self.indentType.set(spaceIndent)
          ##indent sizes
          spaceNum=idleConf.GetOption('main','Indent','num-spaces',
--- 593,597 ----
          spaceIndent=idleConf.GetOption('main','Indent','use-spaces',
                  default=1,type='bool')
!         self.indentBySpaces.set(spaceIndent)
          ##indent sizes
          spaceNum=idleConf.GetOption('main','Indent','num-spaces',
***************
*** 527,531 ****
          ##current theme type radiobutton
          self.themeIsBuiltin.set(idleConf.GetOption('main','Theme','default',
!             type='int',default=1))
          ##currently set theme
          currentOption=idleConf.CurrentTheme()
--- 605,609 ----
          ##current theme type radiobutton
          self.themeIsBuiltin.set(idleConf.GetOption('main','Theme','default',
!             type='bool',default=1))
          ##currently set theme
          currentOption=idleConf.CurrentTheme()
***************
*** 561,565 ****
          ##current keys type radiobutton
          self.keysAreDefault.set(idleConf.GetOption('main','Keys','default',
!             type='int',default=1))
          ##currently set keys
          currentOption=idleConf.CurrentKeys()
--- 639,643 ----
          ##current keys type radiobutton
          self.keysAreDefault.set(idleConf.GetOption('main','Keys','default',
!             type='bool',default=1))
          ##currently set keys
          currentOption=idleConf.CurrentKeys()
***************
*** 598,601 ****
--- 676,680 ----
              self.listBindings.delete(listIndex)
              self.listBindings.insert(listIndex,bindName+' - '+newKeys.result)
+             self.keyBinding.set(newKeys.result)
          self.listBindings.select_set(listIndex)
  
***************
*** 619,623 ****
          self.buttonExtConfig.config(state=NORMAL)
          extn=self.listExt.get(ANCHOR)
!         self.extState.set(idleConf.GetOption('extensions',extn,'enable',
                  default=1,type='bool'))
      
--- 698,702 ----
          self.buttonExtConfig.config(state=NORMAL)
          extn=self.listExt.get(ANCHOR)
!         self.extEnabled.set(idleConf.GetOption('extensions',extn,'enable',
                  default=1,type='bool'))
      
***************
*** 653,659 ****
                      print self.changedItems
                      
-     def AddChangedItem(self,type,section,item,value):
-         self.changedItems[type][section][item]=value
-     
      def Cancel(self):
          self.destroy()
--- 732,735 ----

Index: config-main.def
===================================================================
RCS file: /cvsroot/idlefork/idle/config-main.def,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** config-main.def	2002/01/21 06:38:21	1.7
--- config-main.def	2002/01/22 05:56:40	1.8
***************
*** 52,55 ****
--- 52,56 ----
  font= courier
  font-size= 12
+ font-bold= 0
  
  [Indent]