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]
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()
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))
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"
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"