def handleNotify(event): if event.hasId('active-profile-changed'): # Disable or enable controls based on which profile is selected. if pr.getActive() is pr.getDefaults(): playButton.disable() ui.disableMenuCommand('play') ui.disableMenuCommand('view-command-line') else: playButton.enable() ui.enableMenuCommand('play') ui.enableMenuCommand('view-command-line')
def notifyHandler(event): "This is called when a Notify event is broadcasted." # We are interested in notifications that concern profiles. if event.hasId("quit"): # Save the current profile configuration. pr.save() elif event.hasId("language-changed"): # Just update the Defaults, because it's the only profile whose name # is translated. addListItem(pr.getDefaults()) elif event.hasId("profile-updated"): # A profile has been loaded or updated. Make sure it's in the # list. p = event.getProfile() # The Defaults profile should be first in the list. if p is pr.getDefaults(): destIndex = 0 else: # The new profile will be added to wherever the widget # wants to put it. destIndex = None if profileList.hasItem(p.getId()): # This already exists in the list. if p.isHidden(): # Remove it completely. profileList.removeItem(p.getId()) # Update the selected item since the active one is now # hidden. pr.setActive(pr.get(profileList.getSelectedItem())) else: # Just update the item. addListItem(p) elif not p.isHidden(): # The item does not yet exist in the list. addListItem(p, toIndex=destIndex) elif event.hasId("active-profile-changed") and not profileListDisabled: # Highlight the correct profile in the list. profileList.selectItem(pr.getActive().getId()) if pr.getActive() is pr.getDefaults(): if deleteButton: deleteButton.disable() if dupeButton: dupeButton.disable() ui.disableMenuCommand("rename-profile") ui.disableMenuCommand("delete-profile") ui.disableMenuCommand("hide-profile") ui.disableMenuCommand("duplicate-profile") profileList.setPopupMenu(defaultsMenu) else: isSystem = pr.getActive().isSystemProfile() if deleteButton: deleteButton.enable(not isSystem) if dupeButton: dupeButton.enable() ui.enableMenuCommand("rename-profile") ui.enableMenuCommand("delete-profile", not isSystem) ui.enableMenuCommand("hide-profile") ui.enableMenuCommand("duplicate-profile") if isSystem: menu = systemMenu else: menu = normalMenu profileList.setPopupMenu(menu) # Update the banner image. if bannerImage: bannerImage.setImage(pr.getActive().getBanner()) elif event.hasId("profile-list-selected"): # Change the currently active profile. p = pr.get(event.getSelection()) pr.setActive(p) # Double-clicking causes a Play command. if event.isDoubleClick() and p is not pr.getDefaults(): events.sendAfter(events.Command("play"))
def notifyHandler(event): "This is called when a Notify event is broadcasted." # We are interested in notifications that concern profiles. if event.hasId('quit'): # Save the current profile configuration. pr.save() elif event.hasId('language-changed'): # Just update the Defaults, because it's the only profile whose name # is translated. addListItem(pr.getDefaults()) elif event.hasId('profile-updated'): # A profile has been loaded or updated. Make sure it's in the # list. p = event.getProfile() # The Defaults profile should be first in the list. if p is pr.getDefaults(): destIndex = 0 else: # The new profile will be added to wherever the widget # wants to put it. destIndex = None if profileList.hasItem(p.getId()): # This already exists in the list. if p.isHidden(): # Remove it completely. profileList.removeItem(p.getId()) # Update the selected item since the active one is now # hidden. pr.setActive(pr.get(profileList.getSelectedItem())) else: # Just update the item. addListItem(p) elif not p.isHidden(): # The item does not yet exist in the list. addListItem(p, toIndex=destIndex) elif event.hasId('active-profile-changed') and not profileListDisabled: # Highlight the correct profile in the list. profileList.selectItem(pr.getActive().getId()) if pr.getActive() is pr.getDefaults(): if deleteButton: deleteButton.disable() if dupeButton: dupeButton.disable() ui.disableMenuCommand('rename-profile') ui.disableMenuCommand('delete-profile') ui.disableMenuCommand('hide-profile') ui.disableMenuCommand('duplicate-profile') profileList.setPopupMenu(defaultsMenu) else: isSystem = pr.getActive().isSystemProfile() if deleteButton: deleteButton.enable(not isSystem) if dupeButton: dupeButton.enable() ui.enableMenuCommand('rename-profile') ui.enableMenuCommand('delete-profile', not isSystem) ui.enableMenuCommand('hide-profile') ui.enableMenuCommand('duplicate-profile') if isSystem: menu = systemMenu else: menu = normalMenu profileList.setPopupMenu(menu) # Update the banner image. if bannerImage: bannerImage.setImage(pr.getActive().getBanner()) elif event.hasId('profile-list-selected'): # Change the currently active profile. p = pr.get(event.getSelection()) pr.setActive(p) # Double-clicking causes a Play command. if event.isDoubleClick() and p is not pr.getDefaults(): events.sendAfter(events.Command('play'))