diff --git a/pixelocr/gui/glyphdbedit.py b/pixelocr/gui/glyphdbedit.py index 00e3771..1b319ed 100644 --- a/pixelocr/gui/glyphdbedit.py +++ b/pixelocr/gui/glyphdbedit.py @@ -43,7 +43,7 @@ class GlyphDBModel(QAbstractTableModel): return len(self.keys) def columnCount(self, parent): - return 1 + return 2 def _deserialize_image(self, key): elevation_, serialized_image = key @@ -62,6 +62,8 @@ class GlyphDBModel(QAbstractTableModel): return None if section == 0: return 'Text' + elif section == 1: + return 'Elevation' def data(self, index, role): if index.column() == 0: @@ -70,6 +72,10 @@ class GlyphDBModel(QAbstractTableModel): return self.glyphdb[key] elif role == Qt.DecorationRole: return self.get_image(key) + elif index.column() == 1: + if role == Qt.DisplayRole: + elevation, _ = self.keys[index.row()] + return str(elevation) def removeRows(self, row, count, parent=None): self.beginRemoveRows(parent, row, row + count - 1) @@ -83,9 +89,18 @@ class GlyphDBModel(QAbstractTableModel): return True def sort(self, column, order): + key_func = None if column == 0: + def key_func(key): + return self.glyphdb[key] + elif column == 1: + def key_func(key): + elevation, *_ = key + return elevation + + if key_func: self.layoutAboutToBeChanged.emit() - self.keys.sort(key=lambda key: self.glyphdb[key], reverse = (order == Qt.DescendingOrder)) + self.keys.sort(key=key_func, reverse = (order == Qt.DescendingOrder)) self.layoutChanged.emit()