mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge from trunk
This commit is contained in:
commit
b281ba24e4
@ -490,28 +490,39 @@ class BooksView(QTableView): # {{{
|
|||||||
drag.setMimeData(md)
|
drag.setMimeData(md)
|
||||||
cover = self.drag_icon(m.cover(self.currentIndex().row()),
|
cover = self.drag_icon(m.cover(self.currentIndex().row()),
|
||||||
len(selected) > 1)
|
len(selected) > 1)
|
||||||
drag.setHotSpot(QPoint(cover.width()//3, cover.height()//3))
|
drag.setHotSpot(QPoint(-15, -15))
|
||||||
drag.setPixmap(cover)
|
drag.setPixmap(cover)
|
||||||
return drag
|
return drag
|
||||||
|
|
||||||
|
def event_has_mods(self, event=None):
|
||||||
|
mods = event.modifiers() if event is not None else \
|
||||||
|
QApplication.keyboardModifiers()
|
||||||
|
return mods & Qt.ControlModifier or mods & Qt.ShiftModifier
|
||||||
|
|
||||||
def mousePressEvent(self, event):
|
def mousePressEvent(self, event):
|
||||||
if event.button() == Qt.LeftButton:
|
if event.button() == Qt.LeftButton and not self.event_has_mods():
|
||||||
self.drag_start_pos = event.pos()
|
self.drag_start_pos = event.pos()
|
||||||
return QTableView.mousePressEvent(self, event)
|
return QTableView.mousePressEvent(self, event)
|
||||||
|
|
||||||
def mouseMoveEvent(self, event):
|
def mouseMoveEvent(self, event):
|
||||||
|
if self.drag_start_pos is None:
|
||||||
|
return QTableView.mouseMoveEvent(self, event)
|
||||||
|
|
||||||
|
if self.event_has_mods():
|
||||||
|
self.drag_start_pos = None
|
||||||
|
return
|
||||||
|
|
||||||
if not (event.buttons() & Qt.LeftButton) or \
|
if not (event.buttons() & Qt.LeftButton) or \
|
||||||
self.drag_start_pos is None or \
|
|
||||||
QApplication.keyboardModifiers() != Qt.NoModifier or \
|
|
||||||
(event.pos() - self.drag_start_pos).manhattanLength() \
|
(event.pos() - self.drag_start_pos).manhattanLength() \
|
||||||
< QApplication.startDragDistance():
|
< QApplication.startDragDistance():
|
||||||
return QTableView.mouseMoveEvent(self, event)
|
return
|
||||||
|
|
||||||
index = self.indexAt(event.pos())
|
index = self.indexAt(event.pos())
|
||||||
if not index.isValid():
|
if not index.isValid():
|
||||||
return
|
return
|
||||||
drag = self.drag_data()
|
drag = self.drag_data()
|
||||||
drag.exec_(Qt.CopyAction)
|
drag.exec_(Qt.CopyAction)
|
||||||
|
self.drag_start_pos = None
|
||||||
|
|
||||||
def dragEnterEvent(self, event):
|
def dragEnterEvent(self, event):
|
||||||
if int(event.possibleActions() & Qt.CopyAction) + \
|
if int(event.possibleActions() & Qt.CopyAction) + \
|
||||||
@ -645,7 +656,7 @@ class DeviceBooksView(BooksView): # {{{
|
|||||||
drag.setMimeData(md)
|
drag.setMimeData(md)
|
||||||
cover = self.drag_icon(m.cover(self.currentIndex().row()), len(paths) >
|
cover = self.drag_icon(m.cover(self.currentIndex().row()), len(paths) >
|
||||||
1)
|
1)
|
||||||
drag.setHotSpot(QPoint(cover.width()//3, cover.height()//3))
|
drag.setHotSpot(QPoint(-15, -15))
|
||||||
drag.setPixmap(cover)
|
drag.setPixmap(cover)
|
||||||
return drag
|
return drag
|
||||||
|
|
||||||
|
@ -83,6 +83,7 @@ class TagsView(QTreeView): # {{{
|
|||||||
self.setItemDelegate(TagDelegate(self))
|
self.setItemDelegate(TagDelegate(self))
|
||||||
self.made_connections = False
|
self.made_connections = False
|
||||||
self.setAcceptDrops(True)
|
self.setAcceptDrops(True)
|
||||||
|
self.setDragDropMode(self.DropOnly)
|
||||||
self.setDropIndicatorShown(True)
|
self.setDropIndicatorShown(True)
|
||||||
|
|
||||||
def set_database(self, db, tag_match, sort_by):
|
def set_database(self, db, tag_match, sort_by):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user