def addToProfileMenu( profileSelection, profileType, repository ): "Add a profile menu." pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() pluginModule = skeinforge_profile.getCraftTypePluginModule() profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository() ) for pluginFileName in pluginFileNames: skeinforge_profile.ProfileTypeMenuRadio().getFromMenuButtonDisplay( profileType, pluginFileName, repository, craftTypeName == pluginFileName ) for profileName in profilePluginSettings.profileList.value: skeinforge_profile.ProfileSelectionMenuRadio().getFromMenuButtonDisplay( profileSelection, profileName, repository, profileName == profilePluginSettings.profileListbox.value )
def addSubmenus( craftTypeName, menu, pluginFileName, pluginPath, profileRadioVar ): "Add a tool plugin menu." submenu = settings.Tkinter.Menu( menu, tearoff = 0 ) menu.add_cascade( label = pluginFileName.capitalize(), menu = submenu ) settings.ToolDialog().addPluginToMenu( submenu, pluginPath ) submenu.add_separator() pluginModule = skeinforge_profile.getCraftTypePluginModule( pluginFileName ) profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository() ) isSelected = ( craftTypeName == pluginFileName ) for profileName in profilePluginSettings.profileList.value: value = isSelected and profileName == profilePluginSettings.profileListbox.value ProfileMenuRadio( pluginFileName, submenu, profileName, profileRadioVar, value )
def clickRadio( self ): "Workaround for Tkinter bug, invoke and set the value when clicked." if not self.activate: return self.radioVar.set( self.profileJoinName ) pluginModule = skeinforge_profile.getCraftTypePluginModule( self.profilePluginFileName ) profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository() ) profilePluginSettings.profileListbox.value = self.name settings.writeSettings( profilePluginSettings ) profileSettings = skeinforge_profile.getReadProfileRepository() plugins = profileSettings.craftRadios for plugin in plugins: plugin.value = ( plugin.name == self.profilePluginFileName ) settings.writeSettings( profileSettings ) skeinforge_profile.updateProfileSaveListeners()
def addSubmenus(craftTypeName, menu, pluginFileName, pluginPath, profileRadioVar): "Add a tool plugin menu." submenu = settings.Tkinter.Menu(menu, tearoff=0) menu.add_cascade(label=pluginFileName.capitalize(), menu=submenu) settings.ToolDialog().addPluginToMenu(submenu, pluginPath) submenu.add_separator() pluginModule = skeinforge_profile.getCraftTypePluginModule(pluginFileName) profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository()) isSelected = (craftTypeName == pluginFileName) for profileName in profilePluginSettings.profileList.value: value = isSelected and profileName == profilePluginSettings.profileListbox.value ProfileMenuRadio(pluginFileName, submenu, profileName, profileRadioVar, value)
def addToProfileMenu(profileSelection, profileType, repository): "Add a profile menu." pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() pluginModule = skeinforge_profile.getCraftTypePluginModule() profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository()) for pluginFileName in pluginFileNames: skeinforge_profile.ProfileTypeMenuRadio().getFromMenuButtonDisplay( profileType, pluginFileName, repository, craftTypeName == pluginFileName) for profileName in profilePluginSettings.profileList.value: skeinforge_profile.ProfileSelectionMenuRadio( ).getFromMenuButtonDisplay( profileSelection, profileName, repository, profileName == profilePluginSettings.profileListbox.value)
def clickRadio(self): "Workaround for Tkinter bug, invoke and set the value when clicked." if not self.activate: return self.radioVar.set(self.profileJoinName) pluginModule = skeinforge_profile.getCraftTypePluginModule( self.profilePluginFileName) profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository()) profilePluginSettings.profileListbox.value = self.name settings.writeSettings(profilePluginSettings) profileSettings = skeinforge_profile.getReadProfileRepository() plugins = profileSettings.craftRadios for plugin in plugins: plugin.value = (plugin.name == self.profilePluginFileName) settings.writeSettings(profileSettings) skeinforge_profile.updateProfileSaveListeners()
def setRadioButtons(self): "Profile has been saved and craft radio plugins should be updated." craftSequence = skeinforge_profile.getCraftTypePluginModule().getCraftSequence() gridPosition = self.gridPosition.getCopy() maximumValue = False activeRadioPlugins = [] for radioPlugin in self.radioPlugins: if radioPlugin.name in craftSequence: activeRadioPlugins.append(radioPlugin) radioPlugin.incrementGridPosition(gridPosition) maximumValue = max(radioPlugin.value, maximumValue) else: radioPlugin.radiobutton.grid_remove() if not maximumValue: selectedRadioPlugin = settings.getSelectedRadioPlugin( self.repository.importantFileNames + [activeRadioPlugins[0].name], activeRadioPlugins ).setSelect() self.repository.pluginFrame.update()
def setRadioButtons(self): "Profile has been saved and craft radio plugins should be updated." craftSequence = skeinforge_profile.getCraftTypePluginModule( ).getCraftSequence() gridPosition = self.gridPosition.getCopy() maximumValue = False activeRadioPlugins = [] for radioPlugin in self.radioPlugins: if radioPlugin.name in craftSequence: activeRadioPlugins.append(radioPlugin) radioPlugin.incrementGridPosition(gridPosition) maximumValue = max(radioPlugin.value, maximumValue) else: radioPlugin.radiobutton.grid_remove() if not maximumValue: selectedRadioPlugin = settings.getSelectedRadioPlugin( self.repository.importantFileNames + [activeRadioPlugins[0].name], activeRadioPlugins).setSelect() self.repository.pluginFrame.update()
def getReadCraftSequence(): "Get profile sequence." return skeinforge_profile.getCraftTypePluginModule().getCraftSequence()