forked from openlp/openlp
Add Utilitys class for plugins
bzr-revno: 252
This commit is contained in:
parent
e1f5e5723a
commit
5d920e8fc6
@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with
|
||||
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
"""
|
||||
|
||||
from pluginutils import PluginUtils
|
||||
from pluginconfig import PluginConfig
|
||||
from plugin import Plugin
|
||||
from settingstab import SettingsTab
|
||||
@ -25,5 +25,5 @@ from mediamanageritem import MediaManagerItem
|
||||
from event import Event
|
||||
from xmlrootclass import XmlRootClass
|
||||
|
||||
__all__ = ['PluginConfig', 'Plugin', 'SettingsTab', 'MediaManagerItem', 'Event',
|
||||
__all__ = ['PluginConfig', 'Plugin', 'PluginUtils', 'SettingsTab', 'MediaManagerItem', 'Event',
|
||||
'XmlRootClass']
|
||||
|
@ -21,6 +21,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
import logging
|
||||
|
||||
from openlp.core.lib import PluginConfig
|
||||
from openlp.core.lib import PluginUtils
|
||||
|
||||
class Plugin(object):
|
||||
"""
|
||||
@ -85,6 +86,7 @@ class Plugin(object):
|
||||
self.version = version
|
||||
self.icon = None
|
||||
self.config = PluginConfig(self.name)
|
||||
self.pluginutils = PluginUtils()
|
||||
self.weight = 0
|
||||
# Set up logging
|
||||
self.log = logging.getLogger(self.name)
|
||||
|
54
openlp/core/lib/pluginutils.py
Normal file
54
openlp/core/lib/pluginutils.py
Normal file
@ -0,0 +1,54 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||
"""
|
||||
OpenLP - Open Source Lyrics Projection
|
||||
Copyright (c) 2008 Raoul Snyman
|
||||
Portions copyright (c) 2008 Martin Thompson, Tim Bentley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with
|
||||
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
"""
|
||||
|
||||
import types
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
class PluginUtils(object):
|
||||
def __init__(self):
|
||||
"""
|
||||
IClass for plugin helpers so the Plugin class is just a simple interface
|
||||
"""
|
||||
pass
|
||||
|
||||
def add_separator(self, base):
|
||||
action = QtGui.QAction("", base)
|
||||
action.setSeparator(True)
|
||||
return action
|
||||
|
||||
def add_to_context_menu(self, base, icon, text, slot):
|
||||
"""
|
||||
Utility method to help build context menus for plugins
|
||||
"""
|
||||
if type(icon) is QtGui.QIcon:
|
||||
ButtonIcon = icon
|
||||
elif type(icon) is types.StringType:
|
||||
ButtonIcon = QtGui.QIcon()
|
||||
if icon.startswith(':/'):
|
||||
ButtonIcon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal,
|
||||
QtGui.QIcon.Off)
|
||||
else:
|
||||
ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)),
|
||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
|
||||
action = QtGui.QAction(text, base)
|
||||
action .setIcon(ButtonIcon)
|
||||
QtCore.QObject.connect(action, QtCore.SIGNAL("triggered()"), slot)
|
||||
return action
|
Loading…
Reference in New Issue
Block a user