def LoadThemeCfg(self): self.themeIsBuiltin.set(idleConf.GetOption('main', 'Theme', 'default', type='bool', default=1)) currentOption = idleConf.CurrentTheme() if self.themeIsBuiltin.get(): itemList = idleConf.GetSectionList('default', 'highlight') itemList.sort() self.optMenuThemeBuiltin.SetMenu(itemList, currentOption) itemList = idleConf.GetSectionList('user', 'highlight') itemList.sort() if not itemList: self.radioThemeCustom.config(state=DISABLED) self.customTheme.set('- no custom themes -') else: self.optMenuThemeCustom.SetMenu(itemList, itemList[0]) else: itemList = idleConf.GetSectionList('user', 'highlight') itemList.sort() self.optMenuThemeCustom.SetMenu(itemList, currentOption) itemList = idleConf.GetSectionList('default', 'highlight') itemList.sort() self.optMenuThemeBuiltin.SetMenu(itemList, itemList[0]) self.SetThemeType() themeNames = self.themeElements.keys() themeNames.sort(key=lambda x: self.themeElements[x][1]) self.optMenuHighlightTarget.SetMenu(themeNames, themeNames[0]) self.PaintThemeSample() self.SetHighlightTarget()
def GetDefaultItems(self): dItems = {'main': {}, 'highlight': {}, 'keys': {}, 'extensions': {}} for configType in dItems.keys(): sections = idleConf.GetSectionList('default', configType) for section in sections: dItems[configType][section] = {} options = idleConf.defaultCfg[configType].GetOptionList(section) for option in options: dItems[configType][section][option] = idleConf.defaultCfg[configType].Get(section, option) return dItems
def LoadKeyCfg(self): self.keysAreBuiltin.set(idleConf.GetOption('main', 'Keys', 'default', type='bool', default=1)) currentOption = idleConf.CurrentKeys() if self.keysAreBuiltin.get(): itemList = idleConf.GetSectionList('default', 'keys') itemList.sort() self.optMenuKeysBuiltin.SetMenu(itemList, currentOption) itemList = idleConf.GetSectionList('user', 'keys') itemList.sort() if not itemList: self.radioKeysCustom.config(state=DISABLED) self.customKeys.set('- no custom keys -') else: self.optMenuKeysCustom.SetMenu(itemList, itemList[0]) else: itemList = idleConf.GetSectionList('user', 'keys') itemList.sort() self.optMenuKeysCustom.SetMenu(itemList, currentOption) itemList = idleConf.GetSectionList('default', 'keys') itemList.sort() self.optMenuKeysBuiltin.SetMenu(itemList, itemList[0]) self.SetKeysType() keySetName = idleConf.CurrentKeys() self.LoadKeysList(keySetName)
def CreateNewTheme(self, newThemeName): if self.themeIsBuiltin.get(): themeType = 'default' themeName = self.builtinTheme.get() else: themeType = 'user' themeName = self.customTheme.get() newTheme = idleConf.GetThemeDict(themeType, themeName) if themeName in self.changedItems['highlight'].keys(): themeChanges = self.changedItems['highlight'][themeName] for element in themeChanges.keys(): newTheme[element] = themeChanges[element] self.SaveNewTheme(newThemeName, newTheme) customThemeList = idleConf.GetSectionList('user', 'highlight') customThemeList.sort() self.optMenuThemeCustom.SetMenu(customThemeList, newThemeName) self.themeIsBuiltin.set(0) self.SetThemeType()
def DeleteCustomTheme(self): themeName = self.customTheme.get() if not tkMessageBox.askyesno('Delete Theme', 'Are you sure you wish ' + 'to delete the theme %r ?' % (themeName,), parent=self): return idleConf.userCfg['highlight'].remove_section(themeName) if themeName in self.changedItems['highlight']: del self.changedItems['highlight'][themeName] idleConf.userCfg['highlight'].Save() itemList = idleConf.GetSectionList('user', 'highlight') itemList.sort() if not itemList: self.radioThemeCustom.config(state=DISABLED) self.optMenuThemeCustom.SetMenu(itemList, '- no custom themes -') else: self.optMenuThemeCustom.SetMenu(itemList, itemList[0]) self.themeIsBuiltin.set(idleConf.defaultCfg['main'].Get('Theme', 'default')) self.builtinTheme.set(idleConf.defaultCfg['main'].Get('Theme', 'name')) self.Apply() self.SetThemeType()
def DeleteCustomKeys(self): keySetName = self.customKeys.get() if not tkMessageBox.askyesno('Delete Key Set', 'Are you sure you wish ' + 'to delete the key set %r ?' % keySetName, parent=self): return idleConf.userCfg['keys'].remove_section(keySetName) if keySetName in self.changedItems['keys']: del self.changedItems['keys'][keySetName] idleConf.userCfg['keys'].Save() itemList = idleConf.GetSectionList('user', 'keys') itemList.sort() if not itemList: self.radioKeysCustom.config(state=DISABLED) self.optMenuKeysCustom.SetMenu(itemList, '- no custom keys -') else: self.optMenuKeysCustom.SetMenu(itemList, itemList[0]) self.keysAreBuiltin.set(idleConf.defaultCfg['main'].Get('Keys', 'default')) self.builtinKeys.set(idleConf.defaultCfg['main'].Get('Keys', 'name')) self.Apply() self.SetKeysType()
def CreateNewKeySet(self, newKeySetName): if self.keysAreBuiltin.get(): prevKeySetName = self.builtinKeys.get() else: prevKeySetName = self.customKeys.get() prevKeys = idleConf.GetCoreKeys(prevKeySetName) newKeys = {} for event in prevKeys.keys(): eventName = event[2:-2] binding = string.join(prevKeys[event]) newKeys[eventName] = binding if prevKeySetName in self.changedItems['keys'].keys(): keySetChanges = self.changedItems['keys'][prevKeySetName] for event in keySetChanges.keys(): newKeys[event] = keySetChanges[event] self.SaveNewKeySet(newKeySetName, newKeys) customKeyList = idleConf.GetSectionList('user', 'keys') customKeyList.sort() self.optMenuKeysCustom.SetMenu(customKeyList, newKeySetName) self.keysAreBuiltin.set(0) self.SetKeysType()
def GetNewThemeName(self, message): usedNames = idleConf.GetSectionList('user', 'highlight') + idleConf.GetSectionList('default', 'highlight') newTheme = GetCfgSectionNameDialog(self, 'New Custom Theme', message, usedNames).result return newTheme
def GetNewKeysName(self, message): usedNames = idleConf.GetSectionList('user', 'keys') + idleConf.GetSectionList('default', 'keys') newKeySet = GetCfgSectionNameDialog(self, 'New Custom Key Set', message, usedNames).result return newKeySet