Pass Document to GlyphEdit columns.
This commit is contained in:
parent
8cec21191f
commit
45ef8dc691
1 changed files with 20 additions and 17 deletions
|
|
@ -39,7 +39,8 @@ class Column(object):
|
|||
to_display = str
|
||||
to_value = str
|
||||
|
||||
def __init__(self, header, field_name):
|
||||
def __init__(self, document, header, field_name):
|
||||
self.document = document
|
||||
self.header = header
|
||||
self.field_name = field_name
|
||||
|
||||
|
|
@ -103,45 +104,47 @@ class ColorColumn(Column):
|
|||
|
||||
|
||||
class GlyphDBModel(QAbstractTableModel):
|
||||
COLUMNS = [
|
||||
TextColumn('Text', 'text'),
|
||||
IntColumn('Elevation', 'elevation'),
|
||||
CheckBoxColumn('B', 'bold'),
|
||||
CheckBoxColumn('I', 'italic'),
|
||||
ColorColumn('Color', 'color'),
|
||||
DateColumn('Date added', 'date_added'),
|
||||
]
|
||||
|
||||
def __init__(self, document, parent=None):
|
||||
super().__init__(parent)
|
||||
self.document = document
|
||||
self.glyphdb = document.glyphdb
|
||||
self.sortColumn = len(self.COLUMNS) - 1 # date_add ed
|
||||
self.columns = self.createColumns()
|
||||
self.sortColumn = len(self.columns) - 1 # date_add ed
|
||||
self.sortOrder = Qt.DescendingOrder
|
||||
self.values = list(self.glyphdb.values())
|
||||
self.updateData()
|
||||
|
||||
def createColumns(self):
|
||||
return [
|
||||
TextColumn(self.document, 'Text', 'text'),
|
||||
IntColumn(self.document, 'Elevation', 'elevation'),
|
||||
CheckBoxColumn(self.document, 'B', 'bold'),
|
||||
CheckBoxColumn(self.document, 'I', 'italic'),
|
||||
ColorColumn(self.document, 'Color', 'color'),
|
||||
DateColumn(self.document, 'Date added', 'date_added'),
|
||||
]
|
||||
|
||||
def flags(self, index):
|
||||
column = self.COLUMNS[index.column()]
|
||||
column = self.columns[index.column()]
|
||||
return super().flags(index) | column.flags
|
||||
|
||||
def rowCount(self, parent):
|
||||
return len(self.values)
|
||||
|
||||
def columnCount(self, parent):
|
||||
return len(self.COLUMNS)
|
||||
return len(self.columns)
|
||||
|
||||
def headerData(self, section, orientation, role):
|
||||
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
|
||||
return self.COLUMNS[section].header
|
||||
return self.columns[section].header
|
||||
|
||||
def data(self, index, role):
|
||||
column = self.COLUMNS[index.column()]
|
||||
column = self.columns[index.column()]
|
||||
glyph_data = self.values[index.row()]
|
||||
return column.data(glyph_data, role)
|
||||
|
||||
def setData(self, index, value, role):
|
||||
column = self.COLUMNS[index.column()]
|
||||
column = self.columns[index.column()]
|
||||
glyph_data = self.values[index.row()]
|
||||
self.glyphdb.remove(glyph_data)
|
||||
column.setData(glyph_data, value, role)
|
||||
|
|
@ -167,7 +170,7 @@ class GlyphDBModel(QAbstractTableModel):
|
|||
|
||||
def updateData(self):
|
||||
self.layoutAboutToBeChanged.emit()
|
||||
column = self.COLUMNS[self.sortColumn]
|
||||
column = self.columns[self.sortColumn]
|
||||
reverse = self.sortOrder == Qt.DescendingOrder
|
||||
if len(self.values) != len(self.glyphdb.values()):
|
||||
self.values = self.glyphdb.values()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue