Display glyph elevation in glyph DB editor.

This commit is contained in:
Andrey Golovizin 2014-08-25 16:29:31 +02:00
parent d2567ea409
commit ead1751ed1

View file

@ -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()