Edit Book: Fix high-dpi rendering of emblems in the File Browser

This commit is contained in:
Kovid Goyal 2016-09-07 10:57:54 +05:30
parent 95f62fcad2
commit d23532e499

View File

@ -344,10 +344,11 @@ class FileList(QTreeWidget):
icon = self.rendered_emblem_cache[emblems] = QIcon(pixmaps[0]) icon = self.rendered_emblem_cache[emblems] = QIcon(pixmaps[0])
else: else:
canvas = QPixmap((num * w) + ((num-1)*2), h) canvas = QPixmap((num * w) + ((num-1)*2), h)
canvas.setDevicePixelRatio(pixmaps[0].devicePixelRatio())
canvas.fill(Qt.transparent) canvas.fill(Qt.transparent)
painter = QPainter(canvas) painter = QPainter(canvas)
for i, pm in enumerate(pixmaps): for i, pm in enumerate(pixmaps):
painter.drawPixmap(i * (w + 2), 0, pm) painter.drawPixmap(int(i * (w + 2)/canvas.devicePixelRatio()), 0, pm)
painter.end() painter.end()
icon = self.rendered_emblem_cache[emblems] = canvas icon = self.rendered_emblem_cache[emblems] = canvas
item.setData(0, Qt.DecorationRole, icon) item.setData(0, Qt.DecorationRole, icon)