diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 22fe0b674..cbde91b17 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -97,17 +97,34 @@ def build_icon(icon): ``:/resource/file.png``, or a file location like ``/path/to/file.png``. """ ButtonIcon = None - if type(icon) is QtGui.QIcon: + if isinstance(icon, QtGui.QIcon): ButtonIcon = icon - elif type(icon) is types.StringType or type(icon) is types.UnicodeType: + elif isinstance(icon, basestring): ButtonIcon = QtGui.QIcon() if icon.startswith(u':/'): ButtonIcon.addPixmap( QtGui.QPixmap(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off) else: - ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - elif type(icon) is QtGui.QImage: + if len(icon) > 2: + ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + else: + #lets build a Icon from text + pmap = QtGui.QPixmap(u':/pages/slide.png') + painter = QtGui.QPainter(pmap) + painter.setPen(QtGui.QColor(QtGui.QColor.black)) + font = QtGui.QFont() + font.setFamily(u'Arial') + font.setBold(True) + font.setPointSize(12) + painter.setFont(font) + metrics = QtGui.QFontMetrics(font) + painter.drawText(5, 3 + metrics.ascent(), icon) + painter.end() + ButtonIcon.addPixmap( + pmap, QtGui.QIcon.Normal, QtGui.QIcon.Off) + + elif isinstance(icon, QtGui.QImage): ButtonIcon = QtGui.QIcon() ButtonIcon.addPixmap( QtGui.QPixmap.fromImage(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 5cb6df728..5ec87b1bc 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -213,26 +213,26 @@ class MediaManagerItem(QtGui.QWidget): self.addToolbarButton( u'Load %s' % self.PluginNameShort, u'%s %s' % (self.trUtf8('Load a new'), self.PluginNameVisible), - u':%s_load.png' % self.IconPath, self.onFileClick) + u':/%s_load.png' % self.IconPath, self.onFileClick) ## New Button ## if self.hasNewIcon: self.addToolbarButton( u'New %s' % self.PluginNameShort, u'%s %s' % (self.trUtf8('Add a new'), self.PluginNameVisible), - u':%s_new.png' % self.IconPath, self.onNewClick) + u':/%s_new.png' % self.IconPath, self.onNewClick) ## Edit Button ## if self.hasEditIcon: self.addToolbarButton( u'Edit %s' % self.PluginNameShort, u'%s %s' % (self.trUtf8('Edit the selected'), self.PluginNameVisible), - u':%s_edit.png' % self.IconPath, self.onEditClick) + u':/%s_edit.png' % self.IconPath, self.onEditClick) ## Delete Button ## if self.hasDeleteIcon: self.addToolbarButton( u'Delete %s' % self.PluginNameShort, self.trUtf8('Delete the selected item'), - u':%s_delete.png' % self.IconPath, self.onDeleteClick) + u':/%s_delete.png' % self.IconPath, self.onDeleteClick) ## Separator Line ## self.addToolbarSeparator() ## Preview ## @@ -269,7 +269,7 @@ class MediaManagerItem(QtGui.QWidget): if self.hasEditIcon: self.ListView.addAction( contextMenuAction( - self.ListView, u':%s_new.png' % self.IconPath, + self.ListView, u':/%s_new.png' % self.IconPath, u'%s %s' % (self.trUtf8('&Edit'), self.PluginNameVisible), self.onEditClick)) self.ListView.addAction(contextMenuSeparator(self.ListView)) @@ -356,33 +356,36 @@ class MediaManagerItem(QtGui.QWidget): QtGui.QMessageBox.information(self, self.trUtf8('No items selected...'), self.trUtf8('You must select one or more items')) - log.debug(self.PluginNameShort + u' Preview Requested') - service_item = self.buildServiceItem() - if service_item: - service_item.fromPlugin = True - self.parent.preview_controller.addServiceItem(service_item) + else: + log.debug(self.PluginNameShort + u' Preview Requested') + service_item = self.buildServiceItem() + if service_item: + service_item.fromPlugin = True + self.parent.preview_controller.addServiceItem(service_item) def onLiveClick(self): if not self.ListView.selectedIndexes(): QtGui.QMessageBox.information(self, self.trUtf8('No items selected...'), self.trUtf8('You must select one or more items')) - log.debug(self.PluginNameShort + u' Live Requested') - service_item = self.buildServiceItem() - if service_item: - service_item.fromPlugin = True - self.parent.live_controller.addServiceItem(service_item) + else: + log.debug(self.PluginNameShort + u' Live Requested') + service_item = self.buildServiceItem() + if service_item: + service_item.fromPlugin = True + self.parent.live_controller.addServiceItem(service_item) def onAddClick(self): if not self.ListView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, self.trUtf8('No items selected...'), self.trUtf8('You must select one or more items')) - log.debug(self.PluginNameShort + u' Add Requested') - service_item = self.buildServiceItem() - if service_item: - service_item.fromPlugin = False - self.parent.service_manager.addServiceItem(service_item) + else: + log.debug(self.PluginNameShort + u' Add Requested') + service_item = self.buildServiceItem() + if service_item: + service_item.fromPlugin = False + self.parent.service_manager.addServiceItem(service_item) def buildServiceItem(self): """ diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index ddb8360da..a2beb1519 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -206,7 +206,7 @@ class RenderManager(object): footer.append(u'Public Domain') footer.append(u'CCLI 123456') formatted = self.renderer.format_slide(verse, False) - return self.renderer.generate_frame_from_lines(formatted[0], footer) + return self.renderer.generate_frame_from_lines(formatted[0], footer)[u'main'] def format_slide(self, words): """ diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 7cb3906ab..8f30499f5 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -293,7 +293,7 @@ class ServiceItem(object): if self.service_item_type == ServiceItemType.Text: return self.render_individual(row) else: - return self._raw_frames[row][u'image'] + return {u'main':self._raw_frames[row][u'image'], u'trans':None} def get_frame_title(self, row=0): """ diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index 5cc14f89b..c287c432f 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -68,21 +68,30 @@ class OpenLPToolbar(QtGui.QToolBar): ``objectname`` The name of the object, as used in `