示例#1
0
 def setCurrentEditor(self, editor):
     self.stackedWidget.setCurrentWidget(editor)
     self.labelTitle.setText(editor.title)
     scope = editor.getScope()
     tabTrigger = editor.getTabTrigger()
     keyEquivalent = editor.getKeyEquivalent()
     self.lineEditScope.setEnabled(scope is not None)
     self.lineKeyEquivalentActivation.setEnabled(keyEquivalent is not None)
     self.lineTabTriggerActivation.setEnabled(tabTrigger is not None)
     self.comboBoxActivation.setEnabled(tabTrigger is not None or keyEquivalent is not None)
     if scope is not None:
         self.lineEditScope.setText(scope)
     else:
         self.lineEditScope.clear()
     if not keyEquivalent and not tabTrigger:
         self.lineKeyEquivalentActivation.clear()
         self.lineTabTriggerActivation.clear()
         self.comboBoxActivation.setCurrentIndex(0)
         self.lineTabTriggerActivation.setVisible(False)
     else:
         if keyEquivalent is not None:
             self.lineKeyEquivalentActivation.setText(QtGui.QKeySequence(keyEquivalent).toString())
         if tabTrigger is not None:
             self.lineTabTriggerActivation.setText(tabTrigger)
         index = 0 if keyEquivalent else 1
         self.comboBoxActivation.setCurrentIndex(index)
示例#2
0
 def eventFilter(self, obj, event):
     if event.type() == QtCore.QEvent.KeyPress and obj == self.lineKeyEquivalentActivation:
         keyseq = int(event.modifiers()) + event.key()
         self.stackedWidget.currentWidget().setKeyEquivalent(keyseq)
         self.lineKeyEquivalentActivation.setText(QtGui.QKeySequence(keyseq).toString())
         return True
     return super(PMXBundleEditor, self).eventFilter(obj, event)
示例#3
0
 def trigger(self):
     trigger = []
     if self.tabTrigger != None:
         trigger.append(u"%s⇥" % (self.tabTrigger))
     if self.keyEquivalent != None:
         trigger.append(u"%s" %
                        QtGui.QKeySequence(self.keyEquivalent).toString())
     return ", ".join(trigger)
示例#4
0
def keyequivalent2keysequence(nemonic):
    nemonic = list(nemonic)
    sequence = []
    if u"^" in nemonic:
        sequence.append(QtCore.Qt.CTRL)
        nemonic.remove(u"^")
    if u"~" in nemonic:
        sequence.append(QtCore.Qt.ALT)
        nemonic.remove(u"~")
    if u"$" in nemonic:
        sequence.append(QtCore.Qt.SHIFT)
        nemonic.remove(u"$")
    if u"@" in nemonic:
        sequence.append(QtCore.Qt.META)
        nemonic.remove(u"@")
    if len(nemonic) == 1:
        keys = _keyboard_layout_qtkeys(nemonic.pop())
        if QtCore.Qt.SHIFT in keys and QtCore.Qt.SHIFT in sequence:
            keys.remove(QtCore.Qt.SHIFT)
        sequence.extend(keys)
    return sum(sequence)


if __name__ == '__main__':
    tests = ['@r', '^~P', '@&', '@~)']
    for test in tests:
        code = keyequivalent2keysequence(test)
        print "Code %d is sequence %s and nemonic is %s" % (
            code, QtGui.QKeySequence(code).toString(),
            buildKeyEquivalent(code))
示例#5
0
    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)
示例#6
0
 def __init__(self):
     PMXBaseWidgetComponent.__init__(self)
     self.toggleViewAction().setShortcut(QtGui.QKeySequence(self.SHORTCUT))
     self.toggleViewAction().setIcon(self.ICON)