diff options
| author | Adrien Tétar | 2015-10-08 21:20:41 +0200 | 
|---|---|---|
| committer | Adrien Tétar | 2015-10-08 21:20:41 +0200 | 
| commit | f0ffdc1a606db8af02463f164017fdefa6e68819 (patch) | |
| tree | d3818fb225a4ccb148618c2c43dddc6e19cadc56 /Lib/defconQt/glyphView.py | |
| parent | c50cdece55f7aa324c395faf7a5b468369dfa70f (diff) | |
| download | trufont-f0ffdc1a606db8af02463f164017fdefa6e68819.tar.bz2 | |
meta: a few bug fixes with existing widgets
Diffstat (limited to 'Lib/defconQt/glyphView.py')
| -rw-r--r-- | Lib/defconQt/glyphView.py | 28 | 
1 files changed, 16 insertions, 12 deletions
| diff --git a/Lib/defconQt/glyphView.py b/Lib/defconQt/glyphView.py index d3f043e..222e433 100644 --- a/Lib/defconQt/glyphView.py +++ b/Lib/defconQt/glyphView.py @@ -26,8 +26,9 @@ class GotoDialog(QDialog):          layout = QGridLayout(self)          self.glyphLabel = QLabel("Glyph:", self)          self.glyphEdit = QLineEdit(self) -        self.glyphEdit.keyPressEvent = self.lineKeyPressEvent          self.glyphEdit.textChanged.connect(self.updateGlyphList) +        self.glyphEdit.event = self.lineEvent +        self.glyphEdit.keyPressEvent = self.lineKeyPressEvent          self.beginsWithBox = QRadioButton("Begins with", self)          self.containsBox = QRadioButton("Contains", self) @@ -51,28 +52,31 @@ class GotoDialog(QDialog):          l += 1          layout.addWidget(buttonBox, l, 0, 1, 6)          self.setLayout(layout) -        self.updateGlyphList(False) +        self.updateGlyphList(True) + +    def lineEvent(self, event): +        if event.type() == QEvent.KeyPress and event.key() == Qt.Key_Tab: +            if self.beginsWithBox.isChecked(): +                self.containsBox.toggle() +            else: +                self.beginsWithBox.toggle() +            return True +        else: +            return QLineEdit.event(self.glyphEdit, event)      def lineKeyPressEvent(self, event):          key = event.key()          if key == Qt.Key_Up or key == Qt.Key_Down:              self.glyphList.keyPressEvent(event) -        # TODO: kbd-dependent. Maybe change shortcut as well. rf uses Tab but takes away native Tab func. -        elif key == Qt.Key_Q: -            self.beginsWithBox.toggle() -            event.accept() -        elif key == Qt.Key_D: -            self.containsBox.toggle() -            event.accept()          else:              QLineEdit.keyPressEvent(self.glyphEdit, event) -    def updateGlyphList(self, select=True): +    def updateGlyphList(self, select):          self.glyphList.clear()          if not self.glyphEdit.isModified():              self.glyphList.addItems(self._sortedGlyphs)          text = self.glyphEdit.text() -        if self.beginsWithBox.isChecked(): +        if select:              glyphs = [glyph for glyph in self._sortedGlyphs if glyph.startswith(text)]          else:              glyphs = [glyph for glyph in self._sortedGlyphs if text in glyph] @@ -147,7 +151,7 @@ class MainGfxWindow(QMainWindow):          menuBar.addMenu(fileMenu)          glyphMenu = QMenu("&Glyph", self) -        glyphMenu.addAction("&Jump", self.changeGlyph) +        glyphMenu.addAction("&Jump", self.changeGlyph, "J")          menuBar.addMenu(glyphMenu)          toolBar = QToolBar(self) | 
