def createPopupMenu(self, pos=None): if pos is None: menu = KTextEdit.createPopupMenu(self) else: menu = KTextEdit.createPopupMenu(self, pos) #ident = menu.insertItem('Hello There', self.slotHelloThere) #if self.hasSelectedText(): # print self.selectedText() # print self.getSelection() #print 'ident', ident #menu.setItemParameter(ident, 777) env = self.trait.get_full_environment() # make a magic number to start id's on variables varcount = 1234 lookup = {} for trait, traitvars in env: tmenu = QPopupMenu(menu) menu.insertItem(trait, tmenu) keys = traitvars.keys() keys.sort() for key in keys: varcount += 1 ident = tmenu.insertItem(key, self.slotPopupMenuItemSelected) tmenu.setItemParameter(ident, varcount) lookup[varcount] = (trait, key) self.lookup = lookup menu.insertItem('Create New Variable', self.slotCreateNewVariable) return menu