From 215d814777b1003fdebaa96e2532b7242ddf8cc9 Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Mon, 1 Sep 2014 22:35:18 +0200 Subject: [PATCH] Add Bool and Italic columns to GlyphDBEdit. --- pixelocr/gui/glyphdbedit.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/pixelocr/gui/glyphdbedit.py b/pixelocr/gui/glyphdbedit.py index 1449539..0bb0de7 100644 --- a/pixelocr/gui/glyphdbedit.py +++ b/pixelocr/gui/glyphdbedit.py @@ -44,6 +44,9 @@ class Column(object): def image(self, glyph_data): return None + def checkState(self, glyph_data): + return None + def sortKey(self, glyph_data): return self.data(glyph_data) @@ -74,10 +77,38 @@ class ElevationColumn(Column): glyph_data.elevation = value +class BoldColumn(Column): + header = 'Bold' + + def sortKey(self, glyph_data): + return glyph_data.bold + + def checkState(self, glyph_data): + return Qt.Checked if glyph_data.bold else Qt.Unchecked + + def setData(self, glyph_data, value): + glyph_data.bold = value + + +class ItalicColumn(Column): + header = 'Italic' + + def sortKey(self, glyph_data): + return glyph_data.italic + + def checkState(self, glyph_data): + return Qt.Checked if glyph_data.italic else Qt.Unchecked + + def setData(self, glyph_data, value): + glyph_data.italic = value + + class GlyphDBModel(QAbstractTableModel): COLUMNS = [ TextColumn(), ElevationColumn(), + BoldColumn(), + ItalicColumn(), ] def __init__(self, glyphdb, parent=None): @@ -88,7 +119,7 @@ class GlyphDBModel(QAbstractTableModel): self.updateData() def flags(self, index): - return super().flags(index) | Qt.ItemIsEditable + return super().flags(index) | Qt.ItemIsEditable | Qt.ItemIsUserCheckable def rowCount(self, parent): return len(self.values) @@ -109,12 +140,16 @@ class GlyphDBModel(QAbstractTableModel): return column.image(data) elif role == Qt.EditRole: return column.data(data) + elif role == Qt.CheckStateRole: + return column.checkState(data) def setData(self, index, value, role): glyph_data = self.values[index.row()] column = self.COLUMNS[index.column()] if role == Qt.EditRole: column.setData(glyph_data, value) + if role == Qt.CheckStateRole: + column.setData(glyph_data, value == Qt.Checked) self.dataChanged.emit(index, index) return True