Esempio n. 1
0
 def actions(self):
     # Is label an already computed reverse DNS name ?
     if self.label in ArgDataIP.DNS_CACHE.values() and self.label not in ArgDataIP.DNS_CACHE:
             resolveAction = QAction(tr('Switch to IP address mode'), None)
             resolveAction.connect(resolveAction, SIGNAL('triggered()'), self.printip)
     else:
             resolveAction = QAction(tr('Resolve reverse DNS'), None)
             resolveAction.connect(resolveAction, SIGNAL('triggered()'), self.resolve)
     return [resolveAction]
Esempio n. 2
0
class QGIS_IPython(object):

    def __init__(self, iface):
        # Save reference to the QGIS interface
        self.iface = iface
        self.kernel = None

    def initGui(self):
        self.launch_external_console = QAction(
            QIcon(":/plugins/ipython_console/icons/launch_external_python.png"),
            "External IPython Console", self.iface.mainWindow())
        self.launch_external_console.setToolTip(
            "IPython console running in an external process")
        self.launch_external_console.connect(
            self.launch_external_console,
            SIGNAL("triggered()"),
            self.launch_console)


        # Add toolbar menu item
        self.iface.pluginMenu().addAction(self.launch_external_console)
        self.iface.addToolBarIcon(self.launch_external_console)

    def init_kernel(self):
        self.kernel = InternalIPKernel()

    def unload(self):
        if not IPYTHON_LOADED:
            return

        # Remove the plugin menu item and icon.
        self.iface.pluginMenu().removeAction(self.launch_external_console)
        self.iface.removeToolBarIcon(self.launch_external_console)

        if self.kernel is not None:
            # Tear down any running consoles and then stop the kernel.
            self.kernel.cleanup_consoles()

    def launch_console(self):
        # If IPython failed to load, bail out.
        if not IPYTHON_LOADED:
            QMessageBox.warning(
                self.iface.mainWindow(),
                'Error',
                'Could not load IPython components. Please make sure IPython version 0.12 or newer is installed along with the Pygments module.'
                )
            return

        if self.kernel is None:
            self.init_kernel()

        self.kernel.new_qt_console()
Esempio n. 3
0
class QGIS_IPython(object):
    def __init__(self, iface):
        # Save reference to the QGIS interface
        self.iface = iface
        self.kernel = None

    def initGui(self):
        self.launch_external_console = QAction(
            QIcon(
                ":/plugins/ipython_console/icons/launch_external_python.png"),
            "External IPython Console", self.iface.mainWindow())
        self.launch_external_console.setToolTip(
            "IPython console running in an external process")
        self.launch_external_console.connect(self.launch_external_console,
                                             SIGNAL("triggered()"),
                                             self.launch_console)

        # Add toolbar menu item
        self.iface.pluginMenu().addAction(self.launch_external_console)
        self.iface.addToolBarIcon(self.launch_external_console)

    def init_kernel(self):
        self.kernel = InternalIPKernel()

    def unload(self):
        if not IPYTHON_LOADED:
            return

        # Remove the plugin menu item and icon.
        self.iface.pluginMenu().removeAction(self.launch_external_console)
        self.iface.removeToolBarIcon(self.launch_external_console)

        if self.kernel is not None:
            # Tear down any running consoles and then stop the kernel.
            self.kernel.cleanup_consoles()

    def launch_console(self):
        # If IPython failed to load, bail out.
        if not IPYTHON_LOADED:
            QMessageBox.warning(
                self.iface.mainWindow(), 'Error',
                'Could not load IPython components. Please make sure IPython version 0.12 or newer is installed along with the Pygments module.'
            )
            return

        if self.kernel is None:
            self.init_kernel()

        self.kernel.new_qt_console()
 def actions(self, entry, marked_objects=[]):
     actions = []
     type = entry.type
     if marked_objects:
         action = QAction("View genes on kegg website", None)
         org = set([s.split(":")[0] for s in marked_objects]).pop()
         genes = [s.split(":")[-1] for s in marked_objects]
         address = ("http://www.genome.jp/dbget-bin/www_bget?" +
                    "+".join([org] + genes))
         action.connect(action,
                        SIGNAL("triggered()"),
                        lambda toggled=False, address=address:
                            webbrowser.open(address))
         actions.append(action)
     elif hasattr(entry, "link"):
         action = QAction("View %s on KEGG website" % str(type), None)
         action.connect(action,
                        SIGNAL("triggered()"),
                        lambda toggled=False, address=entry.link: \
                            webbrowser.open(address))
         actions.append(action)
     return actions
    def handlePackageContextAction(point):
        window = QApplication.activeWindow()
        package = window.currentPackage()
        menu = QMenu(parent=window)

        install = QAction(QIcon(':/icons/installed.png'), "&Install", window.packages)
        install.connect(install, SIGNAL('triggered()'), lambda: Frontend.default().install(package))
        install.setEnabled(package.get('state', False) & (State.NonInstalled | State.AUR))

        update = QAction(QIcon(':/icons/upgrade.png'), "&Update", window.packages)
        update.connect(update, SIGNAL('triggered()'), lambda: Frontend.default().install(package, update=True))
        update.setEnabled(package.get('state', False) & State.Update)

        remove = QAction(QIcon(':/icons/stop.png'), "&Remove", window.packages)
        remove.connect(remove, SIGNAL('triggered()'), lambda: Frontend.default().remove(package))
        remove.setEnabled(package.get('state', False) & (State.Installed | State.Update))

        remove_forced = QAction(QIcon(':/icons/orphan.png'), "&Remove (force)", window.packages)
        remove_forced.connect(remove_forced, SIGNAL('triggered()'), lambda: Frontend.default().remove(package, force=True))
        remove_forced.setEnabled(package.get('state', False) & (State.Installed | State.Update))

        menu.addActions((install, update, remove, remove_forced))
        menu.exec_(window.packages.mapToGlobal(point))
Esempio n. 6
0
class bookmark(QWidget):
    def __init__(self, parent):
        QWidget.__init__(self)
        self.init(parent)
        self.initShape()

    def init(self, parent):
        self.heditor = parent
        self.items = []

        self.selectedItem = -1

    def initShape(self):
        self.vbox = QVBoxLayout()
        self.vbox.setSpacing(0)

        self.dialog = bookDiag(self)

        self.initFunctions()
        self.initTree()
        self.setLayout(self.vbox)

    def initFunctions(self):
        self.booktool = QToolBar()
        self.booktool.setObjectName("Hexedit bookmark toolbar")

        self.add = QAction(QIcon(":bookmark_add.png"), "Add bookmark",
                           self.booktool)
        self.booktool.addAction(self.add)

        self.rm = QAction(QIcon(":bookmark_rm.png"), "Remove bookmark",
                          self.booktool)
        self.booktool.addAction(self.rm)

        self.edit = QAction(QIcon(":bookmark_toolbar.png"), "Edit bookmark",
                            self.booktool)
        self.booktool.addAction(self.edit)

        #Callbacks

        self.add.connect(self.add, SIGNAL("triggered()"), self.addbook)
        self.rm.connect(self.rm, SIGNAL("triggered()"), self.rmbook)
        self.edit.connect(self.edit, SIGNAL("triggered()"), self.editbook)

        self.vbox.addWidget(self.booktool)

    def initTree(self):
        self.tree = QTreeWidget()
        self.tree.setColumnCount(5)

        headerLabels = [
            QApplication.translate("bookmark", "Address", None,
                                   QApplication.UnicodeUTF8),
            QApplication.translate("bookmark", "Length (dec)", None,
                                   QApplication.UnicodeUTF8),
            QApplication.translate("bookmark", "Length (hex)", None,
                                   QApplication.UnicodeUTF8),
            QApplication.translate("bookmark", "Hex value", None,
                                   QApplication.UnicodeUTF8),
            QApplication.translate("bookmark", "Ascii value", None,
                                   QApplication.UnicodeUTF8),
            QApplication.translate("bookmark", "Description", None,
                                   QApplication.UnicodeUTF8)
        ]

        self.tree.setHeaderLabels(headerLabels)
        self.tree.setAlternatingRowColors(True)

        self.connect(self.tree, SIGNAL("itemClicked(QTreeWidgetItem*,int)"),
                     self.treeClicked)
        self.connect(self.tree,
                     SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"),
                     self.treeDoubleClicked)
        self.vbox.addWidget(self.tree)

    #CALLBACKS

    def treeClicked(self, item, col):
        self.selectedItem = item

    def treeDoubleClicked(self, item, col):
        self.selectedItem = item
        add = QString(item.text(0))
        off = add.toULongLong(16)
        if off[1]:
            self.heditor.readOffset(off[0])


#            self.heditor.selection.offset = off[0]
#            self.heditor.whex.hexcursor.update()
#            self.heditor.whex.asciicursor.update()

    def getSelectedItemRow(self, address):
        cp = 0
        for item in self.items:
            if item.text(0) == address:
                return cp
            cp += 1
        return -1

    def addbook(self):
        self.dialog.setInformations()
        ret = self.dialog.exec_()
        if ret == 1:
            #XXXCheck if offsetis present
            item = QTreeWidgetItem(self.tree)
            address = self.dialog.address.text()
            declen = self.dialog.lendec.text()
            hexlen = self.dialog.lenhex.text()
            hexval = self.dialog.hexvalue.text()
            asciival = self.dialog.asciivalue.text()
            description = self.dialog.description.text()

            item.setText(0, address)
            item.setText(1, declen)
            item.setText(2, hexlen)
            item.setText(3, hexval)
            item.setText(4, asciival)
            item.setText(5, description)
            self.items.append(item)

    def rmbook(self):
        if (self.selectedItem != -1) and len(self.items) > 0:
            row = self.getSelectedItemRow(self.selectedItem.text(0))
            self.tree.takeTopLevelItem(row)
            self.items.remove(self.selectedItem)
            if len(self.items) > 0:
                if len(self.items) > row:
                    self.selectedItem = self.items[row]
                else:
                    self.selectedItem = self.items[row - 1]

    def editbook(self):
        print "edit"
Esempio n. 7
0
class bookmark(QWidget):
    def __init__(self, parent):
        QWidget.__init__(self)
        self.init(parent)
        self.initShape()

    def init(self, parent):
        self.heditor = parent
        self.items = []

        self.selectedItem = -1

    def initShape(self):
        self.vbox = QVBoxLayout()
        self.vbox.setSpacing(0)

        self.dialog = bookDiag(self)

        self.initFunctions()
        self.initTree()
        self.setLayout(self.vbox)

    def initFunctions(self):
        self.booktool = QToolBar()
        self.booktool.setObjectName("Hexedit bookmark toolbar")

        self.add = QAction(QIcon(":bookmark_add.png"),  "Add bookmark",  self.booktool)
        self.booktool.addAction(self.add)

        self.rm = QAction(QIcon(":bookmark_rm.png"),  "Remove bookmark",  self.booktool)
        self.booktool.addAction(self.rm)

        self.edit = QAction(QIcon(":bookmark_toolbar.png"),  "Edit bookmark",  self.booktool)
        self.booktool.addAction(self.edit)

        #Callbacks

        self.add.connect(self.add, SIGNAL("triggered()"), self.addbook)
        self.rm.connect(self.rm, SIGNAL("triggered()"), self.rmbook)
        self.edit.connect(self.edit, SIGNAL("triggered()"), self.editbook)
        
        self.vbox.addWidget(self.booktool)
        
    def initTree(self):
        self.tree = QTreeWidget()
        self.tree.setColumnCount(5)
        
        headerLabels = [QApplication.translate("bookmark", "Address", None, QApplication.UnicodeUTF8),
                       QApplication.translate("bookmark", "Length (dec)", None, QApplication.UnicodeUTF8),
                       QApplication.translate("bookmark", "Length (hex)", None, QApplication.UnicodeUTF8),
                       QApplication.translate("bookmark", "Hex value", None, QApplication.UnicodeUTF8),
                       QApplication.translate("bookmark", "Ascii value", None, QApplication.UnicodeUTF8),
                        QApplication.translate("bookmark", "Description", None, QApplication.UnicodeUTF8)]
        
        self.tree.setHeaderLabels(headerLabels)
        self.tree.setAlternatingRowColors(True)
        
        self.connect(self.tree, SIGNAL("itemClicked(QTreeWidgetItem*,int)"), self.treeClicked)
        self.connect(self.tree, SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.treeDoubleClicked)
        self.vbox.addWidget(self.tree)

    #CALLBACKS

    def treeClicked(self, item, col):
        self.selectedItem = item

    def treeDoubleClicked(self, item, col):
        self.selectedItem = item
        add = QString(item.text(0))
        off = add.toULongLong(16)
        if off[1]:
            self.heditor.readOffset(off[0])
#            self.heditor.selection.offset = off[0]
#            self.heditor.whex.hexcursor.update()
#            self.heditor.whex.asciicursor.update()

    def getSelectedItemRow(self, address):
        cp = 0
        for item in self.items:
            if item.text(0) == address:
                return cp
            cp += 1
        return -1


    def addbook(self):
        self.dialog.setInformations()
        ret = self.dialog.exec_()
        if ret == 1:
            #XXXCheck if offsetis present
            item = QTreeWidgetItem(self.tree)
            address = self.dialog.address.text()
            declen = self.dialog.lendec.text()
            hexlen = self.dialog.lenhex.text()
            hexval = self.dialog.hexvalue.text()
            asciival = self.dialog.asciivalue.text()
            description = self.dialog.description.text()

            item.setText(0, address)
            item.setText(1, declen)
            item.setText(2, hexlen)
            item.setText(3, hexval)
            item.setText(4, asciival)
            item.setText(5, description)
            self.items.append(item)

    def rmbook(self):
        if (self.selectedItem != -1) and len(self.items) > 0:
            row = self.getSelectedItemRow(self.selectedItem.text(0))
            self.tree.takeTopLevelItem(row)
            self.items.remove(self.selectedItem)
            if len(self.items) > 0:
                if len(self.items) > row:
                    self.selectedItem = self.items[row]
                else:
                    self.selectedItem = self.items[row - 1]

    def editbook(self):
        print "edit"