aboutsummaryrefslogtreecommitdiffstats
path: root/Lib/defconQt/fontView.py
diff options
context:
space:
mode:
authorAdrien Tétar2015-10-11 12:25:11 +0200
committerAdrien Tétar2015-10-11 12:25:11 +0200
commita80988874c5d621a2b11c75f5af31b23d3008ee7 (patch)
treeebfab62995527dd24924ffbec0ab349072ddabb9 /Lib/defconQt/fontView.py
parentea6b465a799c397227c74c4da74d7cf636a088e4 (diff)
downloadtrufont-a80988874c5d621a2b11c75f5af31b23d3008ee7.tar.bz2
meta: default to empty font, fixture
Diffstat (limited to 'Lib/defconQt/fontView.py')
-rw-r--r--Lib/defconQt/fontView.py78
1 files changed, 47 insertions, 31 deletions
diff --git a/Lib/defconQt/fontView.py b/Lib/defconQt/fontView.py
index 9f010a9..3e43bcb 100644
--- a/Lib/defconQt/fontView.py
+++ b/Lib/defconQt/fontView.py
@@ -258,27 +258,26 @@ class InspectorWindow(QWidget):
def updateGlyphAttributes(self, notification=None):
if self._blocked: return
- name = self._glyph.name if self._glyph is not None else None
+ colorStr = "white"
+ if self._glyph is not None:
+ name = self._glyph.name
+ unicodes = " ".join("%06X" % u if u > 0xFFFF else "%04X" % u for u in self._glyph.unicodes)
+ width = str(int(self._glyph.width)) if self._glyph.width else None
+ leftSideBearing = str(int(self._glyph.leftMargin)) if self._glyph.leftMargin is not None else None
+ rightSideBearing = str(int(self._glyph.rightMargin)) if self._glyph.rightMargin is not None else None
+ if self._glyph.markColor is not None:
+ colorStr = QColor.fromRgbF(*tuple(self._glyph.markColor)).name()
+ else:
+ name = None
+ unicodes = None
+ width = None
+ leftSideBearing = None
+ rightSideBearing = None
self.nameEdit.setText(name)
- 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)
- leftSideBearing = str(int(self._glyph.leftMargin)) if self._glyph is not None else None
self.leftSideBearingEdit.setText(leftSideBearing)
- rightSideBearing = str(int(self._glyph.rightMargin)) if self._glyph is not None else None
self.rightSideBearingEdit.setText(rightSideBearing)
- colorStr = "white"
- if self._glyph is not None and "public.markColor" in self._glyph.lib:
- # XXX: cleanup duplication with glyphCollectionView
- # TODO: might well be possible to write this in a nicer way...
- colors = self._glyph.lib["public.markColor"].split(",")
- if len(colors) == 4:
- comp = []
- for c in colors:
- comp.append(float(c.strip()))
- markColor = QColor.fromRgbF(*comp)
- colorStr = markColor.name()
self.markColorButton.setStyleSheet("background-color: {}; \
border: 1px solid black;".format(colorStr))
@@ -543,14 +542,15 @@ class MainWindow(QMainWindow):
def __init__(self, font):
super(MainWindow, self).__init__()
self.setAttribute(Qt.WA_DeleteOnClose)
- if font is None:
- font = TFont()
squareSize = 56
self.collectionWidget = GlyphCollectionWidget(self)
self._font = None
self._sortDescriptor = None
- self.font = font
+ if font is None:
+ self.newFile(True)
+ else:
+ self.font = font
self.collectionWidget.glyphSelectedCallback = self._selectionChanged
self.collectionWidget.doubleClickCallback = self._glyphOpened
# TODO: should default be True or False?
@@ -644,20 +644,36 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.collectionWidget.scrollArea())
self.resize(605, 430)
- self.setCurrentFile(font.path)
+ if font is not None:
+ self.setCurrentFile(font.path)
self.setWindowTitle()
- def newFile(self):
- ok = self.maybeSaveBeforeExit()
- if not ok: return
- self.font = TFont()
- self.font.info.unitsPerEm = 1000
- self.font.info.ascender = 750
- self.font.info.descender = -250
- self.font.info.capHeight = 750
- self.font.info.xHeight = 500
- self.setWindowTitle("Untitled.ufo")
- self.sortDescriptor = latinDefault
+ def newFile(self, stickToSelf=False):
+ font = TFont()
+ font.info.unitsPerEm = 1000
+ font.info.ascender = 750
+ font.info.descender = -250
+ font.info.capHeight = 750
+ font.info.xHeight = 500
+ defaultGlyphSet = QSettings().value("settings/defaultGlyphSet",
+ latinDefault.name, type=str)
+ if defaultGlyphSet:
+ glyphNames = None
+ if defaultGlyphSet == latinDefault.name:
+ glyphNames = latinDefault.glyphNames
+ else:
+ glyphSets = readGlyphSets()
+ if defaultGlyphSet in glyphSets:
+ glyphNames = glyphSets[defaultGlyphSet]
+ if glyphNames is not None:
+ for name in glyphNames:
+ font.newStandardGlyph(name, asTemplate=True)
+ font.dirty = False
+ if not stickToSelf:
+ window = MainWindow(font)
+ window.show()
+ else:
+ self.font = font
def openFile(self, path=None):
if not path: