diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 2be7dfde4..23ab0c3ab 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -205,7 +205,7 @@ class RenderManager(object): self.renderer.set_frame_dest(self.width, self.height) return self.renderer.generate_frame_from_lines(main_text, footer_text) - def resize_image(self, image): + def resize_image(self, image, width = 0, height = 0): """ Resize an image to fit on the current screen. @@ -213,8 +213,12 @@ class RenderManager(object): The image to resize. """ preview = QtGui.QImage(image) - w = self.width - h = self.height + if width == 0: + w = self.width + h = self.height + else: + w = width + h = height preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) realw = preview.width(); realh = preview.height() diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 1005a568a..30fb3aaeb 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -21,7 +21,7 @@ import logging import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import OpenLPToolbar, translate, buildIcon, Receiver, ServiceType +from openlp.core.lib import OpenLPToolbar, translate, buildIcon, Receiver, ServiceType, RenderManager class SlideList(QtGui.QTableWidget): """ @@ -250,20 +250,21 @@ class SlideController(QtGui.QWidget): """ log.debug(u'displayServiceManagerItems Start') self.serviceitem = serviceitem - slide_pixmap = QtGui.QPixmap.fromImage(self.serviceitem.frames[0][u'image']) + slide_image = self.serviceitem.frames[0][u'image'] + size = slide_image.size() slide_width = 300 - slide_height = slide_width * slide_pixmap.height() / slide_pixmap.width() + slide_height = slide_width * size.height() / size.width() self.PreviewListWidget.clear() self.PreviewListWidget.setRowCount(0) self.PreviewListWidget.setColumnWidth(0, slide_width) for framenumber, frame in enumerate(self.serviceitem.frames): self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1) - pixmap = QtGui.QPixmap.fromImage(frame[u'image']) + pixmap = self.parent.RenderManager.resize_image(frame[u'image'], slide_width, slide_height) item = QtGui.QTableWidgetItem() label = QtGui.QLabel() label.setMargin(8) label.setScaledContents(True) - label.setPixmap(pixmap) + label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) self.PreviewListWidget.setCellWidget(framenumber, 0, label) self.PreviewListWidget.setItem(framenumber, 0, item) self.PreviewListWidget.setRowHeight(framenumber, slide_height)