Edit metadata dialog: Show the size of the current book cover in the edit metadata dialog. Fixes #1079781 ([Enhancement] Display cover size in pixels)

This commit is contained in:
Kovid Goyal 2012-11-18 11:48:27 +05:30
parent 34a2758d3c
commit f0d32cb528
2 changed files with 18 additions and 4 deletions

View File

@ -867,6 +867,7 @@ class Cover(ImageView): # {{{
def __init__(self, parent): def __init__(self, parent):
ImageView.__init__(self, parent) ImageView.__init__(self, parent)
self.show_size = True
self.dialog = parent self.dialog = parent
self._cdata = None self._cdata = None
self.cover_changed.connect(self.set_pixmap_from_data) self.cover_changed.connect(self.set_pixmap_from_data)

View File

@ -283,6 +283,7 @@ class ImageView(QWidget, ImageDropMixin): # {{{
self.setMinimumSize(QSize(150, 200)) self.setMinimumSize(QSize(150, 200))
ImageDropMixin.__init__(self) ImageDropMixin.__init__(self)
self.draw_border = True self.draw_border = True
self.show_size = False
def setPixmap(self, pixmap): def setPixmap(self, pixmap):
if not isinstance(pixmap, QPixmap): if not isinstance(pixmap, QPixmap):
@ -305,6 +306,7 @@ class ImageView(QWidget, ImageDropMixin): # {{{
if pmap.isNull(): if pmap.isNull():
return return
w, h = pmap.width(), pmap.height() w, h = pmap.width(), pmap.height()
ow, oh = w, h
cw, ch = self.rect().width(), self.rect().height() cw, ch = self.rect().width(), self.rect().height()
scaled, nw, nh = fit_image(w, h, cw, ch) scaled, nw, nh = fit_image(w, h, cw, ch)
if scaled: if scaled:
@ -317,12 +319,23 @@ class ImageView(QWidget, ImageDropMixin): # {{{
p = QPainter(self) p = QPainter(self)
p.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform) p.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
p.drawPixmap(target, pmap) p.drawPixmap(target, pmap)
pen = QPen()
pen.setWidth(self.BORDER_WIDTH)
p.setPen(pen)
if self.draw_border: if self.draw_border:
pen = QPen()
pen.setWidth(self.BORDER_WIDTH)
p.setPen(pen)
p.drawRect(target) p.drawRect(target)
#p.drawRect(self.rect()) if self.show_size:
sztgt = target.adjusted(0, 0, 0, -4)
f = p.font()
f.setBold(True)
f.setPointSize(12)
p.setFont(f)
sz = u'\u00a0%d x %d\u00a0'%(ow, oh)
flags = Qt.AlignBottom|Qt.AlignRight|Qt.TextSingleLine
szrect = p.boundingRect(sztgt, flags, sz)
p.fillRect(szrect.adjusted(0, 0, 0, 4), QColor(0, 0, 0, 200))
p.setPen(QPen(QColor(255,255,255)))
p.drawText(sztgt, flags, sz)
p.end() p.end()
# }}} # }}}