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_display = str
|
||||||
to_value = str
|
to_value = str
|
||||||
|
|
||||||
def __init__(self, header, field_name):
|
def __init__(self, document, header, field_name):
|
||||||
|
self.document = document
|
||||||
self.header = header
|
self.header = header
|
||||||
self.field_name = field_name
|
self.field_name = field_name
|
||||||
|
|
||||||
|
|
@ -103,45 +104,47 @@ class ColorColumn(Column):
|
||||||
|
|
||||||
|
|
||||||
class GlyphDBModel(QAbstractTableModel):
|
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):
|
def __init__(self, document, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.document = document
|
self.document = document
|
||||||
self.glyphdb = document.glyphdb
|
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.sortOrder = Qt.DescendingOrder
|
||||||
self.values = list(self.glyphdb.values())
|
self.values = list(self.glyphdb.values())
|
||||||
self.updateData()
|
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):
|
def flags(self, index):
|
||||||
column = self.COLUMNS[index.column()]
|
column = self.columns[index.column()]
|
||||||
return super().flags(index) | column.flags
|
return super().flags(index) | column.flags
|
||||||
|
|
||||||
def rowCount(self, parent):
|
def rowCount(self, parent):
|
||||||
return len(self.values)
|
return len(self.values)
|
||||||
|
|
||||||
def columnCount(self, parent):
|
def columnCount(self, parent):
|
||||||
return len(self.COLUMNS)
|
return len(self.columns)
|
||||||
|
|
||||||
def headerData(self, section, orientation, role):
|
def headerData(self, section, orientation, role):
|
||||||
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
|
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
|
||||||
return self.COLUMNS[section].header
|
return self.columns[section].header
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
column = self.COLUMNS[index.column()]
|
column = self.columns[index.column()]
|
||||||
glyph_data = self.values[index.row()]
|
glyph_data = self.values[index.row()]
|
||||||
return column.data(glyph_data, role)
|
return column.data(glyph_data, role)
|
||||||
|
|
||||||
def setData(self, index, value, role):
|
def setData(self, index, value, role):
|
||||||
column = self.COLUMNS[index.column()]
|
column = self.columns[index.column()]
|
||||||
glyph_data = self.values[index.row()]
|
glyph_data = self.values[index.row()]
|
||||||
self.glyphdb.remove(glyph_data)
|
self.glyphdb.remove(glyph_data)
|
||||||
column.setData(glyph_data, value, role)
|
column.setData(glyph_data, value, role)
|
||||||
|
|
@ -167,7 +170,7 @@ class GlyphDBModel(QAbstractTableModel):
|
||||||
|
|
||||||
def updateData(self):
|
def updateData(self):
|
||||||
self.layoutAboutToBeChanged.emit()
|
self.layoutAboutToBeChanged.emit()
|
||||||
column = self.COLUMNS[self.sortColumn]
|
column = self.columns[self.sortColumn]
|
||||||
reverse = self.sortOrder == Qt.DescendingOrder
|
reverse = self.sortOrder == Qt.DescendingOrder
|
||||||
if len(self.values) != len(self.glyphdb.values()):
|
if len(self.values) != len(self.glyphdb.values()):
|
||||||
self.values = self.glyphdb.values()
|
self.values = self.glyphdb.values()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue