staticmethod for adding/removing actions

This commit is contained in:
Andreas Preikschat 2011-03-31 10:43:19 +02:00
parent bba2f2c604
commit 4ca738e9b3
8 changed files with 44 additions and 45 deletions

View File

@ -31,7 +31,7 @@ import logging
from PyQt4 import QtCore, QtGui
from openlp.core.lib import build_icon, Receiver, translate
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
log = logging.getLogger(__name__)
@ -251,7 +251,7 @@ def base_action(parent, name, category=None):
action = QtGui.QAction(parent)
action.setObjectName(name)
if category is not None:
actionList.add_action(action, category)
ActionList.add_action(action, category)
return action
def checkable_action(parent, name, checked=None, category=None):

View File

@ -40,7 +40,7 @@ from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
from openlp.core.ui.printserviceform import PrintServiceForm
from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \
split_filename
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
class ServiceManagerList(QtGui.QTreeWidget):
"""
@ -316,15 +316,15 @@ class ServiceManager(QtGui.QWidget):
self.configUpdated()
def setServiceHotkeys(self):
actionList.add_action(self.serviceManagerList.moveDown, u'Service')
actionList.add_action(self.serviceManagerList.moveUp, u'Service')
actionList.add_action(self.serviceManagerList.moveTop, u'Service')
actionList.add_action(self.serviceManagerList.moveBottom, u'Service')
actionList.add_action(self.serviceManagerList.makeLive, u'Service')
actionList.add_action(self.serviceManagerList.up, u'Service')
actionList.add_action(self.serviceManagerList.down, u'Service')
actionList.add_action(self.serviceManagerList.expand, u'Service')
actionList.add_action(self.serviceManagerList.collapse, u'Service')
ActionList.add_action(self.serviceManagerList.moveDown, u'Service')
ActionList.add_action(self.serviceManagerList.moveUp, u'Service')
ActionList.add_action(self.serviceManagerList.moveTop, u'Service')
ActionList.add_action(self.serviceManagerList.moveBottom, u'Service')
ActionList.add_action(self.serviceManagerList.makeLive, u'Service')
ActionList.add_action(self.serviceManagerList.up, u'Service')
ActionList.add_action(self.serviceManagerList.down, u'Service')
ActionList.add_action(self.serviceManagerList.expand, u'Service')
ActionList.add_action(self.serviceManagerList.collapse, u'Service')
def setModified(self, modified=True):

View File

@ -30,7 +30,7 @@ import re
from PyQt4 import QtCore, QtGui
from openlp.core.utils import translate
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
from shortcutlistdialog import Ui_ShortcutListDialog
REMOVE_AMPERSAND = re.compile(r'&{1}')
@ -96,7 +96,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog):
"""
self.assingedShortcuts = []
self.treeWidget.clear()
for category in actionList.categories:
for category in ActionList.categories:
item = QtGui.QTreeWidgetItem([category.name])
for action in category.actions:
self.assingedShortcuts.extend(action.shortcuts())
@ -172,7 +172,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog):
"""
settings = QtCore.QSettings()
settings.beginGroup(u'shortcuts')
for category in actionList.categories:
for category in ActionList.categories:
for action in category.actions:
settings.setValue(
action.objectName(), QtCore.QVariant(action.shortcuts()))

View File

@ -34,7 +34,7 @@ from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \
ItemCapabilities, translate
from openlp.core.lib.ui import icon_action, UiStrings, shortcut_action
from openlp.core.ui import HideMode, MainDisplay
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
log = logging.getLogger(__name__)
@ -364,18 +364,18 @@ class SlideController(QtGui.QWidget):
def setPreviewHotkeys(self, parent=None):
self.previousItem.setShortcuts([QtCore.Qt.Key_Up, 0])
actionList.add_action(self.previousItem, u'Preview Toolbar')
ActionList.add_action(self.previousItem, u'Preview Toolbar')
self.nextItem.setShortcuts([QtCore.Qt.Key_Down, 0])
actionList.add_action(self.nextItem, u'Preview Toolbar')
ActionList.add_action(self.nextItem, u'Preview Toolbar')
def setLiveHotkeys(self, parent=None):
self.previousItem.setShortcuts([QtCore.Qt.Key_Up, QtCore.Qt.Key_PageUp])
self.previousItem.setShortcutContext(
QtCore.Qt.WidgetWithChildrenShortcut)
actionList.add_action(self.previousItem, u'Live Toolbar')
ActionList.add_action(self.previousItem, u'Live Toolbar')
self.nextItem.setShortcuts([QtCore.Qt.Key_Down, QtCore.Qt.Key_PageDown])
self.nextItem.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
actionList.add_action(self.nextItem, u'Live Toolbar')
ActionList.add_action(self.nextItem, u'Live Toolbar')
self.previousService = shortcut_action(parent,
translate('OpenLP.SlideController', 'Previous Service'),
[QtCore.Qt.Key_Left, 0], self.servicePrevious, u'Live Toolbar')

View File

@ -183,17 +183,17 @@ class ActionList(object):
has a weight by which it is sorted when iterating through the list of
actions or categories.
"""
def __init__(self):
self.categories = CategoryList()
categories = CategoryList()
def add_action(self, action, category, weight=None):
if category not in self.categories:
self.categories.append(category)
@staticmethod
def add_action(action, category, weight=None):
if category not in ActionList.categories:
ActionList.categories.append(category)
action.defaultShortcuts = action.shortcuts()
if weight is None:
self.categories[category].actions.append(action)
ActionList.categories[category].actions.append(action)
else:
self.categories[category].actions.add(action, weight)
ActionList.categories[category].actions.add(action, weight)
# Load the shortcut from the config.
settings = QtCore.QSettings()
settings.beginGroup(u'shortcuts')
@ -203,9 +203,8 @@ class ActionList(object):
[QtGui.QKeySequence(shortcut) for shortcut in shortcuts])
settings.endGroup()
def remove_action(self, action, category):
if category not in self.categories:
@staticmethod
def remove_action(action, category):
if category not in ActionList.categories:
return
self.categories[category].actions.remove(action)
actionList = ActionList()
ActionList.categories[category].actions.remove(action)

View File

@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import Plugin, StringContent, build_icon, translate
from openlp.core.lib.db import Manager
from openlp.core.lib.ui import icon_action
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
from openlp.plugins.alerts.lib import AlertsManager, AlertsTab
from openlp.plugins.alerts.lib.db import init_schema
from openlp.plugins.alerts.forms import AlertForm
@ -75,7 +75,7 @@ class AlertsPlugin(Plugin):
log.info(u'Alerts Initialising')
Plugin.initialise(self)
self.toolsAlertItem.setVisible(True)
actionList.add_action(self.toolsAlertItem, u'Tools')
ActionList.add_action(self.toolsAlertItem, u'Tools')
self.liveController.alertTab = self.settings_tab
def finalise(self):
@ -86,7 +86,7 @@ class AlertsPlugin(Plugin):
self.manager.finalise()
Plugin.finalise(self)
self.toolsAlertItem.setVisible(False)
actionList.remove_action(self.toolsAlertItem, u'Tools')
ActionList.remove_action(self.toolsAlertItem, u'Tools')
def toggleAlertsState(self):
self.alertsActive = not self.alertsActive

View File

@ -30,7 +30,7 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import Plugin, StringContent, build_icon, translate
from openlp.core.lib.ui import base_action
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem
log = logging.getLogger(__name__)
@ -52,9 +52,9 @@ class BiblePlugin(Plugin):
self.manager = BibleManager(self)
Plugin.initialise(self)
self.importBibleItem.setVisible(True)
actionList.add_action(self.importBibleItem, u'Import')
ActionList.add_action(self.importBibleItem, u'Import')
# Do not add the action to the list yet.
#actionList.add_action(self.exportBibleItem, u'Export')
#ActionList.add_action(self.exportBibleItem, u'Export')
# Set to invisible until we can export bibles
self.exportBibleItem.setVisible(False)

View File

@ -34,7 +34,7 @@ from openlp.core.lib import Plugin, StringContent, build_icon, translate, \
Receiver
from openlp.core.lib.db import Manager
from openlp.core.lib.ui import UiStrings, base_action, icon_action
from openlp.core.utils.actions import actionList
from openlp.core.utils.actions import ActionList
from openlp.plugins.songs.lib import clean_song, SongMediaItem, SongsTab
from openlp.plugins.songs.lib.db import init_schema, Song
from openlp.plugins.songs.lib.importer import SongFormat
@ -66,9 +66,9 @@ class SongsPlugin(Plugin):
log.info(u'Songs Initialising')
Plugin.initialise(self)
self.toolsReindexItem.setVisible(True)
actionList.add_action(self.SongImportItem, u'Import')
actionList.add_action(self.SongExportItem, u'Export')
actionList.add_action(self.toolsReindexItem, u'Tools')
ActionList.add_action(self.SongImportItem, u'Import')
ActionList.add_action(self.SongExportItem, u'Export')
ActionList.add_action(self.toolsReindexItem, u'Tools')
self.mediaItem.displayResultsSong(
self.manager.get_all_objects(Song, order_by_ref=Song.search_title))
@ -258,7 +258,7 @@ class SongsPlugin(Plugin):
log.info(u'Songs Finalising')
self.manager.finalise()
self.toolsReindexItem.setVisible(False)
actionList.remove_action(self.SongImportItem, u'Import')
actionList.remove_action(self.SongExportItem, u'Export')
actionList.remove_action(self.toolsReindexItem, u'Tools')
ActionList.remove_action(self.SongImportItem, u'Import')
ActionList.remove_action(self.SongExportItem, u'Export')
ActionList.remove_action(self.toolsReindexItem, u'Tools')
Plugin.finalise(self)