Ejemplo n.º 1
0
    def edsm_iconview_contextMenuRequested(self, item, pos):
        popup_items = self.find_items_at(pos, item)

        if not popup_items:
            self._iconview.clearSelection()
            self.edsm_tools_buttongroup.setButton(0)
            return

        has_icon = False
        for item in popup_items:
            if isinstance(item, QIconViewItem):
                has_icon = True
                break

        if not has_icon:
            self._iconview.clearSelection()

        if len(popup_items) == 1:
            popup_items[0].show_popup_menu(pos)
        else:
            default_title = self.tr('Item')
            popup_menu = QPopupMenu(self)
            popup_menu.setCheckable(False)
            for item in popup_items:
                title = item.name
                if not title:
                    title = getattr(item, 'type_name', default_title)
                popup_menu.insertItem(title, item.popup_menu())
            popup_menu.popup(pos)

        self.__popup_menu_showing = True
Ejemplo n.º 2
0
class SearchByItemTypePlugin:
    def __init__(self, pluginContext):
        parentMenu = pluginContext.getPulldownMenu(
            4)  # should be the Tools menu
        self.typeMenu = QPopupMenu(parentMenu)
        iconWrapper = QIconSet(SearchByItemTypePlugin.resultIcon)
        parentMenu.insertItem(iconWrapper, _('Find Items By Type'),
                              self.typeMenu)
        parentMenu.connect(self.typeMenu, SIGNAL('activated(int)'),
                           self.doSearch)
        self.context = pluginContext
        self.context.setFileOpenCallback(self.updateTypeMenu)

    def updateTypeMenu(self):
        typeNames = self.context.getNodeFormatNames()
        self.typeMenu.clear()
        index = 0
        for name in typeNames:
            self.typeMenu.insertItem(name, index)
            index += 1

    def doSearch(self, typeIndex):
        typeName = self.context.getNodeFormatNames()[typeIndex]
        rootNode = self.context.getRootNode()
        self.context.changeSelection([rootNode
                                      ])  # move selection out of the way
        rootNode.openBranch(False)  # reset tree structure
        self.searchSubtree(rootNode, typeName)  # reconfigure tree structure
        self.context.updateViews()  # initialize widgets
        self.highlightSubtree(rootNode, typeName)  # apply highlights

    def searchSubtree(self, node, typeName):
        if node.nodeFormat.name == typeName:
            node.openParents(False)
        for child in node.childList:
            self.searchSubtree(child, typeName)

    def highlightSubtree(self, node, typeName):
        if node.nodeFormat.name == typeName:
            node.viewData.setPixmap(0, SearchByItemTypePlugin.resultIcon)
        for child in node.childList:
            self.highlightSubtree(child, typeName)

    resultIcon = QPixmap([
        "16 16 22 1", ". c none", "a c #000000", "i c #202000", "t c #454500",
        "c c #505030", "y c #777777", "x c #7e7e88", "p c #808000",
        "j c #828200", "r c #858500", "n c #888800", "v c #8c8c00",
        "b c #9090a0", "u c #969600", "q c #a4a428", "m c #abab6f",
        "o c #acac20", "w c #b4b428", "k c #b7978f", "h c #caca18",
        "# c #d7a700", "d c #ffc0a0", "................", "................",
        "................", "................", "................",
        "................", "................", "...###########..",
        "abcdddddddddddh.", "aidddddddjkkkm..", "andddddddo......",
        "apddddddq.......", "arddddd#........", "atuvvnw.........",
        "ax..............", "yy.............."
    ])
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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