Split ServiceManager toolbar into 2 parts, resized docks to a smaller size again thanks to narrower ServiceManager.

bzr-revno: 462
This commit is contained in:
Raoul Snyman 2009-06-08 21:03:16 +02:00
parent 236fbcde2b
commit a5037071e1
2 changed files with 75 additions and 29 deletions

View File

@ -201,7 +201,7 @@ class MainWindow(object):
self.MediaManagerDock.setWindowIcon(icon) self.MediaManagerDock.setWindowIcon(icon)
self.MediaManagerDock.setFloating(False) self.MediaManagerDock.setFloating(False)
self.MediaManagerDock.setObjectName(u'MediaManagerDock') self.MediaManagerDock.setObjectName(u'MediaManagerDock')
self.MediaManagerDock.setMinimumWidth(300) self.MediaManagerDock.setMinimumWidth(250)
self.MediaManagerContents = QtGui.QWidget() self.MediaManagerContents = QtGui.QWidget()
self.MediaManagerContents.setObjectName(u'MediaManagerContents') self.MediaManagerContents.setObjectName(u'MediaManagerContents')
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents) self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
@ -223,7 +223,7 @@ class MainWindow(object):
self.ServiceManagerDock.setFeatures( self.ServiceManagerDock.setFeatures(
QtGui.QDockWidget.AllDockWidgetFeatures) QtGui.QDockWidget.AllDockWidgetFeatures)
self.ServiceManagerDock.setObjectName(u'ServiceManagerDock') self.ServiceManagerDock.setObjectName(u'ServiceManagerDock')
self.ServiceManagerDock.setMinimumWidth(300) self.ServiceManagerDock.setMinimumWidth(250)
self.ServiceManagerContents = ServiceManager(self) self.ServiceManagerContents = ServiceManager(self)
self.ServiceManagerDock.setWidget(self.ServiceManagerContents) self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
self.mainWindow.addDockWidget( self.mainWindow.addDockWidget(

View File

@ -21,11 +21,13 @@ import os
import logging import logging
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, RenderManager, Event, EventType, EventManager, translate, buildIcon, contextMenuAction, contextMenuSeparator from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, Event, \
RenderManager, EventType, EventManager, translate, buildIcon, \
contextMenuAction, contextMenuSeparator
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
text strings from plugins and adding them to an OOS file. In text strings from plugins and adding them to an OOS file. In
future, it will also handle zipping up all the resources used into future, it will also handle zipping up all the resources used into
one lump. one lump.
@ -35,32 +37,23 @@ class ServiceManager(QtGui.QWidget):
log = logging.getLogger(u'ServiceManager') log = logging.getLogger(u'ServiceManager')
def __init__(self, parent): def __init__(self, parent):
"""
Sets up the service manager, toolbars, list view, et al.
"""
QtGui.QWidget.__init__(self) QtGui.QWidget.__init__(self)
self.parent = parent self.parent = parent
self.serviceItems = [] 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)
# Create the top toolbar
self.Toolbar = OpenLPToolbar(self) self.Toolbar = OpenLPToolbar(self)
self.Toolbar.addToolbarButton(u'Move to top', u':/services/service_top.png',
translate(u'ServiceManager', u'Move to top'), self.onServiceTop)
self.Toolbar.addToolbarButton(u'Move up', u':/services/service_up.png',
translate(u'ServiceManager', u'Move up order'), self.onServiceUp)
self.Toolbar.addToolbarButton(u'Move down', u':/services/service_down.png',
translate(u'ServiceManager', u'Move down order'), self.onServiceDown)
self.Toolbar.addToolbarButton(u'Move to bottom', u':/services/service_bottom.png',
translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
self.Toolbar.addSeparator()
self.Toolbar.addToolbarButton(u'Delete From Service', u':/services/service_delete.png',
translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService)
self.Toolbar.addToolbarButton(u'New Service', u':/services/service_new.png', self.Toolbar.addToolbarButton(u'New Service', u':/services/service_new.png',
translate(u'ServiceManager', u'Create a new Service'), self.onNewService) translate(u'ServiceManager', u'Create a new Service'), self.onNewService)
self.Toolbar.addToolbarButton(u'Open Service', u':/services/service_open.png', self.Toolbar.addToolbarButton(u'Open Service', u':/services/service_open.png',
translate(u'ServiceManager', u'Load Existing'), self.onLoadService) translate(u'ServiceManager', u'Load Existing'), self.onLoadService)
self.Toolbar.addSeparator()
self.Toolbar.addToolbarButton(u'Save Service', u':/services/service_save.png', self.Toolbar.addToolbarButton(u'Save Service', u':/services/service_save.png',
translate(u'ServiceManager', u'Save Service'), self.onSaveService) translate(u'ServiceManager', u'Save Service'), self.onSaveService)
self.Toolbar.addSeparator() self.Toolbar.addSeparator()
self.ThemeComboBox = QtGui.QComboBox(self.Toolbar) self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
self.ThemeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents) self.ThemeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
@ -68,19 +61,19 @@ class ServiceManager(QtGui.QWidget):
self.ThemeWidget.setDefaultWidget(self.ThemeComboBox) self.ThemeWidget.setDefaultWidget(self.ThemeComboBox)
self.Toolbar.addAction(self.ThemeWidget) self.Toolbar.addAction(self.ThemeWidget)
self.Layout.addWidget(self.Toolbar) self.Layout.addWidget(self.Toolbar)
# Create the service manager list
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.setHeaderHidden(True)
self.ServiceManagerList.setObjectName("ServiceManagerList") self.ServiceManagerList.setObjectName("ServiceManagerList")
#endable drop # enable drop
self.ServiceManagerList .__class__.dragEnterEvent=self.dragEnterEvent self.ServiceManagerList.__class__.dragEnterEvent = self.dragEnterEvent
self.ServiceManagerList .__class__.dragMoveEvent=self.dragEnterEvent self.ServiceManagerList.__class__.dragMoveEvent = self.dragEnterEvent
self.ServiceManagerList .__class__.dropEvent =self.dropEvent self.ServiceManagerList.__class__.dropEvent = self.dropEvent
# Add a context menu to the service manager list
self.ServiceManagerList.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ServiceManagerList.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.ServiceManagerList.addAction(contextMenuAction( self.ServiceManagerList.addAction(contextMenuAction(
self.ServiceManagerList, ':/system/system_preview.png', self.ServiceManagerList, ':/system/system_preview.png',
translate(u'ServiceManager',u'&Preview Verse'), self.makePreview)) translate(u'ServiceManager',u'&Preview Verse'), self.makePreview))
@ -91,45 +84,88 @@ class ServiceManager(QtGui.QWidget):
self.ServiceManagerList.addAction(contextMenuAction( self.ServiceManagerList.addAction(contextMenuAction(
self.ServiceManagerList, ':/services/service_delete', self.ServiceManagerList, ':/services/service_delete',
translate(u'ServiceManager',u'&Remove from Service'), self.onDeleteFromService)) translate(u'ServiceManager',u'&Remove from Service'), self.onDeleteFromService))
self.Layout.addWidget(self.ServiceManagerList) self.Layout.addWidget(self.ServiceManagerList)
# Add the bottom toolbar
self.OrderToolbar = OpenLPToolbar(self)
self.OrderToolbar.addToolbarButton(u'Move to top', u':/services/service_top.png',
translate(u'ServiceManager', u'Move to top'), self.onServiceTop)
self.OrderToolbar.addToolbarButton(u'Move up', u':/services/service_up.png',
translate(u'ServiceManager', u'Move up order'), self.onServiceUp)
self.OrderToolbar.addToolbarButton(u'Move down', u':/services/service_down.png',
translate(u'ServiceManager', u'Move down order'), self.onServiceDown)
self.OrderToolbar.addToolbarButton(u'Move to bottom', u':/services/service_bottom.png',
translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
self.OrderToolbar.addSeparator()
self.OrderToolbar.addToolbarButton(u'Delete From Service', u':/services/service_delete.png',
translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService)
self.Layout.addWidget(self.OrderToolbar)
# Connect up our signals and slots
QtCore.QObject.connect(self.ThemeComboBox, QtCore.QObject.connect(self.ThemeComboBox,
QtCore.SIGNAL("activated(int)"), self.onThemeComboBoxSelected) QtCore.SIGNAL(u'activated(int)'), self.onThemeComboBoxSelected)
# Last little bits of setting up
self.config = PluginConfig(u'Main') self.config = PluginConfig(u'Main')
self.service_theme = self.config.get_config(u'theme service theme', u'') self.service_theme = self.config.get_config(u'theme service theme', u'')
def onServiceTop(self): def onServiceTop(self):
"""
Move the current ServiceItem to the top of the list
"""
pass pass
def onServiceUp(self): def onServiceUp(self):
"""
Move the current ServiceItem up in the list
"""
pass pass
def onServiceDown(self): def onServiceDown(self):
"""
Move the current ServiceItem down in the list
"""
pass pass
def onServiceEnd(self): def onServiceEnd(self):
"""
Move the current ServiceItem to the bottom of the list
"""
pass pass
def onNewService(self): def onNewService(self):
"""
Clear the list to create a new service
"""
self.service_data.clearItems() self.service_data.clearItems()
def onDeleteFromService(self): def onDeleteFromService(self):
"""
Remove the current ServiceItem from the list
"""
pass pass
def onSaveService(self): def onSaveService(self):
"""
Save the current service
"""
pass pass
def onLoadService(self): def onLoadService(self):
"""
Load an existing service from disk
"""
pass pass
def onThemeComboBoxSelected(self, currentIndex): def onThemeComboBoxSelected(self, currentIndex):
"""
Set the theme for the current service
"""
self.service_theme = self.ThemeComboBox.currentText() self.service_theme = self.ThemeComboBox.currentText()
self.parent.RenderManager.set_service_theme(self.service_theme) self.parent.RenderManager.set_service_theme(self.service_theme)
self.config.set_config(u'theme service theme', self.service_theme) self.config.set_config(u'theme service theme', self.service_theme)
def addServiceItem(self, item): def addServiceItem(self, item):
"""
Add an item to the list
"""
self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1}) self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1})
treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList) treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList)
treewidgetitem.setText(0,item.title) # + u':' + item.shortname) treewidgetitem.setText(0,item.title) # + u':' + item.shortname)
@ -146,14 +182,23 @@ class ServiceManager(QtGui.QWidget):
count = count + 1 count = count + 1
def makePreview(self): def makePreview(self):
"""
Send the current item to the Preview slide controller
"""
item, count = self.findServiceItem() item, count = self.findServiceItem()
self.parent.PreviewController.addServiceManagerItem(self.serviceItems[item][u'data'], count) self.parent.PreviewController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
def makeLive(self): def makeLive(self):
"""
Send the current item to the Live slide controller
"""
item, count = self.findServiceItem() item, count = self.findServiceItem()
self.parent.LiveController.addServiceManagerItem(self.serviceItems[item][u'data'], count) self.parent.LiveController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
def findServiceItem(self): def findServiceItem(self):
"""
Finds a ServiceItem in the list
"""
items = self.ServiceManagerList.selectedItems() items = self.ServiceManagerList.selectedItems()
pos = 0 pos = 0
count = 0 count = 0
@ -219,3 +264,4 @@ class ServiceManager(QtGui.QWidget):
self.service_theme = u'' self.service_theme = u''
self.ThemeComboBox.setCurrentIndex(id) self.ThemeComboBox.setCurrentIndex(id)
self.parent.RenderManager.set_service_theme(self.service_theme) self.parent.RenderManager.set_service_theme(self.service_theme)