diff options
| author | Denis Jacquerye | 2015-10-08 19:01:10 +0100 | 
|---|---|---|
| committer | Denis Jacquerye | 2015-10-08 20:26:44 +0100 | 
| commit | f51ab1d75dd17f3b647b400f78b48b3ac3e26c9c (patch) | |
| tree | d2a0a7041648022bacb129caad83ec89dd0e8471 /Lib/defconQt/fontView.py | |
| parent | 11b7f3d41fbd3140b694643587479e8927b4c019 (diff) | |
| download | trufont-f51ab1d75dd17f3b647b400f78b48b3ac3e26c9c.tar.bz2 | |
fontView: remove unicode and validate unicodes in InspectorView
Remove unicode since unicodes’s first element is the same thing.
Validate and show unicodes as 4-hex- or 6-hex-digits per convention.
Fix crashing bug when unicodes.text() is ''.
Diffstat (limited to 'Lib/defconQt/fontView.py')
| -rw-r--r-- | Lib/defconQt/fontView.py | 29 | 
1 files changed, 11 insertions, 18 deletions
| diff --git a/Lib/defconQt/fontView.py b/Lib/defconQt/fontView.py index 24bad63..b1d8396 100644 --- a/Lib/defconQt/fontView.py +++ b/Lib/defconQt/fontView.py @@ -89,13 +89,12 @@ class InspectorWindow(QWidget):          nameLabel = QLabel("Name:", self)          self.nameEdit = QLineEdit(self)          self.nameEdit.editingFinished.connect(self.writeGlyphName) -        unicodeLabel = QLabel("Unicode:", self) -        self.unicodeEdit = QLineEdit(self) -        self.unicodeEdit.editingFinished.connect(self.writeUnicode) -        self.unicodeEdit.setMaximumWidth(columnOneWidth) -        self.unicodeEdit.setValidator(QIntValidator(self)) +        unicodesLabel = QLabel("Unicode:", self)          self.unicodesEdit = QLineEdit(self)          self.unicodesEdit.editingFinished.connect(self.writeUnicodes) +        unicodesRegExp = QRegExp("(|([a-fA-F0-9]{4,6})(;([a-fA-F0-9]{4,6}))*)") +        unicodesValidator = QRegExpValidator(unicodesRegExp, self) +        self.unicodesEdit.setValidator(unicodesValidator)          widthLabel = QLabel("Width:", self)          self.widthEdit = QLineEdit(self)          self.widthEdit.editingFinished.connect(self.writeWidth) @@ -122,9 +121,8 @@ class InspectorWindow(QWidget):          glyphLayout.addWidget(nameLabel, l, 0)          glyphLayout.addWidget(self.nameEdit, l, 1, 1, 5)          l += 1 -        glyphLayout.addWidget(unicodeLabel, l, 0) -        glyphLayout.addWidget(self.unicodeEdit, l, 1) -        glyphLayout.addWidget(self.unicodesEdit, l, 2, 1, 4) +        glyphLayout.addWidget(unicodesLabel, l, 0) +        glyphLayout.addWidget(self.unicodesEdit, l, 1, 1, 5)          l += 1          glyphLayout.addWidget(widthLabel, l, 0)          glyphLayout.addWidget(self.widthEdit, l, 1) @@ -255,9 +253,7 @@ class InspectorWindow(QWidget):          if self._blocked: return          name = self._glyph.name if self._glyph is not None else None          self.nameEdit.setText(name) -        uni = str(self._glyph.unicode).zfill(4) if self._glyph is not None else None -        self.unicodeEdit.setText(uni) -        unicodes = ";".join(str(u) for u in self._glyph.unicodes[1:]) if self._glyph is not None else None +        unicodes = ";".join("%06X" % u if u > 0xFFFF else "%04X" % u for u in self._glyph.unicodes) if self._glyph is not None else None          self.unicodesEdit.setText(unicodes)          width = str(int(self._glyph.width)) if self._glyph is not None else None          self.widthEdit.setText(width) @@ -285,17 +281,14 @@ class InspectorWindow(QWidget):          self._glyph.name = self.nameEdit.text()          self._blocked = False -    def writeUnicode(self): -        if self._glyph is None: return -        self._blocked = True -        self._glyph.unicode = int(self.unicodeEdit.text()) -        self._blocked = False -      def writeUnicodes(self):          if self._glyph is None: return          self._blocked = True          unicodes = self.unicodesEdit.text().split(";") -        self._glyph.unicodes = [int(uni) for uni in unicodes] +        if len(unicodes) == 1 and unicodes[0] == "": +            self._glyph.unicodes = [] +        else: +            self._glyph.unicodes = [int(uni, 16) for uni in unicodes]          self._blocked = False      def writeWidth(self): | 
