Update GlyphDBEdit when new glyphs are added.
This commit is contained in:
parent
2379c1e98c
commit
da67db6dff
2 changed files with 22 additions and 9 deletions
|
|
@ -73,8 +73,9 @@ class GlyphDBModel(QAbstractTableModel):
|
||||||
def __init__(self, glyphdb, parent=None):
|
def __init__(self, glyphdb, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.glyphdb = glyphdb
|
self.glyphdb = glyphdb
|
||||||
self.values = list(glyphdb.values())
|
self.sortKey = None
|
||||||
self.values.reverse()
|
self.reverse = None
|
||||||
|
self.updateData()
|
||||||
|
|
||||||
def rowCount(self, parent):
|
def rowCount(self, parent):
|
||||||
return len(self.values)
|
return len(self.values)
|
||||||
|
|
@ -107,10 +108,18 @@ class GlyphDBModel(QAbstractTableModel):
|
||||||
|
|
||||||
def sort(self, column_index, order):
|
def sort(self, column_index, order):
|
||||||
column = self.COLUMNS[column_index]
|
column = self.COLUMNS[column_index]
|
||||||
if column.sortKey is not None:
|
self.sortKey = column.sortKey
|
||||||
self.layoutAboutToBeChanged.emit()
|
self.reverse = (order == Qt.DescendingOrder)
|
||||||
self.values.sort(key=column.sortKey, reverse = (order == Qt.DescendingOrder))
|
self.updateData()
|
||||||
self.layoutChanged.emit()
|
|
||||||
|
def updateData(self):
|
||||||
|
self.layoutAboutToBeChanged.emit()
|
||||||
|
if self.sortKey is None:
|
||||||
|
self.values = list(self.glyphdb.values())
|
||||||
|
self.values.reverse()
|
||||||
|
else:
|
||||||
|
self.values = sorted(self.glyphdb.values(), key=self.sortKey, reverse=self.reverse)
|
||||||
|
self.layoutChanged.emit()
|
||||||
|
|
||||||
|
|
||||||
class GlyphTableView(QTableView):
|
class GlyphTableView(QTableView):
|
||||||
|
|
@ -135,6 +144,9 @@ class GlyphDBEdit(GlyphTableView):
|
||||||
def sizeHint(self):
|
def sizeHint(self):
|
||||||
return QSize(640, 480)
|
return QSize(640, 480)
|
||||||
|
|
||||||
|
def updateData(self):
|
||||||
|
self.model().updateData()
|
||||||
|
|
||||||
|
|
||||||
def main(argv):
|
def main(argv):
|
||||||
dirname = argv[1]
|
dirname = argv[1]
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,11 @@ class MainWindow(QMainWindow):
|
||||||
self.page = PageView(self.pageScene, centralWidget)
|
self.page = PageView(self.pageScene, centralWidget)
|
||||||
self.glyphEdit = GlyphEdit(centralWidget)
|
self.glyphEdit = GlyphEdit(centralWidget)
|
||||||
self.glyphEdit.setEnabled(False)
|
self.glyphEdit.setEnabled(False)
|
||||||
|
self.glyphDBEdit = GlyphDBEdit(self.ocr.glyphdb)
|
||||||
|
|
||||||
self.glyphEdit.glyphEntered.connect(self.unknownGlyphEntered)
|
self.glyphEdit.glyphEntered.connect(self.unknownGlyphEntered)
|
||||||
self.glyphEdit.glyphEntered.connect(self.pageScene.clearHighlight)
|
self.glyphEdit.glyphEntered.connect(self.pageScene.clearHighlight)
|
||||||
|
self.glyphEdit.glyphEntered.connect(self.glyphDBEdit.updateData)
|
||||||
ocr.pageChanged.connect(self.pageScene.setPage)
|
ocr.pageChanged.connect(self.pageScene.setPage)
|
||||||
ocr.pageChanged.connect(self.showPageTitle)
|
ocr.pageChanged.connect(self.showPageTitle)
|
||||||
ocr.unknownGlyph.connect(self.unknownGlyph)
|
ocr.unknownGlyph.connect(self.unknownGlyph)
|
||||||
|
|
@ -111,9 +114,7 @@ class MainWindow(QMainWindow):
|
||||||
self.glyphEntered.emit(text, bold, italic)
|
self.glyphEntered.emit(text, bold, italic)
|
||||||
|
|
||||||
def showGlyphDBEdit(self):
|
def showGlyphDBEdit(self):
|
||||||
if self.dbedit is None:
|
self.glyphDBEdit.show()
|
||||||
self.dbedit = GlyphDBEdit(self.ocr.glyphdb)
|
|
||||||
self.dbedit.show()
|
|
||||||
|
|
||||||
def setDocumentTitle(self, title):
|
def setDocumentTitle(self, title):
|
||||||
if title:
|
if title:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue