diff --git a/openlp/core/ui/plugindialoglistform.py b/openlp/core/ui/plugindialoglistform.py
index 8062cb86f..2a5773cb0 100644
--- a/openlp/core/ui/plugindialoglistform.py
+++ b/openlp/core/ui/plugindialoglistform.py
@@ -11,6 +11,20 @@ import logging
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, PluginStatus, buildIcon
+class PluginCombo(QtGui.QComboBox):
+ """
+ Customised version of QTableWidget which can respond to keyboard
+ events.
+ """
+ def __init__(self, parent=None, plugin=None):
+ QtGui.QComboBox.__init__(self, parent)
+ self.parent = parent
+ self.plugin = plugin
+
+ def enterEvent(self, event):
+ self.parent.activePlugin = self.plugin
+ event.ignore()
+
class PluginForm(QtGui.QDialog):
global log
log = logging.getLogger(u'PluginForm')
@@ -18,6 +32,7 @@ class PluginForm(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.parent = parent
+ self.activePlugin = None
self.setupUi(self)
log.debug(u'Defined')
@@ -57,7 +72,6 @@ class PluginForm(QtGui.QDialog):
self.AboutTextLabel.setWordWrap(True)
self.AboutTextLabel.setObjectName("AboutTextLabel")
-
self.retranslateUi(PluginForm)
QtCore.QObject.connect(self.ButtonBox,
QtCore.SIGNAL(u'accepted()'), PluginForm.close)
@@ -92,13 +106,13 @@ class PluginForm(QtGui.QDialog):
self.PluginViewList.setItem(row, 0, item1)
self.PluginViewList.setItem(row, 1, item2)
if plugin.can_be_disabled():
- combo = QtGui.QComboBox()
+ combo = PluginCombo(self, plugin)
self.PluginViewList.setCellWidget(row, 2, combo)
combo.addItem(translate(u'PluginForm', u'Active'))
combo.addItem(translate(u'PluginForm', u'Inactive'))
- QtCore.QObject.connect(combo,
- QtCore.SIGNAL(u'activated(int)'), self.statusComboChanged)
combo.setCurrentIndex(int(plugin.status))
+ QtCore.QObject.connect(combo,
+ QtCore.SIGNAL(u'currentIndexChanged(int)'), self.statusComboChanged)
self.PluginViewList.setRowHeight(row, 25)
else:
item3 = QtGui.QTableWidgetItem(
@@ -117,10 +131,9 @@ class PluginForm(QtGui.QDialog):
self.AboutTextLabel.setText(translate(u'PluginList', text))
def statusComboChanged(self, status):
- row = self.PluginViewList.currentRow()
- log.debug(u'Combo status changed %s for row %s' %(status, row))
- self.parent.plugin_manager.plugins[row].toggle_status(status)
+ log.debug(u'Combo status changed %s for plugin %s' %(status, self.activePlugin.name))
+ self.activePlugin.toggle_status(status)
if status == PluginStatus.Active:
- self.parent.plugin_manager.plugins[row].initialise()
+ self.activePlugin.initialise()
else:
- self.parent.plugin_manager.plugins[row].finalise()
+ self.activePlugin.finalise()
diff --git a/openlp/plugins/audit/auditplugin.py b/openlp/plugins/audit/auditplugin.py
index 162267d59..97fdb279d 100644
--- a/openlp/plugins/audit/auditplugin.py
+++ b/openlp/plugins/audit/auditplugin.py
@@ -43,7 +43,7 @@ class AuditPlugin(Plugin):
self.weight = -4
# Create the plugin icon
self.icon = buildIcon(u':/media/media_image.png')
- self.auditfile = None
+ self.auditmanager = None
def can_be_disabled(self):
return True
@@ -115,9 +115,9 @@ class AuditPlugin(Plugin):
QtCore.QObject.connect(self.AuditReport,
QtCore.SIGNAL(u'triggered()'), self.onAuditReport)
- def get_settings_tab(self):
- self.AuditTab = AuditTab()
- return self.AuditTab
+# def get_settings_tab(self):
+# self.AuditTab = AuditTab()
+# return self.AuditTab
def initialise(self):
log.info(u'Plugin Initialising')
@@ -128,9 +128,15 @@ class AuditPlugin(Plugin):
self.auditActive = str_to_bool(
self.config.get_config(u'audit active', False))
self.AuditStatus.setChecked(self.auditActive)
- self.auditmanager = AuditManager(self.config)
+ if self.auditmanager is None:
+ self.auditmanager = AuditManager(self.config)
self.auditdeleteform = AuditDeleteForm(self.auditmanager)
self.auditdetailform = AuditDetailForm(self.auditmanager)
+ self.AuditMenu.setVisible(True)
+
+ def finalise(self):
+ log.info(u'Plugin Finalise')
+ self.AuditMenu.setVisible(True)
def toggleAuditState(self):
self.auditActive = not self.auditActive
diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py
index 2fc0439e8..5a6acf214 100644
--- a/openlp/plugins/remotes/lib/remotetab.py
+++ b/openlp/plugins/remotes/lib/remotetab.py
@@ -44,30 +44,17 @@ class RemoteTab(SettingsTab):
self.RemotePortSpinBox.setObjectName(u'RemotePortSpinBox')
self.RemotePortSpinBox.setMaximum(32767)
self.RemoteModeLayout.addWidget(self.RemotePortSpinBox)
- self.RemoteActive = QtGui.QCheckBox(self.RemoteModeGroupBox)
- self.RemoteActive.setObjectName(u'RemotePortSpinBox')
- self.RemoteModeLayout.addWidget(self.RemoteActive)
- self.WarningLabel = QtGui.QLabel(self.RemoteModeGroupBox)
- self.WarningLabel.setObjectName(u'WarningLabel')
- self.RemoteModeLayout.addWidget(self.WarningLabel)
self.RemoteLayout.setWidget(
0, QtGui.QFormLayout.LabelRole, self.RemoteModeGroupBox)
def retranslateUi(self):
self.RemoteModeGroupBox.setTitle(
translate(u'RemoteTab', u'Remotes Receiver Port'))
- self.RemoteActive.setText(translate(u'RemoteTab', 'Remote available:'))
- self.WarningLabel.setText(translate(u'RemoteTab',
- u'A restart is needed for this change to become effective'))
def load(self):
self.RemotePortSpinBox.setValue(
int(self.config.get_config(u'remote port', 4316)))
- self.RemoteActive.setChecked(
- int(self.config.get_config(u'startup', 0)))
def save(self):
self.config.set_config(
u'remote port', unicode(self.RemotePortSpinBox.value()))
- self.config.set_config(
- u'startup', unicode(self.RemoteActive.checkState()))
diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py
index 0a2c86909..6c56036a0 100644
--- a/openlp/plugins/remotes/remoteplugin.py
+++ b/openlp/plugins/remotes/remoteplugin.py
@@ -34,6 +34,7 @@ class RemotesPlugin(Plugin):
# Call the parent constructor
Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers)
self.weight = -1
+ self.server = None
def can_be_disabled(self):
return True
@@ -47,7 +48,8 @@ class RemotesPlugin(Plugin):
def finalise(self):
log.debug(u'finalise')
- self.server.close()
+ if self.server is not None:
+ self.server.close()
def about(self):
return u'Remote Plugin
This plugin provides the ability to send messages to a running version of openlp on a different computer.
The Primary use for this would be to send alerts from a creche'