mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Implement #4564 (Context menu for covers in meta information editor (copy/paste))
This commit is contained in:
parent
3f98797f21
commit
dc799bbe16
@ -430,9 +430,9 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
|
|||||||
self.authors.setText(title)
|
self.authors.setText(title)
|
||||||
self.author_sort.setText('')
|
self.author_sort.setText('')
|
||||||
|
|
||||||
def cover_dropped(self, paths):
|
def cover_dropped(self, cover_data):
|
||||||
self.cover_changed = True
|
self.cover_changed = True
|
||||||
self.cover_data = self.cover.cover_data
|
self.cover_data = cover_data
|
||||||
|
|
||||||
def initialize_combos(self):
|
def initialize_combos(self):
|
||||||
self.initalize_authors()
|
self.initalize_authors()
|
||||||
|
@ -14,7 +14,7 @@ from PyQt4.Qt import QListView, QIcon, QFont, QLabel, QListWidget, \
|
|||||||
QMenu, QStringListModel, QCompleter, QStringList
|
QMenu, QStringListModel, QCompleter, QStringList
|
||||||
|
|
||||||
from calibre.gui2 import human_readable, NONE, TableView, \
|
from calibre.gui2 import human_readable, NONE, TableView, \
|
||||||
qstring_to_unicode, error_dialog
|
qstring_to_unicode, error_dialog, pixmap_to_data
|
||||||
from calibre.gui2.dialogs.job_view_ui import Ui_Dialog
|
from calibre.gui2.dialogs.job_view_ui import Ui_Dialog
|
||||||
from calibre.gui2.filename_pattern_ui import Ui_Form
|
from calibre.gui2.filename_pattern_ui import Ui_Form
|
||||||
from calibre import fit_image
|
from calibre import fit_image
|
||||||
@ -178,8 +178,8 @@ class ImageView(QLabel):
|
|||||||
if not pmap.isNull():
|
if not pmap.isNull():
|
||||||
self.setPixmap(pmap)
|
self.setPixmap(pmap)
|
||||||
event.accept()
|
event.accept()
|
||||||
self.cover_data = open(path, 'rb').read()
|
self.emit(SIGNAL('cover_changed(PyQt_PyObject)'), open(path,
|
||||||
self.emit(SIGNAL('cover_changed(PyQt_PyObject)'), paths)
|
'rb').read())
|
||||||
break
|
break
|
||||||
|
|
||||||
def dragMoveEvent(self, event):
|
def dragMoveEvent(self, event):
|
||||||
@ -191,6 +191,29 @@ class ImageView(QLabel):
|
|||||||
self.setMaximumWidth(width)
|
self.setMaximumWidth(width)
|
||||||
self.setMaximumHeight(height)
|
self.setMaximumHeight(height)
|
||||||
|
|
||||||
|
def contextMenuEvent(self, ev):
|
||||||
|
cm = QMenu(self)
|
||||||
|
copy = cm.addAction(_('Copy Image'))
|
||||||
|
paste = cm.addAction(_('Paste Image'))
|
||||||
|
if not QApplication.instance().clipboard().mimeData().hasImage():
|
||||||
|
paste.setEnabled(False)
|
||||||
|
copy.triggered.connect(self.copy_to_clipboard)
|
||||||
|
paste.triggered.connect(self.paste_from_clipboard)
|
||||||
|
cm.exec_(ev.globalPos())
|
||||||
|
|
||||||
|
def copy_to_clipboard(self):
|
||||||
|
QApplication.instance().clipboard().setPixmap(self.pixmap())
|
||||||
|
|
||||||
|
def paste_from_clipboard(self):
|
||||||
|
cb = QApplication.instance().clipboard()
|
||||||
|
pmap = cb.pixmap()
|
||||||
|
if pmap.isNull() and cb.supportsSelection():
|
||||||
|
pmap = cb.pixmap(cb.Selection)
|
||||||
|
if not pmap.isNull():
|
||||||
|
self.setPixmap(pmap)
|
||||||
|
self.emit(SIGNAL('cover_changed(PyQt_PyObject)'),
|
||||||
|
pixmap_to_data(pmap))
|
||||||
|
|
||||||
|
|
||||||
class LocationModel(QAbstractListModel):
|
class LocationModel(QAbstractListModel):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user