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): |
