From 8a875d90bd242407612e4a9a84d86b3f6d924a6d Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Mon, 25 Aug 2014 12:14:08 +0200 Subject: [PATCH] Implement deleting glyphs. --- pixelocr/gui/glypheditor.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/pixelocr/gui/glypheditor.py b/pixelocr/gui/glypheditor.py index 16bcd5d..c7ba55a 100644 --- a/pixelocr/gui/glypheditor.py +++ b/pixelocr/gui/glypheditor.py @@ -64,13 +64,34 @@ class GlyphDBModel(QAbstractTableModel): elif role == Qt.DecorationRole: return self.get_image(key) + def removeRows(self, row, count, parent=None): + self.beginRemoveRows(parent, row, row + count - 1) + + keys = self.keys[row: row + count] + for key in keys: + del self.glyphdb[key] + del self.keys[row] + + self.endRemoveRows() + return True + + +class GlyphTableView(QTableView): + def keyPressEvent(self, event): + if event.key() == Qt.Key_Delete: + print('delete') + for index in self.selectedIndexes(): + self.model().removeRow(index.row()) + else: + return super().keyPressEvent(event) + def main(argv): dirname = argv[1] app = QApplication(argv) glyphdb = GlyphDB(dirname) - view = QTableView() + view = GlyphTableView() model = GlyphDBModel(glyphdb, parent=view) view.setModel(model) view.resize(640, 480)