unified remaining action creation methods (addToolbarButton, context_menu_action, context_menu_separator)

This commit is contained in:
M2j 2012-03-02 11:22:52 +01:00
parent fe2966ac9e
commit 6d909c64eb
11 changed files with 322 additions and 428 deletions

View File

@ -36,8 +36,8 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import SettingsManager, OpenLPToolbar, ServiceItem, \ from openlp.core.lib import SettingsManager, OpenLPToolbar, ServiceItem, \
StringContent, build_icon, translate, Receiver, ListWidgetWithDnD StringContent, build_icon, translate, Receiver, ListWidgetWithDnD
from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.searchedit import SearchEdit
from openlp.core.lib.ui import UiStrings, context_menu_action, \ from openlp.core.lib.ui import UiStrings, create_widget_action, \
context_menu_separator, critical_error_message_box critical_error_message_box
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -147,36 +147,13 @@ class MediaManagerItem(QtGui.QWidget):
self.toolbar = OpenLPToolbar(self) self.toolbar = OpenLPToolbar(self)
self.pageLayout.addWidget(self.toolbar) self.pageLayout.addWidget(self.toolbar)
def addToolbarButton( def addToolbarButton(self, name, **kwargs):
self, title, tooltip, icon, slot=None, checkable=False):
""" """
A method to help developers easily add a button to the toolbar. A method to help developers easily add a button to the toolbar. For
details please have a look at OpenLPToolbar.addToolbarButton() and
``title`` openlp.core.lib.ui.create_action().
The title of the button.
``tooltip``
The tooltip to be displayed when the mouse hovers over the
button.
``icon``
The icon of the button. This can be an instance of QIcon, or a
string containing either the absolute path to the image, or an
internal resource path starting with ':/'.
``slot``
The method to call when the button is clicked.
``checkable``
If *True* the button has two, *off* and *on*, states. Default is
*False*, which means the buttons has only one state.
""" """
# NB different order (when I broke this out, I didn't want to return self.toolbar.addToolbarButton(name, **kwargs)
# break compatability), but it makes sense for the icon to
# come before the tooltip (as you have to have an icon, but
# not neccesarily a tooltip)
return self.toolbar.addToolbarButton(title, icon, tooltip, slot,
checkable)
def addToolbarSeparator(self): def addToolbarSeparator(self):
""" """
@ -208,40 +185,40 @@ class MediaManagerItem(QtGui.QWidget):
toolbar_actions = [] toolbar_actions = []
## Import Button ## ## Import Button ##
if self.hasImportIcon: if self.hasImportIcon:
toolbar_actions.append([StringContent.Import, toolbar_actions.append([u'Import', StringContent.Import,
u':/general/general_import.png', self.onImportClick]) u':/general/general_import.png', self.onImportClick])
## Load Button ## ## Load Button ##
if self.hasFileIcon: if self.hasFileIcon:
toolbar_actions.append([StringContent.Load, toolbar_actions.append([u'Load', StringContent.Load,
u':/general/general_open.png', self.onFileClick]) u':/general/general_open.png', self.onFileClick])
## New Button ## ## New Button ##
if self.hasNewIcon: if self.hasNewIcon:
toolbar_actions.append([StringContent.New, toolbar_actions.append([u'New', StringContent.New,
u':/general/general_new.png', self.onNewClick]) u':/general/general_new.png', self.onNewClick])
## Edit Button ## ## Edit Button ##
if self.hasEditIcon: if self.hasEditIcon:
toolbar_actions.append([StringContent.Edit, toolbar_actions.append([u'Edit', StringContent.Edit,
u':/general/general_edit.png', self.onEditClick]) u':/general/general_edit.png', self.onEditClick])
## Delete Button ## ## Delete Button ##
if self.hasDeleteIcon: if self.hasDeleteIcon:
toolbar_actions.append([StringContent.Delete, toolbar_actions.append([u'Delete', StringContent.Delete,
u':/general/general_delete.png', self.onDeleteClick]) u':/general/general_delete.png', self.onDeleteClick])
## Preview ## ## Preview ##
toolbar_actions.append([StringContent.Preview, toolbar_actions.append([u'Preview', StringContent.Preview,
u':/general/general_preview.png', self.onPreviewClick]) u':/general/general_preview.png', self.onPreviewClick])
## Live Button ## ## Live Button ##
toolbar_actions.append([StringContent.Live, toolbar_actions.append([u'Live', StringContent.Live,
u':/general/general_live.png', self.onLiveClick]) u':/general/general_live.png', self.onLiveClick])
## Add to service Button ## ## Add to service Button ##
toolbar_actions.append([StringContent.Service, toolbar_actions.append([u'Service', StringContent.Service,
u':/general/general_add.png', self.onAddClick]) u':/general/general_add.png', self.onAddClick])
for action in toolbar_actions: for action in toolbar_actions:
if action[0] == StringContent.Preview: if action[0] == StringContent.Preview:
self.addToolbarSeparator() self.addToolbarSeparator()
self.addToolbarButton( self.addToolbarButton(u'%s%sAction' % (self.plugin.name, action[0]),
self.plugin.getString(action[0])[u'title'], text=self.plugin.getString(action[1])[u'title'], icon=action[2],
self.plugin.getString(action[0])[u'tooltip'], tooltip=self.plugin.getString(action[1])[u'tooltip'],
action[1], action[2]) triggers=action[3])
def addListViewToToolBar(self): def addListViewToToolBar(self):
""" """
@ -259,35 +236,37 @@ class MediaManagerItem(QtGui.QWidget):
# define and add the context menu # define and add the context menu
self.listView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.listView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
if self.hasEditIcon: if self.hasEditIcon:
context_menu_action( create_widget_action(self.listView,
self.listView, u':/general/general_edit.png', text=self.plugin.getString(StringContent.Edit)[u'title'],
self.plugin.getString(StringContent.Edit)[u'title'], icon=u':/general/general_edit.png',
self.onEditClick) triggers=self.onEditClick)
context_menu_separator(self.listView) create_widget_action(self.listView, separator=True)
if self.hasDeleteIcon: if self.hasDeleteIcon:
context_menu_action( create_widget_action(self.listView,
self.listView, u':/general/general_delete.png', text=self.plugin.getString(StringContent.Delete)[u'title'],
self.plugin.getString(StringContent.Delete)[u'title'], icon=u':/general/general_delete.png',
self.onDeleteClick, [QtCore.Qt.Key_Delete]) shortcuts=[QtCore.Qt.Key_Delete], triggers=self.onDeleteClick)
context_menu_separator(self.listView) create_widget_action(self.listView, separator=True)
context_menu_action( create_widget_action(self.listView,
self.listView, u':/general/general_preview.png', text=self.plugin.getString(StringContent.Preview)[u'title'],
self.plugin.getString(StringContent.Preview)[u'title'], icon=u':/general/general_preview.png',
self.onPreviewClick, [QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]) shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return],
context_menu_action( triggers=self.onPreviewClick)
self.listView, u':/general/general_live.png', create_widget_action(self.listView,
self.plugin.getString(StringContent.Live)[u'title'], text=self.plugin.getString(StringContent.Live)[u'title'],
self.onLiveClick, [QtCore.Qt.ShiftModifier + QtCore.Qt.Key_Enter, icon=u':/general/general_live.png',
QtCore.Qt.ShiftModifier + QtCore.Qt.Key_Return]) shortcuts=[QtCore.Qt.ShiftModifier | QtCore.Qt.Key_Enter,
context_menu_action( QtCore.Qt.ShiftModifier | QtCore.Qt.Key_Return],
self.listView, u':/general/general_add.png', triggers=self.onLiveClick)
self.plugin.getString(StringContent.Service)[u'title'], create_widget_action(self.listView,
self.onAddClick, [QtCore.Qt.Key_Plus, QtCore.Qt.Key_Equal]) text=self.plugin.getString(StringContent.Service)[u'title'],
icon=u':/general/general_add.png',
shortcuts=[QtCore.Qt.Key_Plus, QtCore.Qt.Key_Equal],
triggers=self.onAddClick)
if self.addToServiceItem: if self.addToServiceItem:
context_menu_action( create_widget_action(self.listView, text=translate(
self.listView, u':/general/general_add.png', 'OpenLP.MediaManagerItem', '&Add to selected Service Item'),
translate('OpenLP.MediaManagerItem', icon=u':/general/general_add.png', triggers=self.onAddEditClick)
'&Add to selected Service Item'), self.onAddEditClick)
self.addCustomContextActions() self.addCustomContextActions()
# Create the context menu and add all actions from the listView. # Create the context menu and add all actions from the listView.
self.menu = QtGui.QMenu() self.menu = QtGui.QMenu()

View File

@ -32,6 +32,7 @@ import logging
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import build_icon from openlp.core.lib import build_icon
from openlp.core.lib.ui import create_widget_action
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -51,58 +52,21 @@ class OpenLPToolbar(QtGui.QToolBar):
self.actions = {} self.actions = {}
log.debug(u'Init done for %s' % parent.__class__.__name__) log.debug(u'Init done for %s' % parent.__class__.__name__)
def addToolbarButton(self, title, icon, tooltip=None, slot=None, def addToolbarButton(self, name, **kwargs):
checkable=False, shortcuts=None, context=QtCore.Qt.WidgetShortcut):
""" """
A method to help developers easily add a button to the toolbar. A method to help developers easily add a button to the toolbar. A new
QAction is created by calling ``create_action()``. The action is added
``title`` to the toolbar and the toolbar is set as parent. For more details please
The title of the button. look at openlp.core.lib.ui.create_action()
``icon``
The icon of the button. This can be an instance of QIcon, or a
string containing either the absolute path to the image, or an
internal resource path starting with ':/'.
``tooltip``
A hint or tooltip for this button.
``slot``
The method to run when this button is clicked.
``checkable``
If *True* the button has two, *off* and *on*, states. Default is
*False*, which means the buttons has only one state.
``shortcuts``
The list of shortcuts for this action
``context``
Specify the context in which this shortcut is valid
""" """
if icon: action = create_widget_action(self, name, **kwargs)
actionIcon = build_icon(icon) # The ObjectNames should be used as keys. So translators can't break
if slot and not checkable: # anything.
newAction = self.addAction(actionIcon, title, slot) title = kwargs.get(u'text', u'')
else: self.actions[title] = action
newAction = self.addAction(actionIcon, title) if u'icon' in kwargs:
self.icons[title] = actionIcon self.icons[title] = action.icon()
else: return action
newAction = QtGui.QAction(title, self)
self.addAction(newAction)
QtCore.QObject.connect(newAction,
QtCore.SIGNAL(u'triggered()'), slot)
if tooltip:
newAction.setToolTip(tooltip)
if checkable:
newAction.setCheckable(True)
QtCore.QObject.connect(newAction,
QtCore.SIGNAL(u'toggled(bool)'), slot)
self.actions[title] = newAction
if shortcuts is not None:
newAction.setShortcuts(shortcuts)
newAction.setShortcutContext(context)
return newAction
def addToolbarSeparator(self, handle): def addToolbarSeparator(self, handle):
""" """

View File

@ -312,6 +312,9 @@ def create_action(parent, name, **kwargs):
``visible`` ``visible``
False in case the action should be hidden. False in case the action should be hidden.
``separator``
True in case the action will be considered a separator.
``data`` ``data``
Data which is set as QVariant type. Data which is set as QVariant type.
@ -345,15 +348,17 @@ def create_action(parent, name, **kwargs):
action.setEnabled(False) action.setEnabled(False)
if not kwargs.pop(u'visible', True): if not kwargs.pop(u'visible', True):
action.setVisible(False) action.setVisible(False)
if kwargs.pop(u'separator', False):
action.setSeparator(True)
if u'data' in kwargs: if u'data' in kwargs:
action.setData(QtCore.QVariant(kwargs.pop(u'data'))) action.setData(QtCore.QVariant(kwargs.pop(u'data')))
if kwargs.get(u'shortcuts'): if kwargs.get(u'shortcuts'):
action.setShortcuts(kwargs.pop(u'shortcuts')) action.setShortcuts(kwargs.pop(u'shortcuts'))
action.setShortcutContext(kwargs.pop(u'context', if kwargs.get(u'context') is not None:
QtCore.Qt.WindowShortcut)) action.setShortcutContext(kwargs.pop(u'context'))
if kwargs.get(u'category'): if kwargs.get(u'category'):
action_list = ActionList.get_instance() action_list = ActionList.get_instance()
action_list.add_action(action, kwargs.pop(u'category')) action_list.add_action(action, unicode(kwargs.pop(u'category')))
if kwargs.get(u'triggers'): if kwargs.get(u'triggers'):
QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'),
kwargs.pop(u'triggers')) kwargs.pop(u'triggers'))
@ -363,11 +368,15 @@ def create_action(parent, name, **kwargs):
log.warn(u'Parameter %s was not consumed in create_action().', key) log.warn(u'Parameter %s was not consumed in create_action().', key)
return action return action
def context_menu_action(base, icon, text, slot, shortcuts=None, category=None, def create_widget_action(parent, name=u'', **kwargs):
context=QtCore.Qt.WidgetShortcut): """
action = create_action(parent=base, name=u'', text=text, icon=icon, Return a new QAction by calling ``create_action(parent, name, **kwargs)``.
shortcuts=shortcuts, context=context, category=category, triggers=slot) The shortcut context defaults to ``QtCore.Qt.WidgetShortcut`` and the action
base.addAction(action) is added to the parents action list.
"""
kwargs.setdefault(u'context', QtCore.Qt.WidgetShortcut)
action = create_action(parent, name, **kwargs)
parent.addAction(action)
return action return action
def context_menu(base, icon, text): def context_menu(base, icon, text):
@ -387,18 +396,6 @@ def context_menu(base, icon, text):
action.setIcon(build_icon(icon)) action.setIcon(build_icon(icon))
return action return action
def context_menu_separator(base):
"""
Add a separator to a context menu
``base``
The menu object to add the separator to
"""
action = QtGui.QAction(base)
action.setSeparator(True)
base.addAction(action)
return action
def add_widget_completer(cache, widget): def add_widget_completer(cache, widget):
""" """
Adds a text autocompleter to a widget. Adds a text autocompleter to a widget.

View File

@ -181,81 +181,75 @@ class Ui_MainWindow(object):
self.fileNewItem = create_action(mainWindow, u'fileNewItem', self.fileNewItem = create_action(mainWindow, u'fileNewItem',
icon=u':/general/general_new.png', icon=u':/general/general_new.png',
shortcuts=[QtGui.QKeySequence(u'Ctrl+N')], shortcuts=[QtGui.QKeySequence(u'Ctrl+N')],
category=unicode(UiStrings().File), category=UiStrings().File,
triggers=self.serviceManagerContents.onNewServiceClicked) triggers=self.serviceManagerContents.onNewServiceClicked)
self.fileOpenItem = create_action(mainWindow, u'fileOpenItem', self.fileOpenItem = create_action(mainWindow, u'fileOpenItem',
icon=u':/general/general_open.png', icon=u':/general/general_open.png',
shortcuts=[QtGui.QKeySequence(u'Ctrl+O')], shortcuts=[QtGui.QKeySequence(u'Ctrl+O')],
category=unicode(UiStrings().File), category=UiStrings().File,
triggers=self.serviceManagerContents.onLoadServiceClicked) triggers=self.serviceManagerContents.onLoadServiceClicked)
self.fileSaveItem = create_action(mainWindow, u'fileSaveItem', self.fileSaveItem = create_action(mainWindow, u'fileSaveItem',
icon=u':/general/general_save.png', icon=u':/general/general_save.png',
shortcuts=[QtGui.QKeySequence(u'Ctrl+S')], shortcuts=[QtGui.QKeySequence(u'Ctrl+S')],
category=unicode(UiStrings().File), category=UiStrings().File,
triggers=self.serviceManagerContents.saveFile) triggers=self.serviceManagerContents.saveFile)
self.fileSaveAsItem = create_action(mainWindow, u'fileSaveAsItem', self.fileSaveAsItem = create_action(mainWindow, u'fileSaveAsItem',
shortcuts=[QtGui.QKeySequence(u'Ctrl+Shift+S')], shortcuts=[QtGui.QKeySequence(u'Ctrl+Shift+S')],
category=unicode(UiStrings().File), category=UiStrings().File,
triggers=self.serviceManagerContents.saveFileAs) triggers=self.serviceManagerContents.saveFileAs)
self.printServiceOrderItem = create_action(mainWindow, self.printServiceOrderItem = create_action(mainWindow,
u'printServiceItem', shortcuts=[QtGui.QKeySequence(u'Ctrl+P')], u'printServiceItem', shortcuts=[QtGui.QKeySequence(u'Ctrl+P')],
category=unicode(UiStrings().File), category=UiStrings().File,
triggers=self.serviceManagerContents.printServiceOrder) triggers=self.serviceManagerContents.printServiceOrder)
self.fileExitItem = create_action(mainWindow, u'fileExitItem', self.fileExitItem = create_action(mainWindow, u'fileExitItem',
icon=u':/system/system_exit.png', icon=u':/system/system_exit.png',
shortcuts=[QtGui.QKeySequence(u'Alt+F4')], shortcuts=[QtGui.QKeySequence(u'Alt+F4')],
category=unicode(UiStrings().File), category=UiStrings().File, triggers=mainWindow.close)
triggers=mainWindow.close)
action_list.add_category(unicode(UiStrings().Import), action_list.add_category(unicode(UiStrings().Import),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.importThemeItem = create_action(mainWindow, self.importThemeItem = create_action(mainWindow,
u'importThemeItem', category=unicode(UiStrings().Import)) u'importThemeItem', category=UiStrings().Import)
self.importLanguageItem = create_action(mainWindow, self.importLanguageItem = create_action(mainWindow,
u'importLanguageItem')#, category=unicode(UiStrings().Import)) u'importLanguageItem')#, category=UiStrings().Import)
action_list.add_category(unicode(UiStrings().Export), action_list.add_category(unicode(UiStrings().Export),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.exportThemeItem = create_action(mainWindow, self.exportThemeItem = create_action(mainWindow,
u'exportThemeItem', category=unicode(UiStrings().Export)) u'exportThemeItem', category=UiStrings().Export)
self.exportLanguageItem = create_action(mainWindow, self.exportLanguageItem = create_action(mainWindow,
u'exportLanguageItem')#, category=unicode(UiStrings().Export)) u'exportLanguageItem')#, category=UiStrings().Export)
action_list.add_category(unicode(UiStrings().View), action_list.add_category(unicode(UiStrings().View),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.viewMediaManagerItem = create_action(mainWindow, self.viewMediaManagerItem = create_action(mainWindow,
u'viewMediaManagerItem', shortcuts=[QtGui.QKeySequence(u'F8')], u'viewMediaManagerItem', shortcuts=[QtGui.QKeySequence(u'F8')],
icon=u':/system/system_mediamanager.png', icon=u':/system/system_mediamanager.png',
checked=self.mediaManagerDock.isVisible(), checked=self.mediaManagerDock.isVisible(),
category=unicode(UiStrings().View), category=UiStrings().View, triggers=self.toggleMediaManager)
triggers=self.toggleMediaManager)
self.viewThemeManagerItem = create_action(mainWindow, self.viewThemeManagerItem = create_action(mainWindow,
u'viewThemeManagerItem', shortcuts=[QtGui.QKeySequence(u'F10')], u'viewThemeManagerItem', shortcuts=[QtGui.QKeySequence(u'F10')],
icon=u':/system/system_thememanager.png', icon=u':/system/system_thememanager.png',
checked=self.themeManagerDock.isVisible(), checked=self.themeManagerDock.isVisible(),
category=unicode(UiStrings().View), category=UiStrings().View, triggers=self.toggleThemeManager)
triggers=self.toggleThemeManager)
self.viewServiceManagerItem = create_action(mainWindow, self.viewServiceManagerItem = create_action(mainWindow,
u'viewServiceManagerItem', shortcuts=[QtGui.QKeySequence(u'F9')], u'viewServiceManagerItem', shortcuts=[QtGui.QKeySequence(u'F9')],
icon=u':/system/system_servicemanager.png', icon=u':/system/system_servicemanager.png',
checked=self.serviceManagerDock.isVisible(), checked=self.serviceManagerDock.isVisible(),
category=unicode(UiStrings().View), category=UiStrings().View, triggers=self.toggleServiceManager)
triggers=self.toggleServiceManager)
self.viewPreviewPanel = create_action(mainWindow, u'viewPreviewPanel', self.viewPreviewPanel = create_action(mainWindow, u'viewPreviewPanel',
shortcuts=[QtGui.QKeySequence(u'F11')], checked=previewVisible, shortcuts=[QtGui.QKeySequence(u'F11')], checked=previewVisible,
category=unicode(UiStrings().View), category=UiStrings().View, triggers=self.setPreviewPanelVisibility)
triggers=self.setPreviewPanelVisibility)
self.viewLivePanel = create_action(mainWindow, u'viewLivePanel', self.viewLivePanel = create_action(mainWindow, u'viewLivePanel',
shortcuts=[QtGui.QKeySequence(u'F12')], checked=liveVisible, shortcuts=[QtGui.QKeySequence(u'F12')], checked=liveVisible,
category=unicode(UiStrings().View), category=UiStrings().View, triggers=self.setLivePanelVisibility)
triggers=self.setLivePanelVisibility)
self.lockPanel = create_action(mainWindow, u'lockPanel', self.lockPanel = create_action(mainWindow, u'lockPanel',
checked=panelLocked, triggers=self.setLockPanel) checked=panelLocked, triggers=self.setLockPanel)
action_list.add_category(unicode(UiStrings().ViewMode), action_list.add_category(unicode(UiStrings().ViewMode),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.modeDefaultItem = create_action(mainWindow, u'modeDefaultItem', self.modeDefaultItem = create_action(mainWindow, u'modeDefaultItem',
checked=False, category=unicode(UiStrings().ViewMode)) checked=False, category=UiStrings().ViewMode)
self.modeSetupItem = create_action(mainWindow, u'modeSetupItem', self.modeSetupItem = create_action(mainWindow, u'modeSetupItem',
checked=False, category=unicode(UiStrings().ViewMode)) checked=False, category=UiStrings().ViewMode)
self.modeLiveItem = create_action(mainWindow, u'modeLiveItem', self.modeLiveItem = create_action(mainWindow, u'modeLiveItem',
checked=True, category=unicode(UiStrings().ViewMode)) checked=True, category=UiStrings().ViewMode)
self.modeGroup = QtGui.QActionGroup(mainWindow) self.modeGroup = QtGui.QActionGroup(mainWindow)
self.modeGroup.addAction(self.modeDefaultItem) self.modeGroup.addAction(self.modeDefaultItem)
self.modeGroup.addAction(self.modeSetupItem) self.modeGroup.addAction(self.modeSetupItem)
@ -265,23 +259,22 @@ class Ui_MainWindow(object):
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.toolsAddToolItem = create_action(mainWindow, self.toolsAddToolItem = create_action(mainWindow,
u'toolsAddToolItem', icon=u':/tools/tools_add.png', u'toolsAddToolItem', icon=u':/tools/tools_add.png',
category=unicode(UiStrings().Tools)) category=UiStrings().Tools)
self.toolsOpenDataFolder = create_action(mainWindow, self.toolsOpenDataFolder = create_action(mainWindow,
u'toolsOpenDataFolder', icon=u':/general/general_open.png', u'toolsOpenDataFolder', icon=u':/general/general_open.png',
category=unicode(UiStrings().Tools)) category=UiStrings().Tools)
self.toolsFirstTimeWizard = create_action(mainWindow, self.toolsFirstTimeWizard = create_action(mainWindow,
u'toolsFirstTimeWizard', icon=u':/general/general_revert.png', u'toolsFirstTimeWizard', icon=u':/general/general_revert.png',
category=unicode(UiStrings().Tools)) category=UiStrings().Tools)
self.updateThemeImages = create_action(mainWindow, self.updateThemeImages = create_action(mainWindow,
u'updateThemeImages', category=unicode(UiStrings().Tools)) u'updateThemeImages', category=UiStrings().Tools)
action_list.add_category(unicode(UiStrings().Settings), action_list.add_category(unicode(UiStrings().Settings),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.settingsPluginListItem = create_action(mainWindow, self.settingsPluginListItem = create_action(mainWindow,
u'settingsPluginListItem', u'settingsPluginListItem',
icon=u':/system/settings_plugin_list.png', icon=u':/system/settings_plugin_list.png',
shortcuts=[QtGui.QKeySequence(u'Alt+F7')], shortcuts=[QtGui.QKeySequence(u'Alt+F7')],
category=unicode(UiStrings().Settings), category=UiStrings().Settings, triggers=self.onPluginItemClicked)
triggers=self.onPluginItemClicked)
# i18n Language Items # i18n Language Items
self.autoLanguageItem = create_action(mainWindow, u'autoLanguageItem', self.autoLanguageItem = create_action(mainWindow, u'autoLanguageItem',
checked=LanguageManager.auto_language) checked=LanguageManager.auto_language)
@ -298,40 +291,37 @@ class Ui_MainWindow(object):
self.settingsShortcutsItem = create_action(mainWindow, self.settingsShortcutsItem = create_action(mainWindow,
u'settingsShortcutsItem', u'settingsShortcutsItem',
icon=u':/system/system_configure_shortcuts.png', icon=u':/system/system_configure_shortcuts.png',
category=unicode(UiStrings().Settings)) category=UiStrings().Settings)
# Formatting Tags were also known as display tags. # Formatting Tags were also known as display tags.
self.formattingTagItem = create_action(mainWindow, self.formattingTagItem = create_action(mainWindow,
u'displayTagItem', icon=u':/system/tag_editor.png', u'displayTagItem', icon=u':/system/tag_editor.png',
category=unicode(UiStrings().Settings)) category=UiStrings().Settings)
self.settingsConfigureItem = create_action(mainWindow, self.settingsConfigureItem = create_action(mainWindow,
u'settingsConfigureItem', icon=u':/system/system_settings.png', u'settingsConfigureItem', icon=u':/system/system_settings.png',
category=unicode(UiStrings().Settings)) category=UiStrings().Settings)
self.settingsImportItem = create_action(mainWindow, self.settingsImportItem = create_action(mainWindow,
u'settingsImportItem', category=unicode(UiStrings().Settings)) u'settingsImportItem', category=UiStrings().Settings)
self.settingsExportItem = create_action(mainWindow, self.settingsExportItem = create_action(mainWindow,
u'settingsExportItem', category=unicode(UiStrings().Settings)) u'settingsExportItem', category=UiStrings().Settings)
action_list.add_category(unicode(UiStrings().Help), action_list.add_category(unicode(UiStrings().Help),
CategoryOrder.standardMenu) CategoryOrder.standardMenu)
self.aboutItem = create_action(mainWindow, u'aboutItem', self.aboutItem = create_action(mainWindow, u'aboutItem',
icon=u':/system/system_about.png', icon=u':/system/system_about.png',
shortcuts=[QtGui.QKeySequence(u'Ctrl+F1')], shortcuts=[QtGui.QKeySequence(u'Ctrl+F1')],
category=unicode(UiStrings().Help), category=UiStrings().Help, triggers=self.onAboutItemClicked)
triggers=self.onAboutItemClicked)
if os.name == u'nt': if os.name == u'nt':
self.localHelpFile = os.path.join( self.localHelpFile = os.path.join(
AppLocation.get_directory(AppLocation.AppDir), 'OpenLP.chm') AppLocation.get_directory(AppLocation.AppDir), 'OpenLP.chm')
self.offlineHelpItem = create_action(mainWindow, u'offlineHelpItem', self.offlineHelpItem = create_action(mainWindow, u'offlineHelpItem',
icon=u':/system/system_help_contents.png', icon=u':/system/system_help_contents.png',
shortcuts=[QtGui.QKeySequence(u'F1')], shortcuts=[QtGui.QKeySequence(u'F1')],
category=unicode(UiStrings().Help), category=UiStrings().Help, triggers=self.onOfflineHelpClicked)
triggers=self.onOfflineHelpClicked)
self.onlineHelpItem = create_action(mainWindow, u'onlineHelpItem', self.onlineHelpItem = create_action(mainWindow, u'onlineHelpItem',
icon=u':/system/system_online_help.png', icon=u':/system/system_online_help.png',
shortcuts=[QtGui.QKeySequence(u'Alt+F1')], shortcuts=[QtGui.QKeySequence(u'Alt+F1')],
category=unicode(UiStrings().Help), category=UiStrings().Help, triggers=self.onOnlineHelpClicked)
triggers=self.onOnlineHelpClicked)
self.webSiteItem = create_action(mainWindow, self.webSiteItem = create_action(mainWindow,
u'webSiteItem', category=unicode(UiStrings().Help)) u'webSiteItem', category=UiStrings().Help)
add_actions(self.fileImportMenu, (self.settingsImportItem, None, add_actions(self.fileImportMenu, (self.settingsImportItem, None,
self.importThemeItem, self.importLanguageItem)) self.importThemeItem, self.importLanguageItem))
add_actions(self.fileExportMenu, (self.settingsExportItem, None, add_actions(self.fileExportMenu, (self.settingsExportItem, None,

View File

@ -204,18 +204,21 @@ class MediaController(object):
controller.media_info = MediaInfo() controller.media_info = MediaInfo()
# Build a Media ToolBar # Build a Media ToolBar
controller.mediabar = OpenLPToolbar(controller) controller.mediabar = OpenLPToolbar(controller)
controller.mediabar.addToolbarButton( controller.mediabar.addToolbarButton(u'playbackPlay',
u'media_playback_play', u':/slides/media_playback_start.png', text=u'media_playback_play',
translate('OpenLP.SlideController', 'Start playing media.'), icon=u':/slides/media_playback_start.png',
controller.sendToPlugins) tooltip=translate('OpenLP.SlideController', 'Start playing media.'),
controller.mediabar.addToolbarButton( triggers=controller.sendToPlugins)
u'media_playback_pause', u':/slides/media_playback_pause.png', controller.mediabar.addToolbarButton(u'playbackPause',
translate('OpenLP.SlideController', 'Pause playing media.'), text=u'media_playback_pause',
controller.sendToPlugins) icon=u':/slides/media_playback_pause.png',
controller.mediabar.addToolbarButton( tooltip=translate('OpenLP.SlideController', 'Pause playing media.'),
u'media_playback_stop', u':/slides/media_playback_stop.png', triggers=controller.sendToPlugins)
translate('OpenLP.SlideController', 'Stop playing media.'), controller.mediabar.addToolbarButton(u'playbackStop',
controller.sendToPlugins) text=u'media_playback_stop',
icon=u':/slides/media_playback_stop.png',
tooltip=translate('OpenLP.SlideController', 'Stop playing media.'),
triggers=controller.sendToPlugins)
# Build the seekSlider. # Build the seekSlider.
controller.seekSlider = QtGui.QSlider(QtCore.Qt.Horizontal) controller.seekSlider = QtGui.QSlider(QtCore.Qt.Horizontal)
controller.seekSlider.setMaximum(1000) controller.seekSlider.setMaximum(1000)

View File

@ -41,7 +41,7 @@ from openlp.core.lib import OpenLPToolbar, ServiceItem, Receiver, build_icon, \
ItemCapabilities, SettingsManager, translate, str_to_bool ItemCapabilities, SettingsManager, translate, str_to_bool
from openlp.core.lib.theme import ThemeLevel from openlp.core.lib.theme import ThemeLevel
from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ from openlp.core.lib.ui import UiStrings, critical_error_message_box, \
context_menu_action, context_menu_separator, find_and_set_in_combo_box create_widget_action, find_and_set_in_combo_box
from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
from openlp.core.ui.printserviceform import PrintServiceForm from openlp.core.ui.printserviceform import PrintServiceForm
from openlp.core.utils import AppLocation, delete_file, split_filename from openlp.core.utils import AppLocation, delete_file, split_filename
@ -117,17 +117,18 @@ class ServiceManager(QtGui.QWidget):
self.layout.setMargin(0) self.layout.setMargin(0)
# Create the top toolbar # Create the top toolbar
self.toolbar = OpenLPToolbar(self) self.toolbar = OpenLPToolbar(self)
self.toolbar.addToolbarButton( self.toolbar.addToolbarButton(u'newService',
UiStrings().NewService, u':/general/general_new.png', text=UiStrings().NewService, icon=u':/general/general_new.png',
UiStrings().CreateService, self.onNewServiceClicked) tooltip=UiStrings().CreateService,
self.toolbar.addToolbarButton( triggers=self.onNewServiceClicked)
UiStrings().OpenService, u':/general/general_open.png', self.toolbar.addToolbarButton(u'openService',
translate('OpenLP.ServiceManager', 'Load an existing service.'), text=UiStrings().OpenService, icon=u':/general/general_open.png',
self.onLoadServiceClicked) tooltip=translate('OpenLP.ServiceManager',
self.toolbar.addToolbarButton( 'Load an existing service.'), triggers=self.onLoadServiceClicked)
UiStrings().SaveService, u':/general/general_save.png', self.toolbar.addToolbarButton(u'saveService',
translate('OpenLP.ServiceManager', 'Save this service.'), text=UiStrings().SaveService, icon=u':/general/general_save.png',
self.saveFile) tooltip=translate('OpenLP.ServiceManager', 'Save this service.'),
triggers=self.saveFile)
self.toolbar.addSeparator() self.toolbar.addSeparator()
self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self) self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self)
self.themeLabel.setMargin(3) self.themeLabel.setMargin(3)
@ -168,99 +169,77 @@ class ServiceManager(QtGui.QWidget):
self.layout.addWidget(self.serviceManagerList) self.layout.addWidget(self.serviceManagerList)
# Add the bottom toolbar # Add the bottom toolbar
self.orderToolbar = OpenLPToolbar(self) self.orderToolbar = OpenLPToolbar(self)
self.serviceManagerList.moveTop = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move to &top'),
u':/services/service_top.png',
translate('OpenLP.ServiceManager',
'Move item to the top of the service.'),
self.onServiceTop, shortcuts=[QtCore.Qt.Key_Home])
self.serviceManagerList.moveTop.setObjectName(u'moveTop')
action_list = ActionList.get_instance() action_list = ActionList.get_instance()
action_list.add_category( action_list.add_category(
unicode(UiStrings().Service), CategoryOrder.standardToolbar) unicode(UiStrings().Service), CategoryOrder.standardToolbar)
action_list.add_action( self.serviceManagerList.moveTop = self.orderToolbar.addToolbarButton(
self.serviceManagerList.moveTop, unicode(UiStrings().Service)) u'moveTop', text=translate('OpenLP.ServiceManager', 'Move to &top'),
icon=u':/services/service_top.png', tooltip=translate(
'OpenLP.ServiceManager', 'Move item to the top of the service.'),
shortcuts=[QtCore.Qt.Key_Home], category=UiStrings().Service,
triggers=self.onServiceTop)
self.serviceManagerList.moveUp = self.orderToolbar.addToolbarButton( self.serviceManagerList.moveUp = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move &up'), u'moveUp', text=translate('OpenLP.ServiceManager', 'Move &up'),
u':/services/service_up.png', icon=u':/services/service_up.png',
translate('OpenLP.ServiceManager', tooltip=translate( 'OpenLP.ServiceManager',
'Move item up one position in the service.'), 'Move item up one position in the service.'),
self.onServiceUp, shortcuts=[QtCore.Qt.Key_PageUp]) shortcuts=[QtCore.Qt.Key_PageUp], category=UiStrings().Service,
self.serviceManagerList.moveUp.setObjectName(u'moveUp') triggers=self.onServiceUp)
action_list.add_action(
self.serviceManagerList.moveUp, unicode(UiStrings().Service))
self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton( self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move &down'), u'moveDown', text=translate('OpenLP.ServiceManager', 'Move &down'),
u':/services/service_down.png', icon=u':/services/service_down.png',
translate('OpenLP.ServiceManager', tooltip=translate('OpenLP.ServiceManager',
'Move item down one position in the service.'), 'Move item down one position in the service.'),
self.onServiceDown, shortcuts=[QtCore.Qt.Key_PageDown]) shortcuts=[QtCore.Qt.Key_PageDown], category=UiStrings().Service,
self.serviceManagerList.moveDown.setObjectName(u'moveDown') triggers=self.onServiceDown)
action_list.add_action(
self.serviceManagerList.moveDown, unicode(UiStrings().Service))
self.serviceManagerList.moveBottom = self.orderToolbar.addToolbarButton( self.serviceManagerList.moveBottom = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move to &bottom'), u'moveBottom',
u':/services/service_bottom.png', text=translate('OpenLP.ServiceManager', 'Move to &bottom'),
translate('OpenLP.ServiceManager', icon=u':/services/service_bottom.png', tooltip=translate(
'Move item to the end of the service.'), 'OpenLP.ServiceManager', 'Move item to the end of the service.'),
self.onServiceEnd, shortcuts=[QtCore.Qt.Key_End]) shortcuts=[QtCore.Qt.Key_End], category=UiStrings().Service,
self.serviceManagerList.moveBottom.setObjectName(u'moveBottom') triggers=self.onServiceEnd)
action_list.add_action(
self.serviceManagerList.moveBottom, unicode(UiStrings().Service))
self.serviceManagerList.down = self.orderToolbar.addToolbarButton( self.serviceManagerList.down = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move &down'), u'down', text=translate('OpenLP.ServiceManager', 'Move &down'),
None, tooltip=translate('OpenLP.ServiceManager',
translate('OpenLP.ServiceManager', 'Moves the selection down the window.'), visible=False,
'Moves the selection down the window.'), shortcuts=[QtCore.Qt.Key_Down], triggers=self.onMoveSelectionDown)
self.onMoveSelectionDown, shortcuts=[QtCore.Qt.Key_Down])
self.serviceManagerList.down.setObjectName(u'down')
action_list.add_action(self.serviceManagerList.down) action_list.add_action(self.serviceManagerList.down)
self.serviceManagerList.down.setVisible(False)
self.serviceManagerList.up = self.orderToolbar.addToolbarButton( self.serviceManagerList.up = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Move up'), u'up', text=translate('OpenLP.ServiceManager', 'Move up'),
None, tooltip=translate('OpenLP.ServiceManager',
translate('OpenLP.ServiceManager', 'Moves the selection up the window.'), visible=False,
'Moves the selection up the window.'), shortcuts=[QtCore.Qt.Key_Up], triggers=self.onMoveSelectionUp)
self.onMoveSelectionUp, shortcuts=[QtCore.Qt.Key_Up])
self.serviceManagerList.up.setObjectName(u'up')
action_list.add_action(self.serviceManagerList.up) action_list.add_action(self.serviceManagerList.up)
self.serviceManagerList.up.setVisible(False)
self.orderToolbar.addSeparator() self.orderToolbar.addSeparator()
self.serviceManagerList.delete = self.orderToolbar.addToolbarButton( self.serviceManagerList.delete = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', '&Delete From Service'), u'delete',
u':/general/general_delete.png', text=translate('OpenLP.ServiceManager', '&Delete From Service'),
translate('OpenLP.ServiceManager', icon=u':/general/general_delete.png',
tooltip=translate('OpenLP.ServiceManager',
'Delete the selected item from the service.'), 'Delete the selected item from the service.'),
self.onDeleteFromService) triggers=self.onDeleteFromService)
self.orderToolbar.addSeparator() self.orderToolbar.addSeparator()
self.serviceManagerList.expand = self.orderToolbar.addToolbarButton( self.serviceManagerList.expand = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', '&Expand all'), u'expand', text=translate('OpenLP.ServiceManager', '&Expand all'),
u':/services/service_expand_all.png', icon=u':/services/service_expand_all.png', tooltip=translate(
translate('OpenLP.ServiceManager', 'OpenLP.ServiceManager', 'Expand all the service items.'),
'Expand all the service items.'), shortcuts=[QtCore.Qt.Key_Plus], category=UiStrings().Service,
self.onExpandAll, shortcuts=[QtCore.Qt.Key_Plus]) triggers=self.onExpandAll)
self.serviceManagerList.expand.setObjectName(u'expand')
action_list.add_action(
self.serviceManagerList.expand, unicode(UiStrings().Service))
self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton( self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', '&Collapse all'), u'collapse',
u':/services/service_collapse_all.png', text=translate('OpenLP.ServiceManager', '&Collapse all'),
translate('OpenLP.ServiceManager', icon=u':/services/service_collapse_all.png', tooltip=translate(
'Collapse all the service items.'), 'OpenLP.ServiceManager', 'Collapse all the service items.'),
self.onCollapseAll, shortcuts=[QtCore.Qt.Key_Minus]) shortcuts=[QtCore.Qt.Key_Minus], category=UiStrings().Service,
self.serviceManagerList.collapse.setObjectName(u'collapse') triggers=self.onCollapseAll)
action_list.add_action(
self.serviceManagerList.collapse, unicode(UiStrings().Service))
self.orderToolbar.addSeparator() self.orderToolbar.addSeparator()
self.serviceManagerList.makeLive = self.orderToolbar.addToolbarButton( self.serviceManagerList.makeLive = self.orderToolbar.addToolbarButton(
translate('OpenLP.ServiceManager', 'Go Live'), u'makeLive', text=translate('OpenLP.ServiceManager', 'Go Live'),
u':/general/general_live.png', icon=u':/general/general_live.png', tooltip=translate(
translate('OpenLP.ServiceManager', 'OpenLP.ServiceManager', 'Send the selected item to Live.'),
'Send the selected item to Live.'), self.makeLive, shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return],
shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]) category=UiStrings().Service, triggers=self.makeLive)
self.serviceManagerList.makeLive.setObjectName(u'orderToolbar')
action_list.add_action(
self.serviceManagerList.makeLive, unicode(UiStrings().Service))
self.layout.addWidget(self.orderToolbar) self.layout.addWidget(self.orderToolbar)
# Connect up our signals and slots # Connect up our signals and slots
QtCore.QObject.connect(self.themeComboBox, QtCore.QObject.connect(self.themeComboBox,
@ -305,34 +284,32 @@ class ServiceManager(QtGui.QWidget):
self.addToAction.setIcon(build_icon(u':/general/general_edit.png')) self.addToAction.setIcon(build_icon(u':/general/general_edit.png'))
# build the context menu # build the context menu
self.menu = QtGui.QMenu() self.menu = QtGui.QMenu()
self.editAction = context_menu_action( self.editAction = create_widget_action(self.menu,
self.menu, u':/general/general_edit.png', text=translate('OpenLP.ServiceManager', '&Edit Item'),
translate('OpenLP.ServiceManager', '&Edit Item'), self.remoteEdit) icon=u':/general/general_edit.png', triggers=self.remoteEdit)
self.maintainAction = context_menu_action( self.maintainAction = create_widget_action(self.menu,
self.menu, u':/general/general_edit.png', text=translate('OpenLP.ServiceManager', '&Reorder Item'),
translate('OpenLP.ServiceManager', '&Reorder Item'), icon=u':/general/general_edit.png',
self.onServiceItemEditForm) triggers=self.onServiceItemEditForm)
self.notesAction = context_menu_action( self.notesAction = create_widget_action(self.menu,
self.menu, u':/services/service_notes.png', text=translate('OpenLP.ServiceManager', '&Notes'),
translate('OpenLP.ServiceManager', '&Notes'), icon=u':/services/service_notes.png',
self.onServiceItemNoteForm) triggers=self.onServiceItemNoteForm)
self.timeAction = context_menu_action( self.timeAction = create_widget_action(self.menu,
self.menu, u':/media/media_time.png', text=translate('OpenLP.ServiceManager', '&Start Time'),
translate('OpenLP.ServiceManager', '&Start Time'), icon=u':/media/media_time.png', triggers=self.onStartTimeForm)
self.onStartTimeForm) self.deleteAction = create_widget_action(self.menu,
self.deleteAction = context_menu_action( text=translate('OpenLP.ServiceManager', '&Delete From Service'),
self.menu, u':/general/general_delete.png', icon=u':/general/general_delete.png',
translate('OpenLP.ServiceManager', '&Delete From Service'), triggers=self.onDeleteFromService)
self.onDeleteFromService) self.menu.addSeparator()
context_menu_separator(self.menu) self.previewAction = create_widget_action(self.menu,
self.previewAction = context_menu_action( text=translate('OpenLP.ServiceManager', 'Show &Preview'),
self.menu, u':/general/general_preview.png', icon=u':/general/general_preview.png', triggers=self.makePreview)
translate('OpenLP.ServiceManager', 'Show &Preview'), self.liveAction = create_widget_action(self.menu,
self.makePreview) text=translate('OpenLP.ServiceManager', 'Show &Live'),
self.liveAction = context_menu_action( icon=u':/general/general_live.png', triggers=self.makeLive)
self.menu, u':/general/general_live.png', self.menu.addSeparator()
translate('OpenLP.ServiceManager', 'Show &Live'), self.makeLive)
context_menu_separator(self.menu)
self.themeMenu = QtGui.QMenu( self.themeMenu = QtGui.QMenu(
translate('OpenLP.ServiceManager', '&Change Item Theme')) translate('OpenLP.ServiceManager', '&Change Item Theme'))
self.menu.addMenu(self.themeMenu) self.menu.addMenu(self.themeMenu)
@ -1450,19 +1427,16 @@ class ServiceManager(QtGui.QWidget):
themeGroup.setObjectName(u'themeGroup') themeGroup.setObjectName(u'themeGroup')
# Create a "Default" theme, which allows the user to reset the item's # Create a "Default" theme, which allows the user to reset the item's
# theme to the service theme or global theme. # theme to the service theme or global theme.
defaultTheme = context_menu_action(self.themeMenu, None, defaultTheme = create_widget_action(self.themeMenu,
UiStrings().Default, self.onThemeChangeAction) text=UiStrings().Default, checked=False,
defaultTheme.setCheckable(True) triggers=self.onThemeChangeAction)
self.themeMenu.setDefaultAction(defaultTheme) self.themeMenu.setDefaultAction(defaultTheme)
themeGroup.addAction(defaultTheme) themeGroup.addAction(defaultTheme)
context_menu_separator(self.themeMenu) self.themeMenu.addSeparator()
for theme in theme_list: for theme in theme_list:
self.themeComboBox.addItem(theme) self.themeComboBox.addItem(theme)
themeAction = context_menu_action(self.themeMenu, None, theme, themeGroup.addAction(create_widget_action(self.themeMenu, theme,
self.onThemeChangeAction) text=theme, checked=False, triggers=self.onThemeChangeAction))
themeAction.setObjectName(theme)
themeAction.setCheckable(True)
themeGroup.addAction(themeAction)
find_and_set_in_combo_box(self.themeComboBox, self.service_theme) find_and_set_in_combo_box(self.themeComboBox, self.service_theme)
self.mainwindow.renderer.set_service_theme(self.service_theme) self.mainwindow.renderer.set_service_theme(self.service_theme)
self.regenerateServiceItems() self.regenerateServiceItems()

View File

@ -168,20 +168,18 @@ class SlideController(Controller):
sizeToolbarPolicy.setHeightForWidth( sizeToolbarPolicy.setHeightForWidth(
self.toolbar.sizePolicy().hasHeightForWidth()) self.toolbar.sizePolicy().hasHeightForWidth())
self.toolbar.setSizePolicy(sizeToolbarPolicy) self.toolbar.setSizePolicy(sizeToolbarPolicy)
self.previousItem = self.toolbar.addToolbarButton( self.previousItem = self.toolbar.addToolbarButton(u'previousItem',
u'Previous Slide', text=u'Previous Slide', icon=u':/slides/slide_previous.png',
u':/slides/slide_previous.png', tooltip=translate('OpenLP.SlideController', 'Move to previous.'),
translate('OpenLP.SlideController', 'Move to previous.'),
self.onSlideSelectedPrevious,
shortcuts=[QtCore.Qt.Key_Up, QtCore.Qt.Key_PageUp], shortcuts=[QtCore.Qt.Key_Up, QtCore.Qt.Key_PageUp],
context=QtCore.Qt.WidgetWithChildrenShortcut) context=QtCore.Qt.WidgetWithChildrenShortcut,
self.nextItem = self.toolbar.addToolbarButton( triggers=self.onSlideSelectedPrevious)
u'Next Slide', self.nextItem = self.toolbar.addToolbarButton(u'nextItem',
u':/slides/slide_next.png', text=u'Next Slide', icon=u':/slides/slide_next.png',
translate('OpenLP.SlideController', 'Move to next.'), tooltip=translate('OpenLP.SlideController', 'Move to next.'),
self.onSlideSelectedNext,
shortcuts=[QtCore.Qt.Key_Down, QtCore.Qt.Key_PageDown], shortcuts=[QtCore.Qt.Key_Down, QtCore.Qt.Key_PageDown],
context=QtCore.Qt.WidgetWithChildrenShortcut) context=QtCore.Qt.WidgetWithChildrenShortcut,
triggers=self.onSlideSelectedNext)
self.toolbar.addToolbarSeparator(u'Close Separator') self.toolbar.addToolbarSeparator(u'Close Separator')
if self.isLive: if self.isLive:
# Hide Menu # Hide Menu
@ -195,20 +193,17 @@ class SlideController(Controller):
text=translate('OpenLP.SlideController', 'Blank Screen'), text=translate('OpenLP.SlideController', 'Blank Screen'),
icon=u':/slides/slide_blank.png', checked=False, icon=u':/slides/slide_blank.png', checked=False,
shortcuts=[QtCore.Qt.Key_Period], shortcuts=[QtCore.Qt.Key_Period],
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.onBlankDisplay)
triggers=self.onBlankDisplay)
self.themeScreen = create_action(self.hideMenu, u'themeScreen', self.themeScreen = create_action(self.hideMenu, u'themeScreen',
text=translate('OpenLP.SlideController', 'Blank to Theme'), text=translate('OpenLP.SlideController', 'Blank to Theme'),
icon=u':/slides/slide_theme.png', checked=False, icon=u':/slides/slide_theme.png', checked=False,
shortcuts=[QtGui.QKeySequence(u'T')], shortcuts=[QtGui.QKeySequence(u'T')],
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.onThemeDisplay)
triggers=self.onThemeDisplay)
self.desktopScreen = create_action(self.hideMenu, u'desktopScreen', self.desktopScreen = create_action(self.hideMenu, u'desktopScreen',
text=translate('OpenLP.SlideController', 'Show Desktop'), text=translate('OpenLP.SlideController', 'Show Desktop'),
icon=u':/slides/slide_desktop.png', checked=False, icon=u':/slides/slide_desktop.png', checked=False,
shortcuts=[QtGui.QKeySequence(u'D')], shortcuts=[QtGui.QKeySequence(u'D')],
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.onHideDisplay)
triggers=self.onHideDisplay)
self.hideMenu.setDefaultAction(self.blankScreen) self.hideMenu.setDefaultAction(self.blankScreen)
self.hideMenu.menu().addAction(self.blankScreen) self.hideMenu.menu().addAction(self.blankScreen)
self.hideMenu.menu().addAction(self.themeScreen) self.hideMenu.menu().addAction(self.themeScreen)
@ -227,12 +222,12 @@ class SlideController(Controller):
self.playSlidesLoop = create_action(self.playSlidesMenu, self.playSlidesLoop = create_action(self.playSlidesMenu,
u'playSlidesLoop', text=UiStrings().PlaySlidesInLoop, u'playSlidesLoop', text=UiStrings().PlaySlidesInLoop,
icon=u':/media/media_time.png', checked=False, shortcuts=[], icon=u':/media/media_time.png', checked=False, shortcuts=[],
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar,
triggers=self.onPlaySlidesLoop) triggers=self.onPlaySlidesLoop)
self.playSlidesOnce = create_action(self.playSlidesMenu, self.playSlidesOnce = create_action(self.playSlidesMenu,
u'playSlidesOnce', text=UiStrings().PlaySlidesToEnd, u'playSlidesOnce', text=UiStrings().PlaySlidesToEnd,
icon=u':/media/media_time.png', checked=False, shortcuts=[], icon=u':/media/media_time.png', checked=False, shortcuts=[],
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar,
triggers=self.onPlaySlidesOnce) triggers=self.onPlaySlidesOnce)
if QtCore.QSettings().value(self.parent().generalSettingsSection + if QtCore.QSettings().value(self.parent().generalSettingsSection +
u'/enable slide loop', QtCore.QVariant(True)).toBool(): u'/enable slide loop', QtCore.QVariant(True)).toBool():
@ -249,23 +244,22 @@ class SlideController(Controller):
self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', self.delaySpinBox.setToolTip(translate('OpenLP.SlideController',
'Delay between slides in seconds.')) 'Delay between slides in seconds.'))
else: else:
self.toolbar.addToolbarButton( self.toolbar.addToolbarButton(u'goLive',
# Does not need translating - control string. # Does not need translating - control string.
u'Go Live', u':/general/general_live.png', text=u'Go Live', icon=u':/general/general_live.png',
translate('OpenLP.SlideController', 'Move to live.'), tooltip=translate('OpenLP.SlideController', 'Move to live.'),
self.onGoLive) triggers=self.onGoLive)
self.toolbar.addToolbarButton( self.toolbar.addToolbarButton(u'addToService',
# Does not need translating - control string. # Does not need translating - control string.
u'Add to Service', u':/general/general_add.png', text=u'Add to Service', icon=u':/general/general_add.png',
translate('OpenLP.SlideController', 'Add to Service.'), tooltip=translate('OpenLP.SlideController', 'Add to Service.'),
self.onPreviewAddToService) triggers=self.onPreviewAddToService)
self.toolbar.addToolbarSeparator(u'Close Separator') self.toolbar.addToolbarSeparator(u'Close Separator')
self.toolbar.addToolbarButton( self.toolbar.addToolbarButton(u'editSong',
# Does not need translating - control string. # Does not need translating - control string.
u'Edit Song', u':/general/general_edit.png', text=u'Edit Song', icon=u':/general/general_edit.png',
translate('OpenLP.SlideController', tooltip=translate('OpenLP.SlideController',
'Edit and reload song preview.'), 'Edit and reload song preview.'), triggers=self.onEditSong)
self.onEditSong)
self.controllerLayout.addWidget(self.toolbar) self.controllerLayout.addWidget(self.toolbar)
# Build the Media Toolbar # Build the Media Toolbar
self.mediaController.add_controller_items(self, self.controllerLayout) self.mediaController.add_controller_items(self, self.controllerLayout)
@ -279,11 +273,11 @@ class SlideController(Controller):
translate('OpenLP.SlideController', 'Go To'), self.toolbar)) translate('OpenLP.SlideController', 'Go To'), self.toolbar))
self.toolbar.makeWidgetsInvisible([u'Song Menu']) self.toolbar.makeWidgetsInvisible([u'Song Menu'])
# Stuff for items with background audio. # Stuff for items with background audio.
self.audioPauseItem = self.toolbar.addToolbarButton( self.audioPauseItem = self.toolbar.addToolbarButton(u'audioPause',
u'Pause Audio', u':/slides/media_playback_pause.png', text=u'Pause Audio', icon=u':/slides/media_playback_pause.png',
translate('OpenLP.SlideController', 'Pause audio.'), tooltip=translate('OpenLP.SlideController', 'Pause audio.'),
self.onAudioPauseClicked, True) checked=False, visible=False,
self.audioPauseItem.setVisible(False) triggers=self.onAudioPauseClicked)
# Screen preview area # Screen preview area
self.previewFrame = QtGui.QFrame(self.splitter) self.previewFrame = QtGui.QFrame(self.splitter)
self.previewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio)) self.previewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio))
@ -348,7 +342,7 @@ class SlideController(Controller):
u'shortcutAction_%s' % s[u'key'], text=s.get(u'text'), u'shortcutAction_%s' % s[u'key'], text=s.get(u'text'),
shortcuts=[QtGui.QKeySequence(s[u'key'])], shortcuts=[QtGui.QKeySequence(s[u'key'])],
context=QtCore.Qt.WidgetWithChildrenShortcut, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=unicode(UiStrings().LiveToolbar) \ category=UiStrings().LiveToolbar \
if s.get(u'configurable') else None, if s.get(u'configurable') else None,
triggers=self._slideShortcutActivated) for s in shortcuts]) triggers=self._slideShortcutActivated) for s in shortcuts])
QtCore.QObject.connect( QtCore.QObject.connect(
@ -492,20 +486,17 @@ class SlideController(Controller):
text=translate('OpenLP.SlideController', 'Previous Service'), text=translate('OpenLP.SlideController', 'Previous Service'),
shortcuts=[QtCore.Qt.Key_Left], shortcuts=[QtCore.Qt.Key_Left],
context=QtCore.Qt.WidgetWithChildrenShortcut, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.servicePrevious)
triggers=self.servicePrevious)
self.nextService = create_action(parent, 'nextService', self.nextService = create_action(parent, 'nextService',
text=translate('OpenLP.SlideController', 'Next Service'), text=translate('OpenLP.SlideController', 'Next Service'),
shortcuts=[QtCore.Qt.Key_Right], shortcuts=[QtCore.Qt.Key_Right],
context=QtCore.Qt.WidgetWithChildrenShortcut, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.serviceNext)
triggers=self.serviceNext)
self.escapeItem = create_action(parent, 'escapeItem', self.escapeItem = create_action(parent, 'escapeItem',
text=translate('OpenLP.SlideController', 'Escape Item'), text=translate('OpenLP.SlideController', 'Escape Item'),
shortcuts=[QtCore.Qt.Key_Escape], shortcuts=[QtCore.Qt.Key_Escape],
context=QtCore.Qt.WidgetWithChildrenShortcut, context=QtCore.Qt.WidgetWithChildrenShortcut,
category=unicode(UiStrings().LiveToolbar), category=UiStrings().LiveToolbar, triggers=self.liveEscape)
triggers=self.liveEscape)
def liveEscape(self): def liveEscape(self):
self.display.setVisible(False) self.display.setVisible(False)

View File

@ -41,7 +41,7 @@ from openlp.core.lib import OpenLPToolbar, get_text_file_string, build_icon, \
from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, \ from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, \
BackgroundGradientType BackgroundGradientType
from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ from openlp.core.lib.ui import UiStrings, critical_error_message_box, \
context_menu_action, context_menu_separator create_widget_action
from openlp.core.theme import Theme from openlp.core.theme import Theme
from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.ui import FileRenameForm, ThemeForm
from openlp.core.utils import AppLocation, delete_file, get_filesystem_encoding from openlp.core.utils import AppLocation, delete_file, get_filesystem_encoding
@ -64,32 +64,32 @@ class ThemeManager(QtGui.QWidget):
self.layout.setMargin(0) self.layout.setMargin(0)
self.layout.setObjectName(u'layout') self.layout.setObjectName(u'layout')
self.toolbar = OpenLPToolbar(self) self.toolbar = OpenLPToolbar(self)
self.toolbar.addToolbarButton(UiStrings().NewTheme,
u':/themes/theme_new.png',
translate('OpenLP.ThemeManager', 'Create a new theme.'),
self.onAddTheme)
self.toolbar.addToolbarButton(
translate('OpenLP.ThemeManager', 'Edit Theme'),
u':/themes/theme_edit.png',
translate('OpenLP.ThemeManager', 'Edit a theme.'),
self.onEditTheme)
self.deleteToolbarAction = self.toolbar.addToolbarButton(
translate('OpenLP.ThemeManager', 'Delete Theme'),
u':/general/general_delete.png',
translate('OpenLP.ThemeManager', 'Delete a theme.'),
self.onDeleteTheme)
self.toolbar.addSeparator()
self.toolbar.addToolbarButton(
translate('OpenLP.ThemeManager', 'Import Theme'),
u':/general/general_import.png',
translate('OpenLP.ThemeManager', 'Import a theme.'),
self.onImportTheme)
self.toolbar.addToolbarButton(
translate('OpenLP.ThemeManager', 'Export Theme'),
u':/general/general_export.png',
translate('OpenLP.ThemeManager', 'Export a theme.'),
self.onExportTheme)
self.toolbar.setObjectName(u'toolbar') self.toolbar.setObjectName(u'toolbar')
self.toolbar.addToolbarButton(u'newTheme',
text=UiStrings().NewTheme, icon=u':/themes/theme_new.png',
tooltip=translate('OpenLP.ThemeManager', 'Create a new theme.'),
triggers=self.onAddTheme)
self.toolbar.addToolbarButton(u'editTheme',
text=translate('OpenLP.ThemeManager', 'Edit Theme'),
icon=u':/themes/theme_edit.png',
tooltip=translate('OpenLP.ThemeManager', 'Edit a theme.'),
triggers=self.onEditTheme)
self.deleteToolbarAction = self.toolbar.addToolbarButton(u'deleteTheme',
text=translate('OpenLP.ThemeManager', 'Delete Theme'),
icon=u':/general/general_delete.png',
tooltip=translate('OpenLP.ThemeManager', 'Delete a theme.'),
triggers=self.onDeleteTheme)
self.toolbar.addSeparator()
self.toolbar.addToolbarButton(u'importTheme',
text=translate('OpenLP.ThemeManager', 'Import Theme'),
icon=u':/general/general_import.png',
tooltip=translate('OpenLP.ThemeManager', 'Import a theme.'),
triggers=self.onImportTheme)
self.toolbar.addToolbarButton(u'exportTheme',
text=translate('OpenLP.ThemeManager', 'Export Theme'),
icon=u':/general/general_export.png',
tooltip=translate('OpenLP.ThemeManager', 'Export a theme.'),
triggers=self.onExportTheme)
self.layout.addWidget(self.toolbar) self.layout.addWidget(self.toolbar)
self.themeWidget = QtGui.QWidgetAction(self.toolbar) self.themeWidget = QtGui.QWidgetAction(self.toolbar)
self.themeWidget.setObjectName(u'themeWidget') self.themeWidget.setObjectName(u'themeWidget')
@ -105,29 +105,26 @@ class ThemeManager(QtGui.QWidget):
self.contextMenu) self.contextMenu)
# build the context menu # build the context menu
self.menu = QtGui.QMenu() self.menu = QtGui.QMenu()
self.editAction = context_menu_action( self.editAction = create_widget_action(self.menu,
self.menu, u':/themes/theme_edit.png', text=translate('OpenLP.ThemeManager', '&Edit Theme'),
translate('OpenLP.ThemeManager', '&Edit Theme'), self.onEditTheme) icon=u':/themes/theme_edit.png', triggers=self.onEditTheme)
self.copyAction = context_menu_action( self.copyAction = create_widget_action(self.menu,
self.menu, u':/themes/theme_edit.png', text=translate('OpenLP.ThemeManager', '&Copy Theme'),
translate('OpenLP.ThemeManager', '&Copy Theme'), self.onCopyTheme) icon=u':/themes/theme_edit.png', triggers=self.onCopyTheme)
self.renameAction = context_menu_action( self.renameAction = create_widget_action(self.menu,
self.menu, u':/themes/theme_edit.png', text=translate('OpenLP.ThemeManager', '&Rename Theme'),
translate('OpenLP.ThemeManager', '&Rename Theme'), icon=u':/themes/theme_edit.png', triggers=self.onRenameTheme)
self.onRenameTheme) self.deleteAction = create_widget_action(self.menu,
self.deleteAction = context_menu_action( text=translate('OpenLP.ThemeManager', '&Delete Theme'),
self.menu, u':/general/general_delete.png', icon=u':/general/general_delete.png', triggers=self.onDeleteTheme)
translate('OpenLP.ThemeManager', '&Delete Theme'), self.menu.addSeparator()
self.onDeleteTheme) self.globalAction = create_widget_action(self.menu,
context_menu_separator(self.menu) text=translate('OpenLP.ThemeManager', 'Set As &Global Default'),
self.globalAction = context_menu_action( icon=u':/general/general_export.png',
self.menu, u':/general/general_export.png', triggers=self.changeGlobalFromScreen)
translate('OpenLP.ThemeManager', 'Set As &Global Default'), self.exportAction = create_widget_action(self.menu,
self.changeGlobalFromScreen) text=translate('OpenLP.ThemeManager', '&Export Theme'),
self.exportAction = context_menu_action( icon=u':/general/general_export.png', triggers=self.onExportTheme)
self.menu, u':/general/general_export.png',
translate('OpenLP.ThemeManager', '&Export Theme'),
self.onExportTheme)
# Signals # Signals
QtCore.QObject.connect(self.themeListWidget, QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),

View File

@ -89,11 +89,11 @@ class ImageMediaItem(MediaManagerItem):
self.listView.addAction(self.replaceAction) self.listView.addAction(self.replaceAction)
def addEndHeaderBar(self): def addEndHeaderBar(self):
self.replaceAction = self.addToolbarButton(u'', u'', self.replaceAction = self.addToolbarButton(u'replaceAction',
u':/slides/slide_blank.png', self.onReplaceClick, False) icon=u':/slides/slide_blank.png', triggers=self.onReplaceClick)
self.resetAction = self.addToolbarButton(u'', u'', self.resetAction = self.addToolbarButton(u'resetAction',
u':/system/system_close.png', self.onResetClick, False) icon=u':/system/system_close.png', visible=False,
self.resetAction.setVisible(False) triggers=self.onResetClick)
def onDeleteClick(self): def onDeleteClick(self):
""" """

View File

@ -118,11 +118,11 @@ class MediaMediaItem(MediaManagerItem):
def addEndHeaderBar(self): def addEndHeaderBar(self):
# Replace backgrounds do not work at present so remove functionality. # Replace backgrounds do not work at present so remove functionality.
self.replaceAction = self.addToolbarButton(u'', u'', self.replaceAction = self.addToolbarButton(u'replaceAction',
u':/slides/slide_blank.png', self.onReplaceClick, False) icon=u':/slides/slide_blank.png', triggers=self.onReplaceClick)
self.resetAction = self.addToolbarButton(u'', u'', self.resetAction = self.addToolbarButton(u'resetAction',
u':/system/system_close.png', self.onResetClick, False) icon=u':/system/system_close.png', visible=False,
self.resetAction.setVisible(False) triggers=self.onResetClick)
self.mediaWidget = QtGui.QWidget(self) self.mediaWidget = QtGui.QWidget(self)
self.mediaWidget.setObjectName(u'mediaWidget') self.mediaWidget.setObjectName(u'mediaWidget')
self.displayLayout = QtGui.QFormLayout(self.mediaWidget) self.displayLayout = QtGui.QFormLayout(self.mediaWidget)

View File

@ -36,8 +36,7 @@ from sqlalchemy.sql import or_
from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \
translate, check_item_selected, PluginStatus, create_separated_list translate, check_item_selected, PluginStatus, create_separated_list
from openlp.core.lib.ui import UiStrings, context_menu_action, \ from openlp.core.lib.ui import UiStrings, create_action, create_widget_action
context_menu_separator
from openlp.core.utils import AppLocation from openlp.core.utils import AppLocation
from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \
SongImportForm, SongExportForm SongImportForm, SongExportForm
@ -100,8 +99,9 @@ class SongMediaItem(MediaManagerItem):
def addEndHeaderBar(self): def addEndHeaderBar(self):
self.addToolbarSeparator() self.addToolbarSeparator()
## Song Maintenance Button ## ## Song Maintenance Button ##
self.maintenanceAction = self.addToolbarButton(u'', u'', self.maintenanceAction = self.addToolbarButton(u'maintenanceAction',
':/songs/song_maintenance.png', self.onSongMaintenanceClick) icon=':/songs/song_maintenance.png',
triggers=self.onSongMaintenanceClick)
self.addSearchToToolBar() self.addSearchToToolBar()
# Signals and slots # Signals and slots
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
@ -121,11 +121,10 @@ class SongMediaItem(MediaManagerItem):
self.onSearchTextButtonClick) self.onSearchTextButtonClick)
def addCustomContextActions(self): def addCustomContextActions(self):
context_menu_separator(self.listView) create_widget_action(self.listView, separator=True)
context_menu_action( create_widget_action(self.listView,
self.listView, u':/general/general_clone.png', text=translate('OpenLP.MediaManagerItem', '&Clone'),
translate('OpenLP.MediaManagerItem', icon=u':/general/general_clone.png', triggers=self.onCloneClick)
'&Clone'), self.onCloneClick)
def onFocus(self): def onFocus(self):
self.searchTextEdit.setFocus() self.searchTextEdit.setFocus()