mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Tag Browser: Use correct image for drag and drop even when item is showing the plus or minus icons
This commit is contained in:
parent
d5e2b1ae4c
commit
ffc372e0c0
@ -24,6 +24,7 @@ from calibre.utils.formatter import EvalFormatter
|
|||||||
|
|
||||||
TAG_SEARCH_STATES = {'clear': 0, 'mark_plus': 1, 'mark_plusplus': 2,
|
TAG_SEARCH_STATES = {'clear': 0, 'mark_plus': 1, 'mark_plusplus': 2,
|
||||||
'mark_minus': 3, 'mark_minusminus': 4}
|
'mark_minus': 3, 'mark_minusminus': 4}
|
||||||
|
DRAG_IMAGE_ROLE = Qt.UserRole + 1000
|
||||||
|
|
||||||
_bf = None
|
_bf = None
|
||||||
def bf():
|
def bf():
|
||||||
@ -116,6 +117,8 @@ class TagTreeItem(object): # {{{
|
|||||||
return bf()
|
return bf()
|
||||||
if role == Qt.ToolTipRole and self.tooltip is not None:
|
if role == Qt.ToolTipRole and self.tooltip is not None:
|
||||||
return (self.tooltip)
|
return (self.tooltip)
|
||||||
|
if role == DRAG_IMAGE_ROLE:
|
||||||
|
return self.icon
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def tag_data(self, role):
|
def tag_data(self, role):
|
||||||
@ -153,6 +156,8 @@ class TagTreeItem(object): # {{{
|
|||||||
return (self.tooltip + tag.tooltip)
|
return (self.tooltip + tag.tooltip)
|
||||||
else:
|
else:
|
||||||
return (self.tooltip)
|
return (self.tooltip)
|
||||||
|
if role == DRAG_IMAGE_ROLE:
|
||||||
|
return self.icon_state_map[0]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def toggle(self, set_to=None):
|
def toggle(self, set_to=None):
|
||||||
|
@ -18,7 +18,7 @@ from PyQt5.Qt import (QStyledItemDelegate, Qt, QTreeView, pyqtSignal, QSize,
|
|||||||
from calibre import sanitize_file_name_unicode
|
from calibre import sanitize_file_name_unicode
|
||||||
from calibre.constants import config_dir
|
from calibre.constants import config_dir
|
||||||
from calibre.gui2.tag_browser.model import (TagTreeItem, TAG_SEARCH_STATES,
|
from calibre.gui2.tag_browser.model import (TagTreeItem, TAG_SEARCH_STATES,
|
||||||
TagsModel)
|
TagsModel, DRAG_IMAGE_ROLE)
|
||||||
from calibre.gui2 import config, gprefs, choose_files, pixmap_to_data
|
from calibre.gui2 import config, gprefs, choose_files, pixmap_to_data
|
||||||
from calibre.utils.icu import sort_key
|
from calibre.utils.icu import sort_key
|
||||||
|
|
||||||
@ -254,7 +254,7 @@ class TagsView(QTreeView): # {{{
|
|||||||
QTreeView.mouseMoveEvent(self, event)
|
QTreeView.mouseMoveEvent(self, event)
|
||||||
return
|
return
|
||||||
md = self._model.mimeData([dex])
|
md = self._model.mimeData([dex])
|
||||||
pixmap = dex.data(Qt.DecorationRole).pixmap(25, 25)
|
pixmap = dex.data(DRAG_IMAGE_ROLE).pixmap(25, 25)
|
||||||
drag = QDrag(self)
|
drag = QDrag(self)
|
||||||
drag.setPixmap(pixmap)
|
drag.setPixmap(pixmap)
|
||||||
drag.setMimeData(md)
|
drag.setMimeData(md)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user