src/eric7/EricWidgets/EricTableView.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
13 13
14 class EricTableView(QTableView): 14 class EricTableView(QTableView):
15 """ 15 """
16 Class implementing a table view supporting removal of entries. 16 Class implementing a table view supporting removal of entries.
17 """ 17 """
18
18 def keyPressEvent(self, evt): 19 def keyPressEvent(self, evt):
19 """ 20 """
20 Protected method implementing special key handling. 21 Protected method implementing special key handling.
21 22
22 @param evt reference to the event (QKeyEvent) 23 @param evt reference to the event (QKeyEvent)
23 """ 24 """
24 if ( 25 if (
25 evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and 26 evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace]
26 self.model() is not None 27 and self.model() is not None
27 ): 28 ):
28 self.removeSelected() 29 self.removeSelected()
29 evt.setAccepted(True) 30 evt.setAccepted(True)
30 else: 31 else:
31 super().keyPressEvent(evt) 32 super().keyPressEvent(evt)
32 33
33 def removeSelected(self): 34 def removeSelected(self):
34 """ 35 """
35 Public method to remove the selected entries. 36 Public method to remove the selected entries.
36 """ 37 """
37 if self.model() is None or self.selectionModel() is None: 38 if self.model() is None or self.selectionModel() is None:
38 # no models available 39 # no models available
39 return 40 return
40 41
41 row = 0 42 row = 0
42 selectedRows = self.selectionModel().selectedRows() 43 selectedRows = self.selectionModel().selectedRows()
43 for selectedRow in reversed(selectedRows): 44 for selectedRow in reversed(selectedRows):
44 row = selectedRow.row() 45 row = selectedRow.row()
45 self.model().removeRow(row, self.rootIndex()) 46 self.model().removeRow(row, self.rootIndex())
46 47
47 idx = self.model().index(row, 0, self.rootIndex()) 48 idx = self.model().index(row, 0, self.rootIndex())
48 if not idx.isValid(): 49 if not idx.isValid():
49 idx = self.model().index(row - 1, 0, self.rootIndex()) 50 idx = self.model().index(row - 1, 0, self.rootIndex())
50 self.selectionModel().select( 51 self.selectionModel().select(
51 idx, 52 idx,
52 QItemSelectionModel.SelectionFlag.SelectCurrent | 53 QItemSelectionModel.SelectionFlag.SelectCurrent
53 QItemSelectionModel.SelectionFlag.Rows) 54 | QItemSelectionModel.SelectionFlag.Rows,
55 )
54 self.setCurrentIndex(idx) 56 self.setCurrentIndex(idx)
55 57
56 def removeAll(self): 58 def removeAll(self):
57 """ 59 """
58 Public method to clear the view. 60 Public method to clear the view.
59 """ 61 """
60 if self.model() is not None: 62 if self.model() is not None:
61 self.model().removeRows(0, self.model().rowCount(self.rootIndex()), 63 self.model().removeRows(
62 self.rootIndex()) 64 0, self.model().rowCount(self.rootIndex()), self.rootIndex()
65 )

eric ide

mercurial