Add glyphdbedit.TextColumn.

This commit is contained in:
Andrey Golovizin 2014-09-19 23:08:18 +02:00
parent f73c87a7ff
commit 13d0ade021

View file

@ -38,16 +38,13 @@ class Column(object):
to_display = str
to_value = str
def __init__(self, header, field_name, image_field_name=None):
def __init__(self, header, field_name):
self.header = header
self.field_name = field_name
self.image_field_name=image_field_name
def data(self, glyph_data, role):
if role in [Qt.DisplayRole, Qt.EditRole]:
return self.to_display(getattr(glyph_data, self.field_name))
elif role == Qt.DecorationRole and self.image_field_name:
return getattr(glyph_data, self.image_field_name).qimage
def setData(self, glyph_data, value, role):
if role == Qt.EditRole:
@ -57,6 +54,14 @@ class Column(object):
return getattr(glyph_data, self.field_name)
class TextColumn(Column):
def data(self, glyph_data, role):
if role == Qt.DecorationRole:
return glyph_data.image.qimage
else:
return super().data(glyph_data, role)
class IntColumn(Column):
to_display = int
to_value = int
@ -93,7 +98,7 @@ class ColorColumn(Column):
class GlyphDBModel(QAbstractTableModel):
COLUMNS = [
Column('Text', 'text', 'image'),
TextColumn('Text', 'text'),
IntColumn('Elevation', 'elevation'),
CheckBoxColumn('B', 'bold'),
CheckBoxColumn('I', 'italic'),