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_display = str
to_value = str to_value = str
def __init__(self, header, field_name, image_field_name=None): def __init__(self, header, field_name):
self.header = header self.header = header
self.field_name = field_name self.field_name = field_name
self.image_field_name=image_field_name
def data(self, glyph_data, role): def data(self, glyph_data, role):
if role in [Qt.DisplayRole, Qt.EditRole]: if role in [Qt.DisplayRole, Qt.EditRole]:
return self.to_display(getattr(glyph_data, self.field_name)) 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): def setData(self, glyph_data, value, role):
if role == Qt.EditRole: if role == Qt.EditRole:
@ -57,6 +54,14 @@ class Column(object):
return getattr(glyph_data, self.field_name) 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): class IntColumn(Column):
to_display = int to_display = int
to_value = int to_value = int
@ -93,7 +98,7 @@ class ColorColumn(Column):
class GlyphDBModel(QAbstractTableModel): class GlyphDBModel(QAbstractTableModel):
COLUMNS = [ COLUMNS = [
Column('Text', 'text', 'image'), TextColumn('Text', 'text'),
IntColumn('Elevation', 'elevation'), IntColumn('Elevation', 'elevation'),
CheckBoxColumn('B', 'bold'), CheckBoxColumn('B', 'bold'),
CheckBoxColumn('I', 'italic'), CheckBoxColumn('I', 'italic'),