forked from openlp/openlp
commit
2d870d1146
|
@ -15,7 +15,24 @@ You should have received a copy of the GNU General Public License along with
|
||||||
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
"""
|
"""
|
||||||
__all__ = ['convertStringToBoolean']
|
import types
|
||||||
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
|
__all__ = ['convertStringToBoolean','buildIcon',]
|
||||||
|
|
||||||
def convertStringToBoolean(stringvalue):
|
def convertStringToBoolean(stringvalue):
|
||||||
return stringvalue.strip().lower() in (u'true', u'yes', u'y')
|
return stringvalue.strip().lower() in (u'true', u'yes', u'y')
|
||||||
|
|
||||||
|
def buildIcon(icon):
|
||||||
|
ButtonIcon = None
|
||||||
|
if type(icon) is QtGui.QIcon:
|
||||||
|
ButtonIcon = icon
|
||||||
|
elif type(icon) is types.StringType or type(icon) is types.UnicodeType:
|
||||||
|
ButtonIcon = QtGui.QIcon()
|
||||||
|
if icon.startswith(u':/'):
|
||||||
|
ButtonIcon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal,
|
||||||
|
QtGui.QIcon.Off)
|
||||||
|
else:
|
||||||
|
ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QImage(icon)),
|
||||||
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
|
return ButtonIcon
|
||||||
|
|
|
@ -37,10 +37,12 @@ class EventType(object):
|
||||||
AfterSaveService = 4
|
AfterSaveService = 4
|
||||||
LoadServiceItem = 5
|
LoadServiceItem = 5
|
||||||
# Preview events
|
# Preview events
|
||||||
PreviewBeforeLoad = 11
|
PreviewShow = 10
|
||||||
PreviewAfterLoad = 12
|
LiveShow = 11
|
||||||
PreviewBeforeShow = 13
|
#PreviewBeforeLoad = 11
|
||||||
PreviewAfterShow = 14
|
#PreviewAfterLoad = 12
|
||||||
|
#PreviewBeforeShow = 13
|
||||||
|
#PreviewAfterShow = 14
|
||||||
|
|
||||||
ThemeListChanged = 15
|
ThemeListChanged = 15
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
import types
|
import types
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.resources import *
|
|
||||||
from openlp.core.lib.toolbar import *
|
from openlp.core.lib.toolbar import *
|
||||||
|
|
||||||
class MediaManagerItem(QtGui.QWidget):
|
class MediaManagerItem(QtGui.QWidget):
|
||||||
|
|
|
@ -18,12 +18,12 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import types
|
|
||||||
import time
|
import time
|
||||||
|
from openlp import buildIcon
|
||||||
from PyQt4.QtCore import *
|
from PyQt4.QtCore import *
|
||||||
from PyQt4.QtGui import *
|
from PyQt4.QtGui import *
|
||||||
|
|
||||||
|
|
||||||
class ServiceItem():
|
class ServiceItem():
|
||||||
"""
|
"""
|
||||||
The service item is a base class for the plugins to use to interact with
|
The service item is a base class for the plugins to use to interact with
|
||||||
|
@ -50,18 +50,7 @@ class ServiceItem():
|
||||||
log.debug(u'Service item created for %s', self.shortname)
|
log.debug(u'Service item created for %s', self.shortname)
|
||||||
|
|
||||||
def addIcon(self, icon):
|
def addIcon(self, icon):
|
||||||
ButtonIcon = None
|
self.iconic_representation = buildIcon(icon)
|
||||||
if type(icon) is QIcon:
|
|
||||||
ButtonIcon = icon
|
|
||||||
elif type(icon) is types.StringType or type(icon) is types.UnicodeType:
|
|
||||||
ButtonIcon = QIcon()
|
|
||||||
if icon.startswith(u':/'):
|
|
||||||
ButtonIcon.addPixmap(QPixmap(icon), QIcon.Normal,
|
|
||||||
QIcon.Off)
|
|
||||||
else:
|
|
||||||
ButtonIcon.addPixmap(QPixmap.fromImage(QImage(icon)),
|
|
||||||
QIcon.Normal, QIcon.Off)
|
|
||||||
self.iconic_representation = ButtonIcon
|
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -88,11 +88,17 @@ class MainWindow(object):
|
||||||
self.plugin_manager.initialise_plugins()
|
self.plugin_manager.initialise_plugins()
|
||||||
|
|
||||||
# Once all components are initialised load the Themes
|
# Once all components are initialised load the Themes
|
||||||
log.info(u'Load Themes')
|
log.info(u'Load Themes and Managers')
|
||||||
|
self.PreviewController.eventManager = self.EventManager
|
||||||
|
self.PreviewController.serviceManager = self.ServiceManagerContents
|
||||||
|
self.LiveController.eventManager = self.EventManager
|
||||||
|
self.LiveController.serviceManager = self.ServiceManagerContents
|
||||||
self.ThemeManagerContents.eventManager = self.EventManager
|
self.ThemeManagerContents.eventManager = self.EventManager
|
||||||
self.ThemeManagerContents.renderManager = self.RenderManager
|
self.ThemeManagerContents.renderManager = self.RenderManager
|
||||||
self.ServiceManagerContents.renderManager = self.RenderManager
|
self.ServiceManagerContents.renderManager = self.RenderManager
|
||||||
self.ServiceManagerContents.eventManager = self.EventManager
|
self.ServiceManagerContents.eventManager = self.EventManager
|
||||||
|
self.ServiceManagerContents.liveController = self.LiveController
|
||||||
|
self.ServiceManagerContents.previewController = self.PreviewController
|
||||||
self.ThemeManagerContents.serviceManager = self.ServiceManagerContents
|
self.ThemeManagerContents.serviceManager = self.ServiceManagerContents
|
||||||
self.ThemeManagerContents.loadThemes()
|
self.ThemeManagerContents.loadThemes()
|
||||||
|
|
||||||
|
|
|
@ -20,94 +20,15 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from time import sleep
|
|
||||||
from copy import deepcopy
|
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import OpenLPToolbar
|
from openlp.core.lib import OpenLPToolbar
|
||||||
from openlp.core.lib import ServiceItem
|
from openlp.core.lib import ServiceItem
|
||||||
from openlp.core.lib import RenderManager
|
from openlp.core.lib import RenderManager
|
||||||
from openlp.core import translate
|
from openlp.core import translate
|
||||||
|
from openlp import buildIcon
|
||||||
from openlp.core.lib import Event, EventType, EventManager
|
from openlp.core.lib import Event, EventType, EventManager
|
||||||
|
|
||||||
#class ServiceData(QtCore.QAbstractItemModel):
|
|
||||||
# """
|
|
||||||
# Tree of items for an order of service.
|
|
||||||
# Includes methods for reading and writing the contents to an OOS file
|
|
||||||
# Root contains a list of ServiceItems
|
|
||||||
# """
|
|
||||||
# global log
|
|
||||||
# log=logging.getLogger(u'ServiceData')
|
|
||||||
# def __init__(self):
|
|
||||||
# QtCore.QAbstractItemModel.__init__(self)
|
|
||||||
# self.items=[]
|
|
||||||
# log.info("Starting")
|
|
||||||
#
|
|
||||||
# def clearItems(self):
|
|
||||||
# self.items = []
|
|
||||||
#
|
|
||||||
# def columnCount(self, parent=None):
|
|
||||||
# return 1; # always only a single column (for now)
|
|
||||||
#
|
|
||||||
# def rowCount(self, parent=None):
|
|
||||||
# return len(self.items)
|
|
||||||
#
|
|
||||||
# def insertRow(self, row, service_item):
|
|
||||||
# self.beginInsertRows(QtCore.QModelIndex(),row,row)
|
|
||||||
# log.info("insert row %s:%s" % (row,service_item))
|
|
||||||
# self.items.insert(row, service_item)
|
|
||||||
# log.info("Items: %s" % self.items)
|
|
||||||
# self.endInsertRows()
|
|
||||||
#
|
|
||||||
# def removeRow(self, row):
|
|
||||||
# self.beginRemoveRows(QtCore.QModelIndex(), row,row)
|
|
||||||
# self.items.pop(row)
|
|
||||||
# self.endRemoveRows()
|
|
||||||
#
|
|
||||||
# def addRow(self, service_item):
|
|
||||||
# self.insertRow(len(self.items), service_item)
|
|
||||||
#
|
|
||||||
# def index(self, row, col, parent = QtCore.QModelIndex()):
|
|
||||||
# return self.createIndex(row,col)
|
|
||||||
#
|
|
||||||
# def parent(self, index=QtCore.QModelIndex()):
|
|
||||||
# return QtCore.QModelIndex() # no children as yet
|
|
||||||
#
|
|
||||||
# def data(self, index, role):
|
|
||||||
# """
|
|
||||||
# Called by the service manager to draw us in the service window
|
|
||||||
# """
|
|
||||||
# log.debug(u'data %s %d', index, role)
|
|
||||||
# row = index.row()
|
|
||||||
# if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
|
|
||||||
# return QtCore.QVariant()
|
|
||||||
# item = self.items[row]
|
|
||||||
# if role == QtCore.Qt.DisplayRole:
|
|
||||||
# retval= item.title + u':' + item.shortname
|
|
||||||
# elif role == QtCore.Qt.DecorationRole:
|
|
||||||
# retval = item.iconic_representation
|
|
||||||
# elif role == QtCore.Qt.ToolTipRole:
|
|
||||||
# retval = None
|
|
||||||
# else:
|
|
||||||
# retval = None
|
|
||||||
# if retval == None:
|
|
||||||
# retval = QtCore.QVariant()
|
|
||||||
## log.info("Returning"+ str(retval))
|
|
||||||
# if type(retval) is not type(QtCore.QVariant):
|
|
||||||
# return QtCore.QVariant(retval)
|
|
||||||
# else:
|
|
||||||
# return retval
|
|
||||||
#
|
|
||||||
# def __iter__(self):
|
|
||||||
# for i in self.items:
|
|
||||||
# yield i
|
|
||||||
#
|
|
||||||
# def item(self, row):
|
|
||||||
# log.info("Get Item:%d -> %s" %(row, str(self.items)))
|
|
||||||
# return self.items[row]
|
|
||||||
|
|
||||||
|
|
||||||
class ServiceManager(QtGui.QWidget):
|
class ServiceManager(QtGui.QWidget):
|
||||||
|
|
||||||
"""Manages the orders of service. Currently this involves taking
|
"""Manages the orders of service. Currently this involves taking
|
||||||
|
@ -122,6 +43,7 @@ class ServiceManager(QtGui.QWidget):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
QtGui.QWidget.__init__(self)
|
QtGui.QWidget.__init__(self)
|
||||||
self.parent=parent
|
self.parent=parent
|
||||||
|
self.serviceItems=[]
|
||||||
self.Layout = QtGui.QVBoxLayout(self)
|
self.Layout = QtGui.QVBoxLayout(self)
|
||||||
self.Layout.setSpacing(0)
|
self.Layout.setSpacing(0)
|
||||||
self.Layout.setMargin(0)
|
self.Layout.setMargin(0)
|
||||||
|
@ -153,20 +75,48 @@ class ServiceManager(QtGui.QWidget):
|
||||||
self.Toolbar.addAction(self.ThemeWidget)
|
self.Toolbar.addAction(self.ThemeWidget)
|
||||||
self.Layout.addWidget(self.Toolbar)
|
self.Layout.addWidget(self.Toolbar)
|
||||||
|
|
||||||
self.serviceManagerList = QtGui.QTreeWidget(self)
|
self.ServiceManagerList = QtGui.QTreeWidget(self)
|
||||||
self.serviceManagerList.setEditTriggers(QtGui.QAbstractItemView.CurrentChanged|QtGui.QAbstractItemView.DoubleClicked|QtGui.QAbstractItemView.EditKeyPressed)
|
self.ServiceManagerList.setEditTriggers(QtGui.QAbstractItemView.CurrentChanged|QtGui.QAbstractItemView.DoubleClicked|QtGui.QAbstractItemView.EditKeyPressed)
|
||||||
self.serviceManagerList.setDragDropMode(QtGui.QAbstractItemView.DragDrop)
|
self.ServiceManagerList.setDragDropMode(QtGui.QAbstractItemView.DragDrop)
|
||||||
self.serviceManagerList.setAlternatingRowColors(True)
|
self.ServiceManagerList.setAlternatingRowColors(True)
|
||||||
self.serviceManagerList.setObjectName("serviceManagerList")
|
self.ServiceManagerList.setObjectName("ServiceManagerList")
|
||||||
self.serviceManagerList .__class__.dragEnterEvent=self.dragEnterEvent
|
#endable drop
|
||||||
self.serviceManagerList .__class__.dragMoveEvent=self.dragEnterEvent
|
self.ServiceManagerList .__class__.dragEnterEvent=self.dragEnterEvent
|
||||||
self.serviceManagerList .__class__.dropEvent =self.dropEvent
|
self.ServiceManagerList .__class__.dragMoveEvent=self.dragEnterEvent
|
||||||
|
self.ServiceManagerList .__class__.dropEvent =self.dropEvent
|
||||||
|
|
||||||
self.Layout.addWidget(self.serviceManagerList)
|
self.ServiceManagerList.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||||
|
|
||||||
|
self.ServiceManagerList.addAction(self.contextMenuAction(
|
||||||
|
self.ServiceManagerList, ':/system/system_preview.png',
|
||||||
|
translate(u'ServiceManager',u'&Preview Verse'), self.makePreview))
|
||||||
|
self.ServiceManagerList.addAction(self.contextMenuAction(
|
||||||
|
self.ServiceManagerList, ':/system/system_live.png',
|
||||||
|
translate(u'ServiceManager',u'&Show Live'), self.makeLive))
|
||||||
|
self.ServiceManagerList.addAction(self.contextMenuSeparator(self.ServiceManagerList))
|
||||||
|
self.ServiceManagerList.addAction(self.contextMenuAction(
|
||||||
|
self.ServiceManagerList, ':/services/service_delete',
|
||||||
|
translate(u'ServiceManager',u'&Remove from Service'), self.onDeleteFromService))
|
||||||
|
|
||||||
|
self.Layout.addWidget(self.ServiceManagerList)
|
||||||
|
|
||||||
QtCore.QObject.connect(self.ThemeComboBox,
|
QtCore.QObject.connect(self.ThemeComboBox,
|
||||||
QtCore.SIGNAL("activated(int)"), self.onThemeComboBoxSelected)
|
QtCore.SIGNAL("activated(int)"), self.onThemeComboBoxSelected)
|
||||||
|
|
||||||
|
def contextMenuAction(self, base, icon, text, slot):
|
||||||
|
"""
|
||||||
|
Utility method to help build context menus for plugins
|
||||||
|
"""
|
||||||
|
action = QtGui.QAction(text, base)
|
||||||
|
action .setIcon(buildIcon(icon))
|
||||||
|
QtCore.QObject.connect(action, QtCore.SIGNAL("triggered()"), slot)
|
||||||
|
return action
|
||||||
|
|
||||||
|
def contextMenuSeparator(self, base):
|
||||||
|
action = QtGui.QAction("", base)
|
||||||
|
action.setSeparator(True)
|
||||||
|
return action
|
||||||
|
|
||||||
def onServiceTop(self):
|
def onServiceTop(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -195,16 +145,43 @@ class ServiceManager(QtGui.QWidget):
|
||||||
self.renderManager.default_theme = self.ThemeComboBox.currentText()
|
self.renderManager.default_theme = self.ThemeComboBox.currentText()
|
||||||
|
|
||||||
def addServiceItem(self, item):
|
def addServiceItem(self, item):
|
||||||
treewidgetitem = QtGui.QTreeWidgetItem(self.serviceManagerList)
|
self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1})
|
||||||
|
treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList)
|
||||||
treewidgetitem.setText(0,item.title + u':' + item.shortname)
|
treewidgetitem.setText(0,item.title + u':' + item.shortname)
|
||||||
treewidgetitem.setIcon(0,item.iconic_representation)
|
treewidgetitem.setIcon(0,item.iconic_representation)
|
||||||
|
treewidgetitem.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(len(self.serviceItems)))
|
||||||
treewidgetitem.setExpanded(True)
|
treewidgetitem.setExpanded(True)
|
||||||
item.render()
|
item.render()
|
||||||
|
count = 0
|
||||||
for frame in item.frames:
|
for frame in item.frames:
|
||||||
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
|
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
|
||||||
text = frame[u'formatted'][0]
|
text = frame[u'formatted'][0]
|
||||||
treewidgetitem1.setText(0,text[:10])
|
treewidgetitem1.setText(0,text[:30])
|
||||||
#treewidgetitem1.setIcon(0,frame[u'image'])
|
treewidgetitem1.setData(0, QtCore.Qt.UserRole,QtCore.QVariant(count))
|
||||||
|
count = count + 1
|
||||||
|
|
||||||
|
def makePreview(self):
|
||||||
|
item, count = self.findServiceItem()
|
||||||
|
self.previewController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
|
||||||
|
|
||||||
|
def makeLive(self):
|
||||||
|
item, count = self.findServiceItem()
|
||||||
|
self.liveController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
|
||||||
|
|
||||||
|
def findServiceItem(self):
|
||||||
|
items = self.ServiceManagerList.selectedItems()
|
||||||
|
pos = 0
|
||||||
|
count = 0
|
||||||
|
for item in items:
|
||||||
|
childCount = item.childCount()
|
||||||
|
if childCount >= 1: # is the parent
|
||||||
|
pos = item.data(0, QtCore.Qt.UserRole).toInt()[0]
|
||||||
|
else:
|
||||||
|
parentitem = item.parent()
|
||||||
|
pos = parentitem.data(0, QtCore.Qt.UserRole).toInt()[0]
|
||||||
|
count = item.data(0, QtCore.Qt.UserRole).toInt()[0]
|
||||||
|
pos = pos - 1 #adjust for zeor indexing
|
||||||
|
return pos, count
|
||||||
|
|
||||||
def dragEnterEvent(self, event):
|
def dragEnterEvent(self, event):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -24,6 +24,7 @@ from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import OpenLPToolbar
|
from openlp.core.lib import OpenLPToolbar
|
||||||
from openlp.core import translate
|
from openlp.core import translate
|
||||||
|
from openlp.core.lib import Event, EventType, EventManager
|
||||||
|
|
||||||
class SlideData(QtCore.QAbstractListModel):
|
class SlideData(QtCore.QAbstractListModel):
|
||||||
"""
|
"""
|
||||||
|
@ -41,6 +42,10 @@ class SlideData(QtCore.QAbstractListModel):
|
||||||
self.maximagewidth=self.rowheight*16/9.0;
|
self.maximagewidth=self.rowheight*16/9.0;
|
||||||
log.info(u'Starting')
|
log.info(u'Starting')
|
||||||
|
|
||||||
|
def eventFilter(self, obj, event):
|
||||||
|
print obj, event
|
||||||
|
return false
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
self.items=[]
|
self.items=[]
|
||||||
|
|
||||||
|
@ -54,7 +59,7 @@ class SlideData(QtCore.QAbstractListModel):
|
||||||
self.beginInsertRows(QtCore.QModelIndex(),row,row)
|
self.beginInsertRows(QtCore.QModelIndex(),row,row)
|
||||||
log.info(u'insert row %d' % row)
|
log.info(u'insert row %d' % row)
|
||||||
# create a preview image
|
# create a preview image
|
||||||
frame1 = frame.scaled(QtCore.QSize(350,260), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
frame1 = frame.scaled(QtCore.QSize(300,225), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
||||||
self.items.insert(row,(frame1, framenumber))
|
self.items.insert(row,(frame1, framenumber))
|
||||||
log.info(u'Items: %s' % self.items)
|
log.info(u'Items: %s' % self.items)
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
|
@ -71,13 +76,10 @@ class SlideData(QtCore.QAbstractListModel):
|
||||||
row=index.row()
|
row=index.row()
|
||||||
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
|
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
|
||||||
return QtCore.QVariant()
|
return QtCore.QVariant()
|
||||||
# if role==Qt.DisplayRole:
|
|
||||||
# retval= self.items[row][1]
|
|
||||||
if role == QtCore.Qt.DecorationRole:
|
if role == QtCore.Qt.DecorationRole:
|
||||||
retval= self.items[row][0]
|
retval= self.items[row][0]
|
||||||
else:
|
else:
|
||||||
retval= QtCore.QVariant()
|
retval= QtCore.QVariant()
|
||||||
# log.info("Returning"+ str(retval))
|
|
||||||
if type(retval) is not type(QtCore.QVariant):
|
if type(retval) is not type(QtCore.QVariant):
|
||||||
return QtCore.QVariant(retval)
|
return QtCore.QVariant(retval)
|
||||||
else:
|
else:
|
||||||
|
@ -117,17 +119,26 @@ class SlideController(QtGui.QWidget):
|
||||||
self.PanelLayout.setMargin(0)
|
self.PanelLayout.setMargin(0)
|
||||||
|
|
||||||
self.Controller = QtGui.QScrollArea(self.Splitter)
|
self.Controller = QtGui.QScrollArea(self.Splitter)
|
||||||
|
self.Controller.setGeometry(QtCore.QRect(0, 0, 700, 536))
|
||||||
self.Controller.setWidgetResizable(True)
|
self.Controller.setWidgetResizable(True)
|
||||||
|
self.Controller.setObjectName("scrollArea")
|
||||||
|
|
||||||
self.PreviewListView = QtGui.QListView(self.Splitter)
|
self.scrollAreaWidgetContents = QtGui.QWidget(self.Controller)
|
||||||
self.PreviewListView.setEditTriggers(QtGui.QAbstractItemView.CurrentChanged)
|
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 700, 536))
|
||||||
self.PreviewListView.setAlternatingRowColors(True)
|
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
|
||||||
|
self.gridLayout = QtGui.QGridLayout(self.scrollAreaWidgetContents)
|
||||||
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
|
|
||||||
|
self.PreviewListView = QtGui.QListView(self.scrollAreaWidgetContents)
|
||||||
self.PreviewListData = SlideData()
|
self.PreviewListData = SlideData()
|
||||||
|
self.PreviewListView.isLive = self.isLive
|
||||||
self.PreviewListView.setModel(self.PreviewListData)
|
self.PreviewListView.setModel(self.PreviewListData)
|
||||||
self.PreviewListView.setSelectionRectVisible(True)
|
self.PreviewListView.setSelectionRectVisible(True)
|
||||||
|
self.PreviewListView.setSpacing(5)
|
||||||
|
self.PreviewListView.setObjectName("PreviewListView")
|
||||||
|
|
||||||
self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536))
|
self.gridLayout.addWidget(self.PreviewListView, 0, 0, 1, 1)
|
||||||
self.Controller.setWidget(self.PreviewListView)
|
self.Controller.setWidget(self.scrollAreaWidgetContents)
|
||||||
|
|
||||||
self.Toolbar = OpenLPToolbar(self.Splitter)
|
self.Toolbar = OpenLPToolbar(self.Splitter)
|
||||||
sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
||||||
|
@ -151,7 +162,17 @@ class SlideController(QtGui.QWidget):
|
||||||
|
|
||||||
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
|
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
|
||||||
|
|
||||||
self.SlidePreview = QtGui.QLabel(self.Splitter)
|
self.PreviewFrame = QtGui.QFrame(self.Splitter)
|
||||||
|
self.PreviewFrame.setGeometry(QtCore.QRect(50, 270, 250, 190))
|
||||||
|
self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel)
|
||||||
|
self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken)
|
||||||
|
self.PreviewFrame.setObjectName(u'PreviewFrame')
|
||||||
|
|
||||||
|
self.grid = QtGui.QGridLayout(self.PreviewFrame)
|
||||||
|
self.grid.setMargin(10)
|
||||||
|
self.grid.setObjectName(u'grid')
|
||||||
|
|
||||||
|
self.SlidePreview = QtGui.QLabel(self.PreviewFrame)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
@ -163,16 +184,12 @@ class SlideController(QtGui.QWidget):
|
||||||
self.SlidePreview.setLineWidth(1)
|
self.SlidePreview.setLineWidth(1)
|
||||||
self.SlidePreview.setScaledContents(True)
|
self.SlidePreview.setScaledContents(True)
|
||||||
self.SlidePreview.setObjectName(u'SlidePreview')
|
self.SlidePreview.setObjectName(u'SlidePreview')
|
||||||
|
self.grid.addWidget(self.SlidePreview, 0, 0, 1, 1)
|
||||||
|
|
||||||
QtCore.QObject.connect(self.PreviewListView,
|
QtCore.QObject.connect(self.PreviewListView,
|
||||||
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
|
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
|
||||||
QtCore.QObject.connect(self.PreviewListView,
|
QtCore.QObject.connect(self.PreviewListView,
|
||||||
QtCore.SIGNAL(u'clicked(QListViewItem)'), self.onCurrentItemChanged)
|
QtCore.SIGNAL(u'activated(QModelIndex)'), self.onSlideSelected)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def onCurrentItemChanged(self, current, previous):
|
|
||||||
print u'Method slideControllerList currentItemChanged called', current, previous
|
|
||||||
|
|
||||||
def onSlideSelectedFirst(self):
|
def onSlideSelectedFirst(self):
|
||||||
row = self.PreviewListData.createIndex(0, 0)
|
row = self.PreviewListData.createIndex(0, 0)
|
||||||
|
@ -241,5 +258,9 @@ class SlideController(QtGui.QWidget):
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def render(self):
|
def addServiceManagerItem(self, serviceitem, slideno):
|
||||||
pass
|
self.addServiceItem(serviceitem)
|
||||||
|
row = self.PreviewListData.createIndex(slideno, 0)
|
||||||
|
if row.isValid():
|
||||||
|
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
|
self.onSlideSelected(row)
|
||||||
|
|
|
@ -23,7 +23,6 @@ from PyQt4 import QtCore, QtGui
|
||||||
from PyQt4.QtCore import *
|
from PyQt4.QtCore import *
|
||||||
from PyQt4.QtGui import *
|
from PyQt4.QtGui import *
|
||||||
|
|
||||||
from openlp.core.resources import *
|
|
||||||
from openlp.core.lib import Plugin, Event
|
from openlp.core.lib import Plugin, Event
|
||||||
from openlp.core.lib import EventType
|
from openlp.core.lib import EventType
|
||||||
|
|
||||||
|
@ -83,7 +82,16 @@ class BiblePlugin(Plugin):
|
||||||
"""
|
"""
|
||||||
Handle the event contained in the event object.
|
Handle the event contained in the event object.
|
||||||
"""
|
"""
|
||||||
log.debug(u'Handle event called with event %s'%event.event_type)
|
log.debug(u'Handle event called with event %s with payload %s'%(event.event_type, event.payload))
|
||||||
if event.event_type == EventType.ThemeListChanged:
|
if event.event_type == EventType.ThemeListChanged:
|
||||||
log.debug(u'New Theme request received')
|
log.debug(u'New Theme request received')
|
||||||
#self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
#self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
||||||
|
if event.event_type == EventType.LoadServiceItem and event.payload == 'Bibles':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onBibleAddClick()
|
||||||
|
if event.event_type == EventType.PreviewShow and event.payload == 'Bibles':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onBiblePreviewClick()
|
||||||
|
if event.event_type == EventType.LiveShow and event.payload == 'Bibles':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onBibleLiveClick()
|
||||||
|
|
|
@ -28,6 +28,30 @@ from openlp.core.lib import ServiceItem
|
||||||
from openlp.plugins.bibles.forms import BibleImportForm
|
from openlp.plugins.bibles.forms import BibleImportForm
|
||||||
from openlp.plugins.bibles.lib import TextListData
|
from openlp.plugins.bibles.lib import TextListData
|
||||||
|
|
||||||
|
class BibleList(QtGui.QListView):
|
||||||
|
|
||||||
|
def __init__(self,parent=None,name=None):
|
||||||
|
QtGui.QListView.__init__(self,parent)
|
||||||
|
|
||||||
|
def mouseMoveEvent(self, event):
|
||||||
|
"""
|
||||||
|
Drag and drop event does not care what data is selected
|
||||||
|
as the recepient will use events to request the data move
|
||||||
|
just tell it what plugin to call
|
||||||
|
"""
|
||||||
|
if event.buttons() != QtCore.Qt.LeftButton:
|
||||||
|
return
|
||||||
|
drag = QtGui.QDrag(self)
|
||||||
|
mimeData = QtCore.QMimeData()
|
||||||
|
drag.setMimeData(mimeData)
|
||||||
|
mimeData.setText(u'Bibles')
|
||||||
|
|
||||||
|
dropAction = drag.start(QtCore.Qt.CopyAction)
|
||||||
|
|
||||||
|
if dropAction == QtCore.Qt.CopyAction:
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
|
||||||
class BibleMediaItem(MediaManagerItem):
|
class BibleMediaItem(MediaManagerItem):
|
||||||
"""
|
"""
|
||||||
This is the custom media manager item for Bibles.
|
This is the custom media manager item for Bibles.
|
||||||
|
@ -179,11 +203,12 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
# Add the search tab widget to the page layout
|
# Add the search tab widget to the page layout
|
||||||
self.PageLayout.addWidget(self.SearchTabWidget)
|
self.PageLayout.addWidget(self.SearchTabWidget)
|
||||||
|
|
||||||
self.BibleListView = QtGui.QListView()
|
self.BibleListView = BibleList()
|
||||||
self.BibleListView.setAlternatingRowColors(True)
|
self.BibleListView.setAlternatingRowColors(True)
|
||||||
self.BibleListData = TextListData()
|
self.BibleListData = TextListData()
|
||||||
self.BibleListView.setModel(self.BibleListData)
|
self.BibleListView.setModel(self.BibleListData)
|
||||||
self.BibleListView.setSelectionMode(2)
|
self.BibleListView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
|
||||||
|
self.BibleListView.setDragEnabled(True)
|
||||||
|
|
||||||
self.PageLayout.addWidget(self.BibleListView)
|
self.PageLayout.addWidget(self.BibleListView)
|
||||||
|
|
||||||
|
@ -205,6 +230,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
QtCore.SIGNAL("pressed()"), self.onQuickSearchButton)
|
QtCore.SIGNAL("pressed()"), self.onQuickSearchButton)
|
||||||
# Context Menus
|
# Context Menus
|
||||||
self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||||
|
|
||||||
self.BibleListView.addAction(self.contextMenuAction(
|
self.BibleListView.addAction(self.contextMenuAction(
|
||||||
self.BibleListView, ':/system/system_preview.png',
|
self.BibleListView, ':/system/system_preview.png',
|
||||||
translate(u'BibleMediaItem',u'&Preview Verse'), self.onBiblePreviewClick))
|
translate(u'BibleMediaItem',u'&Preview Verse'), self.onBiblePreviewClick))
|
||||||
|
|
|
@ -56,10 +56,16 @@ class CustomPlugin(Plugin):
|
||||||
"""
|
"""
|
||||||
Handle the event contained in the event object.
|
Handle the event contained in the event object.
|
||||||
"""
|
"""
|
||||||
log.debug(u'Handle event called with event %s'%event.event_type)
|
log.debug(u'Handle event called with event %s with payload %s'%(event.event_type, event.payload))
|
||||||
if event.event_type == EventType.ThemeListChanged:
|
if event.event_type == EventType.ThemeListChanged:
|
||||||
log.debug(u'New Theme request received')
|
log.debug(u'New Theme request received')
|
||||||
self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
|
||||||
if event.event_type == EventType.LoadServiceItem and event.payload == 'Custom':
|
if event.event_type == EventType.LoadServiceItem and event.payload == 'Custom':
|
||||||
log.debug(u'Load Service Item received')
|
log.debug(u'Load Service Item received')
|
||||||
self.media_item.onCustomAddClick()
|
self.media_item.onCustomAddClick()
|
||||||
|
if event.event_type == EventType.PreviewShow and event.payload == 'Custom':
|
||||||
|
log.debug(u'Load Service Item received ')
|
||||||
|
self.media_item.onCustomPreviewClick()
|
||||||
|
if event.event_type == EventType.LiveShow and event.payload == 'Custom':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onCustomLiveClick()
|
||||||
|
|
|
@ -28,6 +28,29 @@ from openlp.core.lib import ServiceItem
|
||||||
|
|
||||||
from openlp.plugins.custom.lib import TextListData
|
from openlp.plugins.custom.lib import TextListData
|
||||||
|
|
||||||
|
class CustomList(QtGui.QListView):
|
||||||
|
|
||||||
|
def __init__(self,parent=None,name=None):
|
||||||
|
QtGui.QListView.__init__(self,parent)
|
||||||
|
|
||||||
|
def mouseMoveEvent(self, event):
|
||||||
|
"""
|
||||||
|
Drag and drop event does not care what data is selected
|
||||||
|
as the recepient will use events to request the data move
|
||||||
|
just tell it what plugin to call
|
||||||
|
"""
|
||||||
|
if event.buttons() != QtCore.Qt.LeftButton:
|
||||||
|
return
|
||||||
|
drag = QtGui.QDrag(self)
|
||||||
|
mimeData = QtCore.QMimeData()
|
||||||
|
drag.setMimeData(mimeData)
|
||||||
|
mimeData.setText(u'Custom')
|
||||||
|
|
||||||
|
dropAction = drag.start(QtCore.Qt.CopyAction)
|
||||||
|
|
||||||
|
if dropAction == QtCore.Qt.CopyAction:
|
||||||
|
self.close()
|
||||||
|
|
||||||
class CustomMediaItem(MediaManagerItem):
|
class CustomMediaItem(MediaManagerItem):
|
||||||
"""
|
"""
|
||||||
This is the custom media manager item for Custom Slides.
|
This is the custom media manager item for Custom Slides.
|
||||||
|
@ -105,12 +128,11 @@ class CustomMediaItem(MediaManagerItem):
|
||||||
# Add the Custom widget to the page layout
|
# Add the Custom widget to the page layout
|
||||||
self.PageLayout.addWidget(self.CustomWidget)
|
self.PageLayout.addWidget(self.CustomWidget)
|
||||||
|
|
||||||
self.CustomListView = QtGui.QListView()
|
self.CustomListView = CustomList()
|
||||||
self.CustomListView.setAlternatingRowColors(True)
|
self.CustomListView.setAlternatingRowColors(True)
|
||||||
self.CustomListData = TextListData()
|
self.CustomListData = TextListData()
|
||||||
self.CustomListView.setModel(self.CustomListData)
|
self.CustomListView.setModel(self.CustomListData)
|
||||||
self.CustomListView.setDragEnabled(True)
|
self.CustomListView.setDragEnabled(True)
|
||||||
self.CustomListView .__class__.mouseMoveEvent =self.onMouseMoveEvent
|
|
||||||
|
|
||||||
self.PageLayout.addWidget(self.CustomListView)
|
self.PageLayout.addWidget(self.CustomListView)
|
||||||
|
|
||||||
|
@ -235,27 +257,3 @@ class CustomMediaItem(MediaManagerItem):
|
||||||
service_item.title = title
|
service_item.title = title
|
||||||
service_item.raw_slides = raw_slides
|
service_item.raw_slides = raw_slides
|
||||||
service_item.raw_footer = raw_footer
|
service_item.raw_footer = raw_footer
|
||||||
|
|
||||||
def onMouseMoveEvent(self, event):
|
|
||||||
"""
|
|
||||||
Drag and drop eventDo not care what data is selected
|
|
||||||
as the recepient will use events to request the data move
|
|
||||||
just tell it what plugin to call
|
|
||||||
"""
|
|
||||||
if event.buttons() != QtCore.Qt.LeftButton:
|
|
||||||
return
|
|
||||||
|
|
||||||
items = self.CustomListView.selectedIndexes()
|
|
||||||
if items == []:
|
|
||||||
return
|
|
||||||
|
|
||||||
drag = QtGui.QDrag(self)
|
|
||||||
mimeData = QtCore.QMimeData()
|
|
||||||
drag.setMimeData(mimeData)
|
|
||||||
for item in items:
|
|
||||||
mimeData.setText(u'Custom')
|
|
||||||
|
|
||||||
dropAction = drag.start(QtCore.Qt.CopyAction)
|
|
||||||
|
|
||||||
if dropAction == QtCore.Qt.CopyAction:
|
|
||||||
self.close()
|
|
||||||
|
|
|
@ -21,8 +21,8 @@ import logging
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import Plugin
|
from openlp.core.lib import Plugin, Event
|
||||||
from openlp.core.resources import *
|
from openlp.core.lib import EventType
|
||||||
|
|
||||||
from openlp.plugins.images.lib import ImageMediaItem, ImageServiceItem
|
from openlp.plugins.images.lib import ImageMediaItem, ImageServiceItem
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class ImagePlugin(Plugin):
|
||||||
self.weight = -7
|
self.weight = -7
|
||||||
# Create the plugin icon
|
# Create the plugin icon
|
||||||
self.icon = QtGui.QIcon()
|
self.icon = QtGui.QIcon()
|
||||||
self.icon.addPixmap(QtGui.QPixmap(':/media/media_image.png'),
|
self.icon.addPixmap(QtGui.QPixmap(u':/media/media_image.png'),
|
||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
|
|
||||||
self.preview_service_item = ImageServiceItem(self.preview_controller)
|
self.preview_service_item = ImageServiceItem(self.preview_controller)
|
||||||
|
@ -45,11 +45,25 @@ class ImagePlugin(Plugin):
|
||||||
|
|
||||||
def get_media_manager_item(self):
|
def get_media_manager_item(self):
|
||||||
# Create the MediaManagerItem object
|
# Create the MediaManagerItem object
|
||||||
self.MediaManagerItem = ImageMediaItem(self, self.icon, u'Images')
|
self.media_item = ImageMediaItem(self, self.icon, u'Images')
|
||||||
return self.MediaManagerItem
|
return self.media_item
|
||||||
|
|
||||||
def initialise(self):
|
def initialise(self):
|
||||||
log.info(u'Plugin Initialising')
|
log.info(u'Plugin Initialising')
|
||||||
log.info(u'Done')
|
|
||||||
|
def handle_event(self, event):
|
||||||
|
"""
|
||||||
|
Handle the event contained in the event object.
|
||||||
|
"""
|
||||||
|
log.debug(u'Handle event called with event %s with payload %s'%(event.event_type, event.payload))
|
||||||
|
if event.event_type == EventType.LoadServiceItem and event.payload == 'Image':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onImageAddClick()
|
||||||
|
if event.event_type == EventType.PreviewShow and event.payload == 'Image':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onImagePreviewClick()
|
||||||
|
if event.event_type == EventType.LiveShow and event.payload == 'Image':
|
||||||
|
log.debug(u'Load Service Item received')
|
||||||
|
self.media_item.onImageLiveClick()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,33 @@ from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core import translate
|
from openlp.core import translate
|
||||||
from openlp.core.lib import MediaManagerItem
|
from openlp.core.lib import MediaManagerItem
|
||||||
from openlp.core.resources import *
|
from openlp.core.lib import ServiceItem
|
||||||
|
|
||||||
from openlp.plugins.images.lib import ListWithPreviews
|
from openlp.plugins.images.lib import ListWithPreviews
|
||||||
|
|
||||||
|
class ImageList(QtGui.QListView):
|
||||||
|
|
||||||
|
def __init__(self,parent=None,name=None):
|
||||||
|
QtGui.QListView.__init__(self,parent)
|
||||||
|
|
||||||
|
def mouseMoveEvent(self, event):
|
||||||
|
"""
|
||||||
|
Drag and drop event does not care what data is selected
|
||||||
|
as the recepient will use events to request the data move
|
||||||
|
just tell it what plugin to call
|
||||||
|
"""
|
||||||
|
if event.buttons() != QtCore.Qt.LeftButton:
|
||||||
|
return
|
||||||
|
drag = QtGui.QDrag(self)
|
||||||
|
mimeData = QtCore.QMimeData()
|
||||||
|
drag.setMimeData(mimeData)
|
||||||
|
mimeData.setText(u'Image')
|
||||||
|
|
||||||
|
dropAction = drag.start(QtCore.Qt.CopyAction)
|
||||||
|
|
||||||
|
if dropAction == QtCore.Qt.CopyAction:
|
||||||
|
self.close()
|
||||||
|
|
||||||
class ImageMediaItem(MediaManagerItem):
|
class ImageMediaItem(MediaManagerItem):
|
||||||
"""
|
"""
|
||||||
This is the custom media manager item for images.
|
This is the custom media manager item for images.
|
||||||
|
@ -70,14 +93,19 @@ class ImageMediaItem(MediaManagerItem):
|
||||||
translate('ImageMediaItem', u'Add Image To Service'),
|
translate('ImageMediaItem', u'Add Image To Service'),
|
||||||
translate('ImageMediaItem', u'Add the selected image(s) to the service'),
|
translate('ImageMediaItem', u'Add the selected image(s) to the service'),
|
||||||
':/system/system_add.png', self.onImageAddClick, 'ImageAddItem')
|
':/system/system_add.png', self.onImageAddClick, 'ImageAddItem')
|
||||||
## Add the songlist widget ##
|
|
||||||
self.ImageListView = QtGui.QListView()
|
#Add the Image List widget
|
||||||
|
self.ImageListView = ImageList()
|
||||||
self.ImageListView.uniformItemSizes = True
|
self.ImageListView.uniformItemSizes = True
|
||||||
self.ImageListData = ListWithPreviews()
|
self.ImageListData = ListWithPreviews()
|
||||||
self.ImageListView.setModel(self.ImageListData)
|
self.ImageListView.setModel(self.ImageListData)
|
||||||
|
|
||||||
self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
|
self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
|
||||||
|
self.ImageListView.setSpacing(1)
|
||||||
|
self.ImageListView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
|
||||||
|
self.ImageListView.setAlternatingRowColors(True)
|
||||||
|
self.ImageListView.setDragEnabled(True)
|
||||||
self.ImageListView.setObjectName('ImageListView')
|
self.ImageListView.setObjectName('ImageListView')
|
||||||
|
|
||||||
self.PageLayout.addWidget(self.ImageListView)
|
self.PageLayout.addWidget(self.ImageListView)
|
||||||
|
|
||||||
#define and add the context menu
|
#define and add the context menu
|
||||||
|
@ -96,11 +124,6 @@ class ImageMediaItem(MediaManagerItem):
|
||||||
translate('ImageMediaItem', u'&Add to Service'),
|
translate('ImageMediaItem', u'&Add to Service'),
|
||||||
self.onImageAddClick))
|
self.onImageAddClick))
|
||||||
|
|
||||||
self.ImageListPreview = QtGui.QWidget()
|
|
||||||
self.PageLayout.addWidget(self.ImageListPreview)
|
|
||||||
self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
|
|
||||||
self.ImageListView.setSpacing(1)
|
|
||||||
self.ImageListView.setAlternatingRowColors(True)
|
|
||||||
|
|
||||||
def initialise(self):
|
def initialise(self):
|
||||||
self.loadImageList(self.parent.config.load_list(u'images'))
|
self.loadImageList(self.parent.config.load_list(u'images'))
|
||||||
|
@ -128,20 +151,33 @@ class ImageMediaItem(MediaManagerItem):
|
||||||
self.ImageListData.removeRow(current_row)
|
self.ImageListData.removeRow(current_row)
|
||||||
self.parent.config.set_list(u'images', self.ImageListData.getFileList())
|
self.parent.config.set_list(u'images', self.ImageListData.getFileList())
|
||||||
|
|
||||||
def onImageClick(self, where):
|
def generateSlideData(self, service_item):
|
||||||
indexes = self.ImageListView.selectedIndexes()
|
indexes = self.ImageListView.selectedIndexes()
|
||||||
for index in indexes:
|
for index in indexes:
|
||||||
filename = self.ImageListData.getFilename(index)
|
filename = self.ImageListData.getFilename(index)
|
||||||
log.info(u"Click %s:%s"%(str(where), filename))
|
frame = QtGui.QPixmap(str(filename))
|
||||||
where.add(filename)
|
service_item.frames.append({u'formatted': u'Image', u'image': frame})
|
||||||
where.render()
|
|
||||||
|
|
||||||
def onImagePreviewClick(self):
|
def onImagePreviewClick(self):
|
||||||
self.onImageClick(self.parent.preview_service_item)
|
log.debug(u'Image Preview Requested')
|
||||||
|
service_item = ServiceItem(self.parent)
|
||||||
|
service_item.addIcon( ":/media/media_image.png")
|
||||||
|
service_item.render_manager = self.parent.render_manager
|
||||||
|
self.generateSlideData(service_item)
|
||||||
|
self.parent.preview_controller.addServiceItem(service_item)
|
||||||
|
|
||||||
def onImageLiveClick(self):
|
def onImageLiveClick(self):
|
||||||
self.onImageClick(self.parent.live_service_item)
|
log.debug(u'Image Live Requested')
|
||||||
|
service_item = ServiceItem(self.parent)
|
||||||
|
service_item.addIcon( ":/media/media_image.png")
|
||||||
|
service_item.render_manager = self.parent.render_manager
|
||||||
|
self.generateSlideData(service_item)
|
||||||
|
self.parent.live_controller.addServiceItem(service_item)
|
||||||
|
|
||||||
def onImageAddClick(self):
|
def onImageAddClick(self):
|
||||||
"""Add this item to the OOS"""
|
log.debug(u'Image Live Requested')
|
||||||
pass
|
service_item = ServiceItem(self.parent)
|
||||||
|
service_item.addIcon( ":/media/media_image.png")
|
||||||
|
service_item.render_manager = self.parent.render_manager
|
||||||
|
self.generateSlideData(service_item)
|
||||||
|
self.parent.service_manager.addServiceItem(service_item)
|
||||||
|
|
Loading…
Reference in New Issue