Example #1
0
 def handle_mouse_press_event(self, ev):
     if QApplication.keyboardModifiers() & Qt.ShiftModifier:
         # Shift-Click in QListView is broken. It selects extra items in
         # various circumstances, for example, click on some item in the
         # middle of a row then click on an item in the next row, all items
         # in the first row will be selected instead of only items after the
         # middle item.
         index = self.indexAt(ev.pos())
         if not index.isValid():
             return
         ci = self.currentIndex()
         sm = self.selectionModel()
         sm.setCurrentIndex(index, sm.NoUpdate)
         if not ci.isValid():
             return
         if not sm.hasSelection():
             sm.select(index, sm.ClearAndSelect)
             return
         cr = ci.row()
         tgt = index.row()
         top = self.model().index(min(cr, tgt), 0)
         bottom = self.model().index(max(cr, tgt), 0)
         sm.select(QItemSelection(top, bottom), sm.Select)
     else:
         return QListView.mousePressEvent(self, ev)
Example #2
0
 def handle_mouse_press_event(self, ev):
     if QApplication.keyboardModifiers() & Qt.ShiftModifier:
         # Shift-Click in QListView is broken. It selects extra items in
         # various circumstances, for example, click on some item in the
         # middle of a row then click on an item in the next row, all items
         # in the first row will be selected instead of only items after the
         # middle item.
         index = self.indexAt(ev.pos())
         if not index.isValid():
             return
         ci = self.currentIndex()
         sm = self.selectionModel()
         sm.setCurrentIndex(index, sm.NoUpdate)
         if not ci.isValid():
             return
         if not sm.hasSelection():
             sm.select(index, sm.ClearAndSelect)
             return
         cr = ci.row()
         tgt = index.row()
         top = self.model().index(min(cr, tgt), 0)
         bottom = self.model().index(max(cr, tgt), 0)
         sm.select(QItemSelection(top, bottom), sm.Select)
     else:
         return QListView.mousePressEvent(self, ev)