diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index d7b15a0cb..992286686 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -36,8 +36,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsManager, OpenLPToolbar, ServiceItem, \ StringContent, build_icon, translate, Receiver, ListWidgetWithDnD from openlp.core.lib.searchedit import SearchEdit -from openlp.core.lib.ui import UiStrings, context_menu_action, \ - context_menu_separator, critical_error_message_box +from openlp.core.lib.ui import UiStrings, create_widget_action, \ + critical_error_message_box log = logging.getLogger(__name__) @@ -147,36 +147,13 @@ class MediaManagerItem(QtGui.QWidget): self.toolbar = OpenLPToolbar(self) self.pageLayout.addWidget(self.toolbar) - def addToolbarButton( - self, title, tooltip, icon, slot=None, checkable=False): + def addToolbarButton(self, name, **kwargs): """ - A method to help developers easily add a button to the toolbar. - - ``title`` - 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. + A method to help developers easily add a button to the toolbar. For + details please have a look at OpenLPToolbar.addToolbarButton() and + openlp.core.lib.ui.create_action(). """ - # NB different order (when I broke this out, I didn't want to - # 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) + return self.toolbar.addToolbarButton(name, **kwargs) def addToolbarSeparator(self): """ @@ -208,40 +185,40 @@ class MediaManagerItem(QtGui.QWidget): toolbar_actions = [] ## Import Button ## if self.hasImportIcon: - toolbar_actions.append([StringContent.Import, + toolbar_actions.append([u'Import', StringContent.Import, u':/general/general_import.png', self.onImportClick]) ## Load Button ## if self.hasFileIcon: - toolbar_actions.append([StringContent.Load, + toolbar_actions.append([u'Load', StringContent.Load, u':/general/general_open.png', self.onFileClick]) ## New Button ## if self.hasNewIcon: - toolbar_actions.append([StringContent.New, + toolbar_actions.append([u'New', StringContent.New, u':/general/general_new.png', self.onNewClick]) ## Edit Button ## if self.hasEditIcon: - toolbar_actions.append([StringContent.Edit, + toolbar_actions.append([u'Edit', StringContent.Edit, u':/general/general_edit.png', self.onEditClick]) ## Delete Button ## if self.hasDeleteIcon: - toolbar_actions.append([StringContent.Delete, + toolbar_actions.append([u'Delete', StringContent.Delete, u':/general/general_delete.png', self.onDeleteClick]) ## Preview ## - toolbar_actions.append([StringContent.Preview, + toolbar_actions.append([u'Preview', StringContent.Preview, u':/general/general_preview.png', self.onPreviewClick]) ## Live Button ## - toolbar_actions.append([StringContent.Live, + toolbar_actions.append([u'Live', StringContent.Live, u':/general/general_live.png', self.onLiveClick]) ## Add to service Button ## - toolbar_actions.append([StringContent.Service, + toolbar_actions.append([u'Service', StringContent.Service, u':/general/general_add.png', self.onAddClick]) for action in toolbar_actions: if action[0] == StringContent.Preview: self.addToolbarSeparator() - self.addToolbarButton( - self.plugin.getString(action[0])[u'title'], - self.plugin.getString(action[0])[u'tooltip'], - action[1], action[2]) + self.addToolbarButton(u'%s%sAction' % (self.plugin.name, action[0]), + text=self.plugin.getString(action[1])[u'title'], icon=action[2], + tooltip=self.plugin.getString(action[1])[u'tooltip'], + triggers=action[3]) def addListViewToToolBar(self): """ @@ -259,35 +236,37 @@ class MediaManagerItem(QtGui.QWidget): # define and add the context menu self.listView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) if self.hasEditIcon: - context_menu_action( - self.listView, u':/general/general_edit.png', - self.plugin.getString(StringContent.Edit)[u'title'], - self.onEditClick) - context_menu_separator(self.listView) + create_widget_action(self.listView, + text=self.plugin.getString(StringContent.Edit)[u'title'], + icon=u':/general/general_edit.png', + triggers=self.onEditClick) + create_widget_action(self.listView, separator=True) if self.hasDeleteIcon: - context_menu_action( - self.listView, u':/general/general_delete.png', - self.plugin.getString(StringContent.Delete)[u'title'], - self.onDeleteClick, [QtCore.Qt.Key_Delete]) - context_menu_separator(self.listView) - context_menu_action( - self.listView, u':/general/general_preview.png', - self.plugin.getString(StringContent.Preview)[u'title'], - self.onPreviewClick, [QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]) - context_menu_action( - self.listView, u':/general/general_live.png', - self.plugin.getString(StringContent.Live)[u'title'], - self.onLiveClick, [QtCore.Qt.ShiftModifier + QtCore.Qt.Key_Enter, - QtCore.Qt.ShiftModifier + QtCore.Qt.Key_Return]) - context_menu_action( - self.listView, u':/general/general_add.png', - self.plugin.getString(StringContent.Service)[u'title'], - self.onAddClick, [QtCore.Qt.Key_Plus, QtCore.Qt.Key_Equal]) + create_widget_action(self.listView, + text=self.plugin.getString(StringContent.Delete)[u'title'], + icon=u':/general/general_delete.png', + shortcuts=[QtCore.Qt.Key_Delete], triggers=self.onDeleteClick) + create_widget_action(self.listView, separator=True) + create_widget_action(self.listView, + text=self.plugin.getString(StringContent.Preview)[u'title'], + icon=u':/general/general_preview.png', + shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return], + triggers=self.onPreviewClick) + create_widget_action(self.listView, + text=self.plugin.getString(StringContent.Live)[u'title'], + icon=u':/general/general_live.png', + shortcuts=[QtCore.Qt.ShiftModifier | QtCore.Qt.Key_Enter, + QtCore.Qt.ShiftModifier | QtCore.Qt.Key_Return], + triggers=self.onLiveClick) + create_widget_action(self.listView, + 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: - context_menu_action( - self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', - '&Add to selected Service Item'), self.onAddEditClick) + create_widget_action(self.listView, text=translate( + 'OpenLP.MediaManagerItem', '&Add to selected Service Item'), + icon=u':/general/general_add.png', triggers=self.onAddEditClick) self.addCustomContextActions() # Create the context menu and add all actions from the listView. self.menu = QtGui.QMenu() diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index 1418b501a..4fae1aebd 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -32,6 +32,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon +from openlp.core.lib.ui import create_widget_action log = logging.getLogger(__name__) @@ -51,58 +52,21 @@ class OpenLPToolbar(QtGui.QToolBar): self.actions = {} log.debug(u'Init done for %s' % parent.__class__.__name__) - def addToolbarButton(self, title, icon, tooltip=None, slot=None, - checkable=False, shortcuts=None, context=QtCore.Qt.WidgetShortcut): + def addToolbarButton(self, name, **kwargs): """ - A method to help developers easily add a button to the toolbar. - - ``title`` - The title of 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 ':/'. - - ``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 + 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 + to the toolbar and the toolbar is set as parent. For more details please + look at openlp.core.lib.ui.create_action() """ - if icon: - actionIcon = build_icon(icon) - if slot and not checkable: - newAction = self.addAction(actionIcon, title, slot) - else: - newAction = self.addAction(actionIcon, title) - self.icons[title] = actionIcon - else: - 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 + action = create_widget_action(self, name, **kwargs) + # The ObjectNames should be used as keys. So translators can't break + # anything. + title = kwargs.get(u'text', u'') + self.actions[title] = action + if u'icon' in kwargs: + self.icons[title] = action.icon() + return action def addToolbarSeparator(self, handle): """ diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 7cc63d4a9..347946337 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -312,6 +312,9 @@ def create_action(parent, name, **kwargs): ``visible`` False in case the action should be hidden. + ``separator`` + True in case the action will be considered a separator. + ``data`` Data which is set as QVariant type. @@ -345,15 +348,17 @@ def create_action(parent, name, **kwargs): action.setEnabled(False) if not kwargs.pop(u'visible', True): action.setVisible(False) + if kwargs.pop(u'separator', False): + action.setSeparator(True) if u'data' in kwargs: action.setData(QtCore.QVariant(kwargs.pop(u'data'))) if kwargs.get(u'shortcuts'): action.setShortcuts(kwargs.pop(u'shortcuts')) - action.setShortcutContext(kwargs.pop(u'context', - QtCore.Qt.WindowShortcut)) + if kwargs.get(u'context') is not None: + action.setShortcutContext(kwargs.pop(u'context')) if kwargs.get(u'category'): 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'): QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), 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) return action -def context_menu_action(base, icon, text, slot, shortcuts=None, category=None, - context=QtCore.Qt.WidgetShortcut): - action = create_action(parent=base, name=u'', text=text, icon=icon, - shortcuts=shortcuts, context=context, category=category, triggers=slot) - base.addAction(action) +def create_widget_action(parent, name=u'', **kwargs): + """ + Return a new QAction by calling ``create_action(parent, name, **kwargs)``. + The shortcut context defaults to ``QtCore.Qt.WidgetShortcut`` and the 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 def context_menu(base, icon, text): @@ -387,18 +396,6 @@ def context_menu(base, icon, text): action.setIcon(build_icon(icon)) 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): """ Adds a text autocompleter to a widget. diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 1f28beee5..74b258d50 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -181,81 +181,75 @@ class Ui_MainWindow(object): self.fileNewItem = create_action(mainWindow, u'fileNewItem', icon=u':/general/general_new.png', shortcuts=[QtGui.QKeySequence(u'Ctrl+N')], - category=unicode(UiStrings().File), + category=UiStrings().File, triggers=self.serviceManagerContents.onNewServiceClicked) self.fileOpenItem = create_action(mainWindow, u'fileOpenItem', icon=u':/general/general_open.png', shortcuts=[QtGui.QKeySequence(u'Ctrl+O')], - category=unicode(UiStrings().File), + category=UiStrings().File, triggers=self.serviceManagerContents.onLoadServiceClicked) self.fileSaveItem = create_action(mainWindow, u'fileSaveItem', icon=u':/general/general_save.png', shortcuts=[QtGui.QKeySequence(u'Ctrl+S')], - category=unicode(UiStrings().File), + category=UiStrings().File, triggers=self.serviceManagerContents.saveFile) self.fileSaveAsItem = create_action(mainWindow, u'fileSaveAsItem', shortcuts=[QtGui.QKeySequence(u'Ctrl+Shift+S')], - category=unicode(UiStrings().File), + category=UiStrings().File, triggers=self.serviceManagerContents.saveFileAs) self.printServiceOrderItem = create_action(mainWindow, u'printServiceItem', shortcuts=[QtGui.QKeySequence(u'Ctrl+P')], - category=unicode(UiStrings().File), + category=UiStrings().File, triggers=self.serviceManagerContents.printServiceOrder) self.fileExitItem = create_action(mainWindow, u'fileExitItem', icon=u':/system/system_exit.png', shortcuts=[QtGui.QKeySequence(u'Alt+F4')], - category=unicode(UiStrings().File), - triggers=mainWindow.close) + category=UiStrings().File, triggers=mainWindow.close) action_list.add_category(unicode(UiStrings().Import), CategoryOrder.standardMenu) self.importThemeItem = create_action(mainWindow, - u'importThemeItem', category=unicode(UiStrings().Import)) + u'importThemeItem', category=UiStrings().Import) self.importLanguageItem = create_action(mainWindow, - u'importLanguageItem')#, category=unicode(UiStrings().Import)) + u'importLanguageItem')#, category=UiStrings().Import) action_list.add_category(unicode(UiStrings().Export), CategoryOrder.standardMenu) self.exportThemeItem = create_action(mainWindow, - u'exportThemeItem', category=unicode(UiStrings().Export)) + u'exportThemeItem', category=UiStrings().Export) self.exportLanguageItem = create_action(mainWindow, - u'exportLanguageItem')#, category=unicode(UiStrings().Export)) + u'exportLanguageItem')#, category=UiStrings().Export) action_list.add_category(unicode(UiStrings().View), CategoryOrder.standardMenu) self.viewMediaManagerItem = create_action(mainWindow, u'viewMediaManagerItem', shortcuts=[QtGui.QKeySequence(u'F8')], icon=u':/system/system_mediamanager.png', checked=self.mediaManagerDock.isVisible(), - category=unicode(UiStrings().View), - triggers=self.toggleMediaManager) + category=UiStrings().View, triggers=self.toggleMediaManager) self.viewThemeManagerItem = create_action(mainWindow, u'viewThemeManagerItem', shortcuts=[QtGui.QKeySequence(u'F10')], icon=u':/system/system_thememanager.png', checked=self.themeManagerDock.isVisible(), - category=unicode(UiStrings().View), - triggers=self.toggleThemeManager) + category=UiStrings().View, triggers=self.toggleThemeManager) self.viewServiceManagerItem = create_action(mainWindow, u'viewServiceManagerItem', shortcuts=[QtGui.QKeySequence(u'F9')], icon=u':/system/system_servicemanager.png', checked=self.serviceManagerDock.isVisible(), - category=unicode(UiStrings().View), - triggers=self.toggleServiceManager) + category=UiStrings().View, triggers=self.toggleServiceManager) self.viewPreviewPanel = create_action(mainWindow, u'viewPreviewPanel', shortcuts=[QtGui.QKeySequence(u'F11')], checked=previewVisible, - category=unicode(UiStrings().View), - triggers=self.setPreviewPanelVisibility) + category=UiStrings().View, triggers=self.setPreviewPanelVisibility) self.viewLivePanel = create_action(mainWindow, u'viewLivePanel', shortcuts=[QtGui.QKeySequence(u'F12')], checked=liveVisible, - category=unicode(UiStrings().View), - triggers=self.setLivePanelVisibility) + category=UiStrings().View, triggers=self.setLivePanelVisibility) self.lockPanel = create_action(mainWindow, u'lockPanel', checked=panelLocked, triggers=self.setLockPanel) action_list.add_category(unicode(UiStrings().ViewMode), CategoryOrder.standardMenu) 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', - checked=False, category=unicode(UiStrings().ViewMode)) + checked=False, category=UiStrings().ViewMode) 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.addAction(self.modeDefaultItem) self.modeGroup.addAction(self.modeSetupItem) @@ -265,23 +259,22 @@ class Ui_MainWindow(object): CategoryOrder.standardMenu) self.toolsAddToolItem = create_action(mainWindow, u'toolsAddToolItem', icon=u':/tools/tools_add.png', - category=unicode(UiStrings().Tools)) + category=UiStrings().Tools) self.toolsOpenDataFolder = create_action(mainWindow, u'toolsOpenDataFolder', icon=u':/general/general_open.png', - category=unicode(UiStrings().Tools)) + category=UiStrings().Tools) self.toolsFirstTimeWizard = create_action(mainWindow, u'toolsFirstTimeWizard', icon=u':/general/general_revert.png', - category=unicode(UiStrings().Tools)) + category=UiStrings().Tools) self.updateThemeImages = create_action(mainWindow, - u'updateThemeImages', category=unicode(UiStrings().Tools)) + u'updateThemeImages', category=UiStrings().Tools) action_list.add_category(unicode(UiStrings().Settings), CategoryOrder.standardMenu) self.settingsPluginListItem = create_action(mainWindow, u'settingsPluginListItem', icon=u':/system/settings_plugin_list.png', shortcuts=[QtGui.QKeySequence(u'Alt+F7')], - category=unicode(UiStrings().Settings), - triggers=self.onPluginItemClicked) + category=UiStrings().Settings, triggers=self.onPluginItemClicked) # i18n Language Items self.autoLanguageItem = create_action(mainWindow, u'autoLanguageItem', checked=LanguageManager.auto_language) @@ -298,40 +291,37 @@ class Ui_MainWindow(object): self.settingsShortcutsItem = create_action(mainWindow, u'settingsShortcutsItem', icon=u':/system/system_configure_shortcuts.png', - category=unicode(UiStrings().Settings)) + category=UiStrings().Settings) # Formatting Tags were also known as display tags. self.formattingTagItem = create_action(mainWindow, u'displayTagItem', icon=u':/system/tag_editor.png', - category=unicode(UiStrings().Settings)) + category=UiStrings().Settings) self.settingsConfigureItem = create_action(mainWindow, u'settingsConfigureItem', icon=u':/system/system_settings.png', - category=unicode(UiStrings().Settings)) + category=UiStrings().Settings) self.settingsImportItem = create_action(mainWindow, - u'settingsImportItem', category=unicode(UiStrings().Settings)) + u'settingsImportItem', category=UiStrings().Settings) self.settingsExportItem = create_action(mainWindow, - u'settingsExportItem', category=unicode(UiStrings().Settings)) + u'settingsExportItem', category=UiStrings().Settings) action_list.add_category(unicode(UiStrings().Help), CategoryOrder.standardMenu) self.aboutItem = create_action(mainWindow, u'aboutItem', icon=u':/system/system_about.png', shortcuts=[QtGui.QKeySequence(u'Ctrl+F1')], - category=unicode(UiStrings().Help), - triggers=self.onAboutItemClicked) + category=UiStrings().Help, triggers=self.onAboutItemClicked) if os.name == u'nt': self.localHelpFile = os.path.join( AppLocation.get_directory(AppLocation.AppDir), 'OpenLP.chm') self.offlineHelpItem = create_action(mainWindow, u'offlineHelpItem', icon=u':/system/system_help_contents.png', shortcuts=[QtGui.QKeySequence(u'F1')], - category=unicode(UiStrings().Help), - triggers=self.onOfflineHelpClicked) + category=UiStrings().Help, triggers=self.onOfflineHelpClicked) self.onlineHelpItem = create_action(mainWindow, u'onlineHelpItem', icon=u':/system/system_online_help.png', shortcuts=[QtGui.QKeySequence(u'Alt+F1')], - category=unicode(UiStrings().Help), - triggers=self.onOnlineHelpClicked) + category=UiStrings().Help, triggers=self.onOnlineHelpClicked) self.webSiteItem = create_action(mainWindow, - u'webSiteItem', category=unicode(UiStrings().Help)) + u'webSiteItem', category=UiStrings().Help) add_actions(self.fileImportMenu, (self.settingsImportItem, None, self.importThemeItem, self.importLanguageItem)) add_actions(self.fileExportMenu, (self.settingsExportItem, None, diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index 9c44f1693..3bb9da6a0 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -204,18 +204,21 @@ class MediaController(object): controller.media_info = MediaInfo() # Build a Media ToolBar controller.mediabar = OpenLPToolbar(controller) - controller.mediabar.addToolbarButton( - u'media_playback_play', u':/slides/media_playback_start.png', - translate('OpenLP.SlideController', 'Start playing media.'), - controller.sendToPlugins) - controller.mediabar.addToolbarButton( - u'media_playback_pause', u':/slides/media_playback_pause.png', - translate('OpenLP.SlideController', 'Pause playing media.'), - controller.sendToPlugins) - controller.mediabar.addToolbarButton( - u'media_playback_stop', u':/slides/media_playback_stop.png', - translate('OpenLP.SlideController', 'Stop playing media.'), - controller.sendToPlugins) + controller.mediabar.addToolbarButton(u'playbackPlay', + text=u'media_playback_play', + icon=u':/slides/media_playback_start.png', + tooltip=translate('OpenLP.SlideController', 'Start playing media.'), + triggers=controller.sendToPlugins) + controller.mediabar.addToolbarButton(u'playbackPause', + text=u'media_playback_pause', + icon=u':/slides/media_playback_pause.png', + tooltip=translate('OpenLP.SlideController', 'Pause playing media.'), + triggers=controller.sendToPlugins) + controller.mediabar.addToolbarButton(u'playbackStop', + 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. controller.seekSlider = QtGui.QSlider(QtCore.Qt.Horizontal) controller.seekSlider.setMaximum(1000) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 84083af13..03fad5dae 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -41,7 +41,7 @@ from openlp.core.lib import OpenLPToolbar, ServiceItem, Receiver, build_icon, \ ItemCapabilities, SettingsManager, translate, str_to_bool from openlp.core.lib.theme import ThemeLevel 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.printserviceform import PrintServiceForm from openlp.core.utils import AppLocation, delete_file, split_filename @@ -117,17 +117,18 @@ class ServiceManager(QtGui.QWidget): self.layout.setMargin(0) # Create the top toolbar self.toolbar = OpenLPToolbar(self) - self.toolbar.addToolbarButton( - UiStrings().NewService, u':/general/general_new.png', - UiStrings().CreateService, self.onNewServiceClicked) - self.toolbar.addToolbarButton( - UiStrings().OpenService, u':/general/general_open.png', - translate('OpenLP.ServiceManager', 'Load an existing service.'), - self.onLoadServiceClicked) - self.toolbar.addToolbarButton( - UiStrings().SaveService, u':/general/general_save.png', - translate('OpenLP.ServiceManager', 'Save this service.'), - self.saveFile) + self.toolbar.addToolbarButton(u'newService', + text=UiStrings().NewService, icon=u':/general/general_new.png', + tooltip=UiStrings().CreateService, + triggers=self.onNewServiceClicked) + self.toolbar.addToolbarButton(u'openService', + text=UiStrings().OpenService, icon=u':/general/general_open.png', + tooltip=translate('OpenLP.ServiceManager', + 'Load an existing service.'), triggers=self.onLoadServiceClicked) + self.toolbar.addToolbarButton(u'saveService', + text=UiStrings().SaveService, icon=u':/general/general_save.png', + tooltip=translate('OpenLP.ServiceManager', 'Save this service.'), + triggers=self.saveFile) self.toolbar.addSeparator() self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self) self.themeLabel.setMargin(3) @@ -168,99 +169,77 @@ class ServiceManager(QtGui.QWidget): self.layout.addWidget(self.serviceManagerList) # Add the bottom toolbar 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.add_category( unicode(UiStrings().Service), CategoryOrder.standardToolbar) - action_list.add_action( - self.serviceManagerList.moveTop, unicode(UiStrings().Service)) + self.serviceManagerList.moveTop = self.orderToolbar.addToolbarButton( + 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( - translate('OpenLP.ServiceManager', 'Move &up'), - u':/services/service_up.png', - translate('OpenLP.ServiceManager', + u'moveUp', text=translate('OpenLP.ServiceManager', 'Move &up'), + icon=u':/services/service_up.png', + tooltip=translate( 'OpenLP.ServiceManager', 'Move item up one position in the service.'), - self.onServiceUp, shortcuts=[QtCore.Qt.Key_PageUp]) - self.serviceManagerList.moveUp.setObjectName(u'moveUp') - action_list.add_action( - self.serviceManagerList.moveUp, unicode(UiStrings().Service)) + shortcuts=[QtCore.Qt.Key_PageUp], category=UiStrings().Service, + triggers=self.onServiceUp) self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', 'Move &down'), - u':/services/service_down.png', - translate('OpenLP.ServiceManager', + u'moveDown', text=translate('OpenLP.ServiceManager', 'Move &down'), + icon=u':/services/service_down.png', + tooltip=translate('OpenLP.ServiceManager', 'Move item down one position in the service.'), - self.onServiceDown, shortcuts=[QtCore.Qt.Key_PageDown]) - self.serviceManagerList.moveDown.setObjectName(u'moveDown') - action_list.add_action( - self.serviceManagerList.moveDown, unicode(UiStrings().Service)) + shortcuts=[QtCore.Qt.Key_PageDown], category=UiStrings().Service, + triggers=self.onServiceDown) self.serviceManagerList.moveBottom = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', 'Move to &bottom'), - u':/services/service_bottom.png', - translate('OpenLP.ServiceManager', - 'Move item to the end of the service.'), - self.onServiceEnd, shortcuts=[QtCore.Qt.Key_End]) - self.serviceManagerList.moveBottom.setObjectName(u'moveBottom') - action_list.add_action( - self.serviceManagerList.moveBottom, unicode(UiStrings().Service)) + u'moveBottom', + text=translate('OpenLP.ServiceManager', 'Move to &bottom'), + icon=u':/services/service_bottom.png', tooltip=translate( + 'OpenLP.ServiceManager', 'Move item to the end of the service.'), + shortcuts=[QtCore.Qt.Key_End], category=UiStrings().Service, + triggers=self.onServiceEnd) self.serviceManagerList.down = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', 'Move &down'), - None, - translate('OpenLP.ServiceManager', - 'Moves the selection down the window.'), - self.onMoveSelectionDown, shortcuts=[QtCore.Qt.Key_Down]) - self.serviceManagerList.down.setObjectName(u'down') + u'down', text=translate('OpenLP.ServiceManager', 'Move &down'), + tooltip=translate('OpenLP.ServiceManager', + 'Moves the selection down the window.'), visible=False, + shortcuts=[QtCore.Qt.Key_Down], triggers=self.onMoveSelectionDown) action_list.add_action(self.serviceManagerList.down) - self.serviceManagerList.down.setVisible(False) self.serviceManagerList.up = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', 'Move up'), - None, - translate('OpenLP.ServiceManager', - 'Moves the selection up the window.'), - self.onMoveSelectionUp, shortcuts=[QtCore.Qt.Key_Up]) - self.serviceManagerList.up.setObjectName(u'up') + u'up', text=translate('OpenLP.ServiceManager', 'Move up'), + tooltip=translate('OpenLP.ServiceManager', + 'Moves the selection up the window.'), visible=False, + shortcuts=[QtCore.Qt.Key_Up], triggers=self.onMoveSelectionUp) action_list.add_action(self.serviceManagerList.up) - self.serviceManagerList.up.setVisible(False) self.orderToolbar.addSeparator() self.serviceManagerList.delete = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', '&Delete From Service'), - u':/general/general_delete.png', - translate('OpenLP.ServiceManager', + u'delete', + text=translate('OpenLP.ServiceManager', '&Delete From Service'), + icon=u':/general/general_delete.png', + tooltip=translate('OpenLP.ServiceManager', 'Delete the selected item from the service.'), - self.onDeleteFromService) + triggers=self.onDeleteFromService) self.orderToolbar.addSeparator() self.serviceManagerList.expand = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', '&Expand all'), - u':/services/service_expand_all.png', - translate('OpenLP.ServiceManager', - 'Expand all the service items.'), - self.onExpandAll, shortcuts=[QtCore.Qt.Key_Plus]) - self.serviceManagerList.expand.setObjectName(u'expand') - action_list.add_action( - self.serviceManagerList.expand, unicode(UiStrings().Service)) + u'expand', text=translate('OpenLP.ServiceManager', '&Expand all'), + icon=u':/services/service_expand_all.png', tooltip=translate( + 'OpenLP.ServiceManager', 'Expand all the service items.'), + shortcuts=[QtCore.Qt.Key_Plus], category=UiStrings().Service, + triggers=self.onExpandAll) self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', '&Collapse all'), - u':/services/service_collapse_all.png', - translate('OpenLP.ServiceManager', - 'Collapse all the service items.'), - self.onCollapseAll, shortcuts=[QtCore.Qt.Key_Minus]) - self.serviceManagerList.collapse.setObjectName(u'collapse') - action_list.add_action( - self.serviceManagerList.collapse, unicode(UiStrings().Service)) + u'collapse', + text=translate('OpenLP.ServiceManager', '&Collapse all'), + icon=u':/services/service_collapse_all.png', tooltip=translate( + 'OpenLP.ServiceManager', 'Collapse all the service items.'), + shortcuts=[QtCore.Qt.Key_Minus], category=UiStrings().Service, + triggers=self.onCollapseAll) self.orderToolbar.addSeparator() self.serviceManagerList.makeLive = self.orderToolbar.addToolbarButton( - translate('OpenLP.ServiceManager', 'Go Live'), - u':/general/general_live.png', - translate('OpenLP.ServiceManager', - 'Send the selected item to Live.'), self.makeLive, - shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]) - self.serviceManagerList.makeLive.setObjectName(u'orderToolbar') - action_list.add_action( - self.serviceManagerList.makeLive, unicode(UiStrings().Service)) + u'makeLive', text=translate('OpenLP.ServiceManager', 'Go Live'), + icon=u':/general/general_live.png', tooltip=translate( + 'OpenLP.ServiceManager', 'Send the selected item to Live.'), + shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return], + category=UiStrings().Service, triggers=self.makeLive) self.layout.addWidget(self.orderToolbar) # Connect up our signals and slots QtCore.QObject.connect(self.themeComboBox, @@ -305,34 +284,32 @@ class ServiceManager(QtGui.QWidget): self.addToAction.setIcon(build_icon(u':/general/general_edit.png')) # build the context menu self.menu = QtGui.QMenu() - self.editAction = context_menu_action( - self.menu, u':/general/general_edit.png', - translate('OpenLP.ServiceManager', '&Edit Item'), self.remoteEdit) - self.maintainAction = context_menu_action( - self.menu, u':/general/general_edit.png', - translate('OpenLP.ServiceManager', '&Reorder Item'), - self.onServiceItemEditForm) - self.notesAction = context_menu_action( - self.menu, u':/services/service_notes.png', - translate('OpenLP.ServiceManager', '&Notes'), - self.onServiceItemNoteForm) - self.timeAction = context_menu_action( - self.menu, u':/media/media_time.png', - translate('OpenLP.ServiceManager', '&Start Time'), - self.onStartTimeForm) - self.deleteAction = context_menu_action( - self.menu, u':/general/general_delete.png', - translate('OpenLP.ServiceManager', '&Delete From Service'), - self.onDeleteFromService) - context_menu_separator(self.menu) - self.previewAction = context_menu_action( - self.menu, u':/general/general_preview.png', - translate('OpenLP.ServiceManager', 'Show &Preview'), - self.makePreview) - self.liveAction = context_menu_action( - self.menu, u':/general/general_live.png', - translate('OpenLP.ServiceManager', 'Show &Live'), self.makeLive) - context_menu_separator(self.menu) + self.editAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', '&Edit Item'), + icon=u':/general/general_edit.png', triggers=self.remoteEdit) + self.maintainAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', '&Reorder Item'), + icon=u':/general/general_edit.png', + triggers=self.onServiceItemEditForm) + self.notesAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', '&Notes'), + icon=u':/services/service_notes.png', + triggers=self.onServiceItemNoteForm) + self.timeAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', '&Start Time'), + icon=u':/media/media_time.png', triggers=self.onStartTimeForm) + self.deleteAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', '&Delete From Service'), + icon=u':/general/general_delete.png', + triggers=self.onDeleteFromService) + self.menu.addSeparator() + self.previewAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', 'Show &Preview'), + icon=u':/general/general_preview.png', triggers=self.makePreview) + self.liveAction = create_widget_action(self.menu, + text=translate('OpenLP.ServiceManager', 'Show &Live'), + icon=u':/general/general_live.png', triggers=self.makeLive) + self.menu.addSeparator() self.themeMenu = QtGui.QMenu( translate('OpenLP.ServiceManager', '&Change Item Theme')) self.menu.addMenu(self.themeMenu) @@ -1450,19 +1427,16 @@ class ServiceManager(QtGui.QWidget): themeGroup.setObjectName(u'themeGroup') # Create a "Default" theme, which allows the user to reset the item's # theme to the service theme or global theme. - defaultTheme = context_menu_action(self.themeMenu, None, - UiStrings().Default, self.onThemeChangeAction) - defaultTheme.setCheckable(True) + defaultTheme = create_widget_action(self.themeMenu, + text=UiStrings().Default, checked=False, + triggers=self.onThemeChangeAction) self.themeMenu.setDefaultAction(defaultTheme) themeGroup.addAction(defaultTheme) - context_menu_separator(self.themeMenu) + self.themeMenu.addSeparator() for theme in theme_list: self.themeComboBox.addItem(theme) - themeAction = context_menu_action(self.themeMenu, None, theme, - self.onThemeChangeAction) - themeAction.setObjectName(theme) - themeAction.setCheckable(True) - themeGroup.addAction(themeAction) + themeGroup.addAction(create_widget_action(self.themeMenu, theme, + text=theme, checked=False, triggers=self.onThemeChangeAction)) find_and_set_in_combo_box(self.themeComboBox, self.service_theme) self.mainwindow.renderer.set_service_theme(self.service_theme) self.regenerateServiceItems() diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 182007acb..c4c3e5adb 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -168,20 +168,18 @@ class SlideController(Controller): sizeToolbarPolicy.setHeightForWidth( self.toolbar.sizePolicy().hasHeightForWidth()) self.toolbar.setSizePolicy(sizeToolbarPolicy) - self.previousItem = self.toolbar.addToolbarButton( - u'Previous Slide', - u':/slides/slide_previous.png', - translate('OpenLP.SlideController', 'Move to previous.'), - self.onSlideSelectedPrevious, + self.previousItem = self.toolbar.addToolbarButton(u'previousItem', + text=u'Previous Slide', icon=u':/slides/slide_previous.png', + tooltip=translate('OpenLP.SlideController', 'Move to previous.'), shortcuts=[QtCore.Qt.Key_Up, QtCore.Qt.Key_PageUp], - context=QtCore.Qt.WidgetWithChildrenShortcut) - self.nextItem = self.toolbar.addToolbarButton( - u'Next Slide', - u':/slides/slide_next.png', - translate('OpenLP.SlideController', 'Move to next.'), - self.onSlideSelectedNext, + context=QtCore.Qt.WidgetWithChildrenShortcut, + triggers=self.onSlideSelectedPrevious) + self.nextItem = self.toolbar.addToolbarButton(u'nextItem', + text=u'Next Slide', icon=u':/slides/slide_next.png', + tooltip=translate('OpenLP.SlideController', 'Move to next.'), 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') if self.isLive: # Hide Menu @@ -195,20 +193,17 @@ class SlideController(Controller): text=translate('OpenLP.SlideController', 'Blank Screen'), icon=u':/slides/slide_blank.png', checked=False, shortcuts=[QtCore.Qt.Key_Period], - category=unicode(UiStrings().LiveToolbar), - triggers=self.onBlankDisplay) + category=UiStrings().LiveToolbar, triggers=self.onBlankDisplay) self.themeScreen = create_action(self.hideMenu, u'themeScreen', text=translate('OpenLP.SlideController', 'Blank to Theme'), icon=u':/slides/slide_theme.png', checked=False, shortcuts=[QtGui.QKeySequence(u'T')], - category=unicode(UiStrings().LiveToolbar), - triggers=self.onThemeDisplay) + category=UiStrings().LiveToolbar, triggers=self.onThemeDisplay) self.desktopScreen = create_action(self.hideMenu, u'desktopScreen', text=translate('OpenLP.SlideController', 'Show Desktop'), icon=u':/slides/slide_desktop.png', checked=False, shortcuts=[QtGui.QKeySequence(u'D')], - category=unicode(UiStrings().LiveToolbar), - triggers=self.onHideDisplay) + category=UiStrings().LiveToolbar, triggers=self.onHideDisplay) self.hideMenu.setDefaultAction(self.blankScreen) self.hideMenu.menu().addAction(self.blankScreen) self.hideMenu.menu().addAction(self.themeScreen) @@ -227,12 +222,12 @@ class SlideController(Controller): self.playSlidesLoop = create_action(self.playSlidesMenu, u'playSlidesLoop', text=UiStrings().PlaySlidesInLoop, icon=u':/media/media_time.png', checked=False, shortcuts=[], - category=unicode(UiStrings().LiveToolbar), + category=UiStrings().LiveToolbar, triggers=self.onPlaySlidesLoop) self.playSlidesOnce = create_action(self.playSlidesMenu, u'playSlidesOnce', text=UiStrings().PlaySlidesToEnd, icon=u':/media/media_time.png', checked=False, shortcuts=[], - category=unicode(UiStrings().LiveToolbar), + category=UiStrings().LiveToolbar, triggers=self.onPlaySlidesOnce) if QtCore.QSettings().value(self.parent().generalSettingsSection + u'/enable slide loop', QtCore.QVariant(True)).toBool(): @@ -249,23 +244,22 @@ class SlideController(Controller): self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds.')) else: - self.toolbar.addToolbarButton( + self.toolbar.addToolbarButton(u'goLive', # Does not need translating - control string. - u'Go Live', u':/general/general_live.png', - translate('OpenLP.SlideController', 'Move to live.'), - self.onGoLive) - self.toolbar.addToolbarButton( + text=u'Go Live', icon=u':/general/general_live.png', + tooltip=translate('OpenLP.SlideController', 'Move to live.'), + triggers=self.onGoLive) + self.toolbar.addToolbarButton(u'addToService', # Does not need translating - control string. - u'Add to Service', u':/general/general_add.png', - translate('OpenLP.SlideController', 'Add to Service.'), - self.onPreviewAddToService) + text=u'Add to Service', icon=u':/general/general_add.png', + tooltip=translate('OpenLP.SlideController', 'Add to Service.'), + triggers=self.onPreviewAddToService) self.toolbar.addToolbarSeparator(u'Close Separator') - self.toolbar.addToolbarButton( + self.toolbar.addToolbarButton(u'editSong', # Does not need translating - control string. - u'Edit Song', u':/general/general_edit.png', - translate('OpenLP.SlideController', - 'Edit and reload song preview.'), - self.onEditSong) + text=u'Edit Song', icon=u':/general/general_edit.png', + tooltip=translate('OpenLP.SlideController', + 'Edit and reload song preview.'), triggers=self.onEditSong) self.controllerLayout.addWidget(self.toolbar) # Build the Media Toolbar self.mediaController.add_controller_items(self, self.controllerLayout) @@ -279,11 +273,11 @@ class SlideController(Controller): translate('OpenLP.SlideController', 'Go To'), self.toolbar)) self.toolbar.makeWidgetsInvisible([u'Song Menu']) # Stuff for items with background audio. - self.audioPauseItem = self.toolbar.addToolbarButton( - u'Pause Audio', u':/slides/media_playback_pause.png', - translate('OpenLP.SlideController', 'Pause audio.'), - self.onAudioPauseClicked, True) - self.audioPauseItem.setVisible(False) + self.audioPauseItem = self.toolbar.addToolbarButton(u'audioPause', + text=u'Pause Audio', icon=u':/slides/media_playback_pause.png', + tooltip=translate('OpenLP.SlideController', 'Pause audio.'), + checked=False, visible=False, + triggers=self.onAudioPauseClicked) # Screen preview area self.previewFrame = QtGui.QFrame(self.splitter) 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'), shortcuts=[QtGui.QKeySequence(s[u'key'])], context=QtCore.Qt.WidgetWithChildrenShortcut, - category=unicode(UiStrings().LiveToolbar) \ + category=UiStrings().LiveToolbar \ if s.get(u'configurable') else None, triggers=self._slideShortcutActivated) for s in shortcuts]) QtCore.QObject.connect( @@ -492,20 +486,17 @@ class SlideController(Controller): text=translate('OpenLP.SlideController', 'Previous Service'), shortcuts=[QtCore.Qt.Key_Left], context=QtCore.Qt.WidgetWithChildrenShortcut, - category=unicode(UiStrings().LiveToolbar), - triggers=self.servicePrevious) + category=UiStrings().LiveToolbar, triggers=self.servicePrevious) self.nextService = create_action(parent, 'nextService', text=translate('OpenLP.SlideController', 'Next Service'), shortcuts=[QtCore.Qt.Key_Right], context=QtCore.Qt.WidgetWithChildrenShortcut, - category=unicode(UiStrings().LiveToolbar), - triggers=self.serviceNext) + category=UiStrings().LiveToolbar, triggers=self.serviceNext) self.escapeItem = create_action(parent, 'escapeItem', text=translate('OpenLP.SlideController', 'Escape Item'), shortcuts=[QtCore.Qt.Key_Escape], context=QtCore.Qt.WidgetWithChildrenShortcut, - category=unicode(UiStrings().LiveToolbar), - triggers=self.liveEscape) + category=UiStrings().LiveToolbar, triggers=self.liveEscape) def liveEscape(self): self.display.setVisible(False) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 8b2524845..62d1a7d94 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -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, \ BackgroundGradientType 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.ui import FileRenameForm, ThemeForm 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.setObjectName(u'layout') 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.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.themeWidget = QtGui.QWidgetAction(self.toolbar) self.themeWidget.setObjectName(u'themeWidget') @@ -105,29 +105,26 @@ class ThemeManager(QtGui.QWidget): self.contextMenu) # build the context menu self.menu = QtGui.QMenu() - self.editAction = context_menu_action( - self.menu, u':/themes/theme_edit.png', - translate('OpenLP.ThemeManager', '&Edit Theme'), self.onEditTheme) - self.copyAction = context_menu_action( - self.menu, u':/themes/theme_edit.png', - translate('OpenLP.ThemeManager', '&Copy Theme'), self.onCopyTheme) - self.renameAction = context_menu_action( - self.menu, u':/themes/theme_edit.png', - translate('OpenLP.ThemeManager', '&Rename Theme'), - self.onRenameTheme) - self.deleteAction = context_menu_action( - self.menu, u':/general/general_delete.png', - translate('OpenLP.ThemeManager', '&Delete Theme'), - self.onDeleteTheme) - context_menu_separator(self.menu) - self.globalAction = context_menu_action( - self.menu, u':/general/general_export.png', - translate('OpenLP.ThemeManager', 'Set As &Global Default'), - self.changeGlobalFromScreen) - self.exportAction = context_menu_action( - self.menu, u':/general/general_export.png', - translate('OpenLP.ThemeManager', '&Export Theme'), - self.onExportTheme) + self.editAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', '&Edit Theme'), + icon=u':/themes/theme_edit.png', triggers=self.onEditTheme) + self.copyAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', '&Copy Theme'), + icon=u':/themes/theme_edit.png', triggers=self.onCopyTheme) + self.renameAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', '&Rename Theme'), + icon=u':/themes/theme_edit.png', triggers=self.onRenameTheme) + self.deleteAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', '&Delete Theme'), + icon=u':/general/general_delete.png', triggers=self.onDeleteTheme) + self.menu.addSeparator() + self.globalAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', 'Set As &Global Default'), + icon=u':/general/general_export.png', + triggers=self.changeGlobalFromScreen) + self.exportAction = create_widget_action(self.menu, + text=translate('OpenLP.ThemeManager', '&Export Theme'), + icon=u':/general/general_export.png', triggers=self.onExportTheme) # Signals QtCore.QObject.connect(self.themeListWidget, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 92779b991..c7b6829bb 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -89,11 +89,11 @@ class ImageMediaItem(MediaManagerItem): self.listView.addAction(self.replaceAction) def addEndHeaderBar(self): - self.replaceAction = self.addToolbarButton(u'', u'', - u':/slides/slide_blank.png', self.onReplaceClick, False) - self.resetAction = self.addToolbarButton(u'', u'', - u':/system/system_close.png', self.onResetClick, False) - self.resetAction.setVisible(False) + self.replaceAction = self.addToolbarButton(u'replaceAction', + icon=u':/slides/slide_blank.png', triggers=self.onReplaceClick) + self.resetAction = self.addToolbarButton(u'resetAction', + icon=u':/system/system_close.png', visible=False, + triggers=self.onResetClick) def onDeleteClick(self): """ diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 111a86209..6199903de 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -118,11 +118,11 @@ class MediaMediaItem(MediaManagerItem): def addEndHeaderBar(self): # Replace backgrounds do not work at present so remove functionality. - self.replaceAction = self.addToolbarButton(u'', u'', - u':/slides/slide_blank.png', self.onReplaceClick, False) - self.resetAction = self.addToolbarButton(u'', u'', - u':/system/system_close.png', self.onResetClick, False) - self.resetAction.setVisible(False) + self.replaceAction = self.addToolbarButton(u'replaceAction', + icon=u':/slides/slide_blank.png', triggers=self.onReplaceClick) + self.resetAction = self.addToolbarButton(u'resetAction', + icon=u':/system/system_close.png', visible=False, + triggers=self.onResetClick) self.mediaWidget = QtGui.QWidget(self) self.mediaWidget.setObjectName(u'mediaWidget') self.displayLayout = QtGui.QFormLayout(self.mediaWidget) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index ab95d794f..b01acdb89 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -36,8 +36,7 @@ from sqlalchemy.sql import or_ from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ translate, check_item_selected, PluginStatus, create_separated_list -from openlp.core.lib.ui import UiStrings, context_menu_action, \ - context_menu_separator +from openlp.core.lib.ui import UiStrings, create_action, create_widget_action from openlp.core.utils import AppLocation from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm, SongExportForm @@ -100,8 +99,9 @@ class SongMediaItem(MediaManagerItem): def addEndHeaderBar(self): self.addToolbarSeparator() ## Song Maintenance Button ## - self.maintenanceAction = self.addToolbarButton(u'', u'', - ':/songs/song_maintenance.png', self.onSongMaintenanceClick) + self.maintenanceAction = self.addToolbarButton(u'maintenanceAction', + icon=':/songs/song_maintenance.png', + triggers=self.onSongMaintenanceClick) self.addSearchToToolBar() # Signals and slots QtCore.QObject.connect(Receiver.get_receiver(), @@ -121,11 +121,10 @@ class SongMediaItem(MediaManagerItem): self.onSearchTextButtonClick) def addCustomContextActions(self): - context_menu_separator(self.listView) - context_menu_action( - self.listView, u':/general/general_clone.png', - translate('OpenLP.MediaManagerItem', - '&Clone'), self.onCloneClick) + create_widget_action(self.listView, separator=True) + create_widget_action(self.listView, + text=translate('OpenLP.MediaManagerItem', '&Clone'), + icon=u':/general/general_clone.png', triggers=self.onCloneClick) def onFocus(self): self.searchTextEdit.setFocus()