From 224f03e1fd67acd37b4dcf2209ef1ebd7edf7718 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Oct 2013 10:48:24 +0530 Subject: [PATCH] Option to hide displayed cover size in edit metadata dialog Edit metadata dialog: Allow turning off the cover size displayed in the bottom right corner of the cover by right clicking the cover and choosing "Hide cover size". It can be restored the same way. --- src/calibre/gui2/metadata/basic_widgets.py | 3 +-- src/calibre/gui2/widgets.py | 25 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py index 299984c5e4..f46f05cdcb 100644 --- a/src/calibre/gui2/metadata/basic_widgets.py +++ b/src/calibre/gui2/metadata/basic_widgets.py @@ -892,8 +892,7 @@ class Cover(ImageView): # {{{ download_cover = pyqtSignal() def __init__(self, parent): - ImageView.__init__(self, parent) - self.show_size = True + ImageView.__init__(self, parent, show_size_pref_name='edit_metadata_cover_widget', default_show_size=True) self.dialog = parent self._cdata = None self.cdata_before_trim = None diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 71cc7b6169..ad51090556 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -247,7 +247,7 @@ class ImageDropMixin(object): # {{{ def set_pixmap(self, pmap): self.setPixmap(pmap) - def contextMenuEvent(self, ev): + def build_context_menu(self): cm = QMenu(self) paste = cm.addAction(_('Paste Cover')) copy = cm.addAction(_('Copy Cover')) @@ -255,7 +255,10 @@ class ImageDropMixin(object): # {{{ paste.setEnabled(False) copy.triggered.connect(self.copy_to_clipboard) paste.triggered.connect(self.paste_from_clipboard) - cm.exec_(ev.globalPos()) + return cm + + def contextMenuEvent(self, ev): + self.build_context_menu().exec_(ev.globalPos()) def copy_to_clipboard(self): QApplication.instance().clipboard().setPixmap(self.get_pixmap()) @@ -276,13 +279,16 @@ class ImageView(QWidget, ImageDropMixin): # {{{ BORDER_WIDTH = 1 cover_changed = pyqtSignal(object) - def __init__(self, parent=None): + def __init__(self, parent=None, show_size_pref_name=None, default_show_size=False): QWidget.__init__(self, parent) + self.show_size_pref_name = ('show_size_on_cover_' + show_size_pref_name) if show_size_pref_name else None self._pixmap = QPixmap(self) self.setMinimumSize(QSize(150, 200)) ImageDropMixin.__init__(self) self.draw_border = True self.show_size = False + if self.show_size_pref_name: + self.show_size = gprefs.get(self.show_size_pref_name, default_show_size) def setPixmap(self, pixmap): if not isinstance(pixmap, QPixmap): @@ -291,6 +297,19 @@ class ImageView(QWidget, ImageDropMixin): # {{{ self.updateGeometry() self.update() + def build_context_menu(self): + m = ImageDropMixin.build_context_menu(self) + if self.show_size_pref_name: + text = _('Hide size in corner') if self.show_size else _('Show size in corner') + m.addAction(text, self.toggle_show_size) + return m + + def toggle_show_size(self): + self.show_size ^= True + if self.show_size_pref_name: + gprefs[self.show_size_pref_name] = self.show_size + self.update() + def pixmap(self): return self._pixmap