def setupWidgetStatus(self): tableView = QtGui.QTableView(self) tableView.setModel(self.application.supportManager.syntaxProxyModel) tableView.resizeColumnsToContents() tableView.resizeRowsToContents() tableView.verticalHeader().setVisible(False) tableView.horizontalHeader().setVisible(False) tableView.setShowGrid(False) tableView.setMinimumWidth(tableView.horizontalHeader().length() + 25) tableView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) tableView.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) tableView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) tableView.setAutoScroll(False) self.comboBoxSyntaxes.setModel(self.application.supportManager.syntaxProxyModel); self.comboBoxSyntaxes.setView(tableView) self.comboBoxSyntaxes.setModelColumn(0) #Connect tab size context menu self.labelTabSize.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.labelTabSize.customContextMenuRequested.connect(self.showTabSizeContextMenu) #Create bundle menu self.menuBundle = QtGui.QMenu(self) self.application.supportManager.appendMenuToBundleMenuGroup(self.menuBundle) self.toolButtonMenuBundle.setMenu(self.menuBundle)
def create_menu(parent, settings, useSeparatorName=False, connectActions=False): text = settings.get("text", "Menu") menu = QtGui.QMenu(text, parent) menu.setObjectName(text2objectname(text, prefix="menu")) # attrs if settings.has_key("icon"): icon = settings["icon"] if isinstance(icon, basestring): icon = resources.getIcon(icon) menu.setIcon(icon) # actions actions = extend_menu(menu, settings.get("items", []), useSeparatorName) if connectActions: for action in actions: if hasattr(action, 'callback'): if action.isCheckable(): parent.connect(action, QtCore.SIGNAL('triggered(bool)'), action.callback) else: parent.connect(action, QtCore.SIGNAL('triggered()'), action.callback) return menu, actions
def showTableViewFilesContextMenu(self, point): index = self.tableViewFiles.indexAt(point) if index.isValid(): # TODO Obtener el item y armar el menu menu = QtGui.QMenu(self) for action in self.actions: menu.addAction(action["name"]) menu.popup(self.tableViewFiles.mapToGlobal(point))
def setup(self): logging.root.addHandler(self.handler) self.debug_levels_menu = QtGui.QMenu() self.debug_levels_action_group = QtGui.QActionGroup(self) for level, value in filter(lambda (key, value): type(key) == str, logging._levelNames.iteritems()): action = QtGui.QAction(level.title(), self) action.setData({'name': level, 'level': value}) action.setCheckable(True) self.debug_levels_action_group.addAction(action) self.debug_levels_menu.addAction(action)
def mousePressEvent(self, event): from QTermWidget import QTermWidget if event.button() == QtCore.Qt.RightButton: menu = QtGui.QMenu() widget = self.clickedItem(event.pos()) if not widget: actionAddTerm = menu.addAction(_('Add terminal')) actionAddTerm.triggered.connect(self.addTerminal) else: pid = widget.getShellPID() # Close closeAction = menu.addAction(_("Close")) closeAction.triggered.connect(lambda index, s=self: s.removeTab(index)) menu.addSeparator() # Signals signalSubMenu = menu.addMenu(_("&Send signal")) for name, number in SIGNALS: signal = signalSubMenu.addAction("Send %s (%d)" % (name, number)) signal.triggered.connect(lambda pid = pid, number = number: os.kill(pid, number)) # Scrollbar scrollBarMenu = QtGui.QMenu("Scrollbar") for name, enumVal in (("No Scrollbar", QTermWidget.NoScrollBar), ("Left Scrollbar",QTermWidget.ScrollBarLeft), ("Right Scrollbar", QTermWidget.ScrollBarRight)): action = scrollBarMenu.addAction(name) action.triggered.connect(lambda w=widget, n=enumVal: widget.setScrollBarPosition(n)) menu.addMenu(scrollBarMenu) # Colors menuColors = QtGui.QMenu("Color Scheme") for name in widget.availableColorSchemes(): action = menuColors.addAction(name) action.triggered.connect(lambda w=widget, n=name: widget.setColorScheme(n)) menu.addMenu(menuColors) menu.exec_(event.globalPos()) return super(PMXTabTerminals, self).mousePressEvent(event)
def configToolbar(self): self.toolbarMenu = QtGui.QMenu("Menu", self) action = QtGui.QAction("New Command", self) action.triggered.connect(self.on_actionCommand_triggered) self.toolbarMenu.addAction(action) action = QtGui.QAction("New Drag Command", self) action.triggered.connect(self.on_actionDragCommand_triggered) self.toolbarMenu.addAction(action) action = QtGui.QAction("New Language", self) action.triggered.connect(self.on_actionLanguage_triggered) self.toolbarMenu.addAction(action) action = QtGui.QAction("New Snippet", self) action.triggered.connect(self.on_actionSnippet_triggered) self.toolbarMenu.addAction(action) action = QtGui.QAction("New Template", self) action.triggered.connect(self.on_actionTemplate_triggered) self.toolbarMenu.addAction(action) action = QtGui.QAction("New Project", self) action.triggered.connect(self.on_actionProject_triggered) self.toolbarMenu.addAction(action) self.templateFileAction = QtGui.QAction("New Template File", self) self.templateFileAction.triggered.connect(self.on_actionTemplateFile_triggered) self.toolbarMenu.addAction(self.templateFileAction) action = QtGui.QAction("New Preferences", self) action.triggered.connect(self.on_actionPreferences_triggered) self.toolbarMenu.addAction(action) self.toolbarMenu.addSeparator() action = QtGui.QAction("New Bundle", self) action.triggered.connect(self.on_actionBundle_triggered) self.toolbarMenu.addAction(action) def conditionalEnabledTemplateFile(): node = self.proxyTreeModel.node(self.treeView.currentIndex()) self.templateFileAction.setEnabled(not node.isRootNode() and (node.TYPE in ["template", "templatefile", "project"])) self.toolbarMenu.aboutToShow.connect(conditionalEnabledTemplateFile) self.pushButtonAdd.setMenu(self.toolbarMenu) #Bundle global filter dialog self.bundleFilterDialog = PMXBundleFilter(self) self.defaullFilterText = "Filter"
def showTabSizeContextMenu(self, point): editor = self.currentEditor #Setup Context Menu menu = QtGui.QMenu(self) menu.setObjectName('tabSizeMenu') for size in [2, 4, 8]: action = menu.addAction("%d" % size, lambda size = size: self.setCurrentEditorTabSize(size)) action.setCheckable(True) action.setChecked(editor.tabStopSize == size) if editor.tabStopSize not in [2,4,8]: action = menu.addAction("Other (%d)" % editor.tabStopSize) action.setCheckable(True) action.setChecked(True) else: action = menu.addAction("Other") action.setCheckable(True) menu.addSeparator() action = menu.addAction("Soft Tabs (Spaces)", lambda soft = not editor.tabStopSoft: self.setCurrentEditorTabSoft(soft)) action.setCheckable(True) action.setChecked(editor.tabStopSoft == True) menu.popup(self.labelTabSize.mapToGlobal(point))
def setupCornerWidget(self): widget = QtGui.QWidget() layout = QtGui.QHBoxLayout() # Add self.pushAddNewTerminal = QtGui.QPushButton() self.pushAddNewTerminal.setIcon(resources.getIcon('utilities-terminal')) self.pushAddNewTerminal.setToolTip(_("Add new terminal")) self.pushAddNewTerminal.setFlat(True) menuAddNew = QtGui.QMenu() actionNew = menuAddNew.addAction("Terminal") actionNew.triggered.connect(self.addTerminal) actionCustom = menuAddNew.addAction("Run in terminal...") actionCustom.triggered.connect(self.launchCustomCommandInTerminal) self.pushAddNewTerminal.setMenu(menuAddNew) layout.addWidget(self.pushAddNewTerminal) # Copy shortcutCopy = QtGui.QShortcut(QtGui.QKeySequence("Ctrl+c"), self) shortcutCopy.activated.connect(lambda s = self: s.currentWidget().copyClipboard()) # Paste self.pushPasteIntoTerminal = QtGui.QPushButton() self.pushPasteIntoTerminal.setIcon(resources.getIcon('edit-paste')) self.pushPasteIntoTerminal.setObjectName('pushPasteIntoTerminal') self.pushPasteIntoTerminal.setToolTip('Paste text into terminal') self.pushPasteIntoTerminal.setFlat(True) self.pushPasteIntoTerminal.pressed.connect(lambda s=self: s.currentWidget().pasteClipboard()) layout.addWidget(self.pushPasteIntoTerminal) # Config self.pushConfigTerminal = QtGui.QPushButton("C") #self.pushConfigTerminal.setIcon(getIcon('preference')) # self.pushConfigTerminal.setObjectName('pushConfigTerminal') # self.pushConfigTerminal.setToolTip('Configure terminal') # self.pushConfigTerminal.setFlat(True) # layout.addWidget(self.pushConfigTerminal) self.cornerMenuButton = QtGui.QPushButton() self.cornerMenuButtonMenu = QtGui.QMenu() self.cornerMenuButton.setMenu(self.cornerMenuButtonMenu) self.cornerMenuButtonMenu.addAction("Alfa") self.cornerMenuButtonMenu.addAction("Beta") self.cornerMenuButtonMenu.addAction("Gama") layout.addWidget(self.cornerMenuButton) # Close self.pushCloseTerminal = QtGui.QPushButton() self.pushCloseTerminal.setIcon(resources.getIcon("close")) self.pushCloseTerminal.setObjectName("pushCloseTerminal") self.pushCloseTerminal.setToolTip(_("Close terminal")) self.pushCloseTerminal.setFlat(True) self.pushCloseTerminal.pressed.connect(lambda s=self: s.removeTab(s.currentIndex())) layout.addWidget(self.pushCloseTerminal) widget.setLayout(layout) # Save some space widget.setStyleSheet(''' QPushButton { margin: 0px; padding: 0 0px 0 2px; } ''') self.setCornerWidget(widget)
def buildSingalMenu(self, process_pid): '''Creates a singal with add hock menu events''' menu = QtGui.QMenu(_('Send &Singal'))