aboutsummaryrefslogtreecommitdiffstats
path: root/Lib/defconQt/fontView.py
diff options
context:
space:
mode:
authorAdrien Tétar2015-06-03 23:42:52 +0200
committerAdrien Tétar2015-06-03 23:42:52 +0200
commitc0cc860548364c8cd7bd84613e76d7704336da97 (patch)
tree3f80c2e4a7bda2be259e1dfdc12cd27a4e423f0f /Lib/defconQt/fontView.py
parenta85e5e6e4f3213ab82a7f8a0966c9af83f88e145 (diff)
downloadtrufont-c0cc860548364c8cd7bd84613e76d7704336da97.tar.bz2
More groupsWindow controls, ability to show kerning in spaceCenter, misc
Diffstat (limited to 'Lib/defconQt/fontView.py')
-rw-r--r--Lib/defconQt/fontView.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/Lib/defconQt/fontView.py b/Lib/defconQt/fontView.py
index 64019f2..bb56929 100644
--- a/Lib/defconQt/fontView.py
+++ b/Lib/defconQt/fontView.py
@@ -75,8 +75,10 @@ class CharacterWidget(QWidget):
self.adjustSize()
def sizeHint(self):
+ # Calculate sizeHint with max(height, scrollArea.height()) because if scrollArea is
+ # bigger than widget height after an update, we risk leaving old painted content on screen
return QSize(self.columns * self.squareSize,
- math.ceil(len(self.glyphs) / self.columns) * self.squareSize)
+ max(math.ceil(len(self.glyphs) / self.columns) * self.squareSize, self.scrollArea.height()))
def markSelection(self, color):
for key in self._selection:
@@ -148,6 +150,7 @@ class CharacterWidget(QWidget):
if ((event.pos() - self._maybeDragPosition).manhattanLength() \
< QApplication.startDragDistance()): return
# TODO: needs ordering or not?
+ # TODO: see about dropping join tuples
glyphList = " ".join((self.glyphs[key].name for key in self._selection))
drag = QDrag(self)
mimeData = QMimeData()
@@ -212,9 +215,10 @@ class CharacterWidget(QWidget):
beginColumn = redrawRect.left() // self.squareSize
endColumn = redrawRect.right() // self.squareSize
- painter.setPen(cellGridColor)
- painter.drawLine(redrawRect.left(), redrawRect.top(), redrawRect.left(), redrawRect.bottom())
- painter.drawLine(0, 0, redrawRect.right(), 0)
+ # painter.setPen(cellGridColor)
+ # painter.drawLine(redrawRect.left(), redrawRect.top(), redrawRect.left()+self.squareSize \
+ # *min(len(self.glyphs), self.columns), redrawRect.top()+self.squareSize*(math.ceil(len(self.glyphs)/self.columns)))
+ # painter.drawLine(0, 0, redrawRect.right(), 0)
# selection code
if self.moveKey != -1:
@@ -279,7 +283,7 @@ class CharacterWidget(QWidget):
painter.drawText(1, 0, self.squareSize - 2, GlyphCellHeaderHeight - minOffset,
Qt.TextSingleLine | Qt.AlignCenter, name)
painter.restore()
-
+
painter.setPen(cellGridColor)
rightEdgeX = column * self.squareSize + self.squareSize
bottomEdgeY = row * self.squareSize + self.squareSize
@@ -325,6 +329,7 @@ class MainWindow(QMainWindow):
squareSize = 56
self.characterWidget = CharacterWidget(self.font, squareSize, self.scrollArea, self)
self.characterWidget.updateGlyphsFromFont()
+ self.characterWidget.setFocus()
self.scrollArea.setWidget(self.characterWidget)
# TODO: make shortcuts platform-independent
@@ -385,11 +390,11 @@ class MainWindow(QMainWindow):
self.sqSizeSlider.setValue(squareSize)
self.sqSizeSlider.valueChanged.connect(self._squareSizeChanged)
self.selectionLabel = QLabel(self)
- self.characterWidget.characterSelected.connect(self._selectionChanged)
self.statusBar().addPermanentWidget(self.sqSizeSlider)
self.statusBar().addWidget(self.selectionLabel)
self.setCentralWidget(self.scrollArea)
+ self.characterWidget.characterSelected.connect(self._selectionChanged)
self.characterWidget.glyphOpened.connect(self._glyphOpened)
self.setWindowTitle()
# TODO: dump the hardcoded path