diff options
| author | Adrien Tétar | 2015-05-29 15:40:05 +0200 |
|---|---|---|
| committer | Adrien Tétar | 2015-05-29 15:40:05 +0200 |
| commit | 3d769d86cc997486cea888f47310b546d112151e (patch) | |
| tree | c7055ce12271b0bb6974f2a1f4e3d629a3ef6ac6 /Lib/defconQt/fontView.py | |
| parent | b588ee3ca0dc77c37b7cc180ba1bdab04bd7de4e (diff) | |
| download | trufont-3d769d86cc997486cea888f47310b546d112151e.tar.bz2 | |
More stuff
Diffstat (limited to 'Lib/defconQt/fontView.py')
| -rw-r--r-- | Lib/defconQt/fontView.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/Lib/defconQt/fontView.py b/Lib/defconQt/fontView.py index 408d1a1..e5b6522 100644 --- a/Lib/defconQt/fontView.py +++ b/Lib/defconQt/fontView.py @@ -73,6 +73,12 @@ class CharacterWidget(QWidget): return QSize(self.columns * self.squareSize, math.ceil(len(self.glyphs) / self.columns) * self.squareSize) + def markSelection(self, color): + for key in self._selection: + glyph = self.glyphs[key] + glyph.lib["public.markColor"] = ",".join(str(c) for c in color.getRgbF()) + self.update() + # TODO: eventually get rid of the signal def computeCharacterSelected(self): lKey, mKey = self.lastKey, self.moveKey @@ -155,6 +161,9 @@ class CharacterWidget(QWidget): if event.button() == Qt.LeftButton: key = (event.y() // self.squareSize) * self.columns + event.x() // self.squareSize if key > len(self.glyphs)-1: event.ignore(); return + self._selection -= {key} + self.lastKey = key + self.moveKey = self.lastKey event.accept() self.glyphOpened.emit(self.glyphs[key].name) else: @@ -298,9 +307,28 @@ class MainWindow(QMainWindow): fileMenu.addAction("Save &As…", self.saveFileAs, QKeySequence.SaveAs) fileMenu.addAction("E&xit", self.close, QKeySequence.Quit) + selectionMenu = QMenu("&Selection", self) + self.menuBar().addMenu(selectionMenu) + + markColorMenu = QMenu("Mark color", self) + pixmap = QPixmap(24, 24) + red = markColorMenu.addAction("Red", self.colorFill) + pixmap.fill(Qt.red) + red.setIcon(QIcon(pixmap)) + red.setData(QColor(Qt.red)) + yellow = markColorMenu.addAction("Yellow", self.colorFill) + pixmap.fill(Qt.yellow) + yellow.setIcon(QIcon(pixmap)) + yellow.setData(QColor(Qt.yellow)) + green = markColorMenu.addAction("Green", self.colorFill) + pixmap.fill(Qt.green) + green.setIcon(QIcon(pixmap)) + green.setData(QColor(Qt.green)) + selectionMenu.addMenu(markColorMenu) + fontMenu = QMenu("&Font", self) self.menuBar().addMenu(fontMenu) - + # TODO: work out sensible shortcuts fontMenu.addAction("Font &info", self.fontInfo, "Ctrl+I") fontMenu.addAction("Font &features", self.fontFeatures, "Ctrl+F") @@ -393,6 +421,10 @@ class MainWindow(QMainWindow): else: #if ret == QMessageBox.Cancel: event.ignore() + def colorFill(self): + action = self.sender() + self.characterWidget.markSelection(action.data()) + def _fontChanged(self, event): self.characterWidget.update() |
