Merge lp:~trb143/openlp/audit into lp:openlp

Proposed by Tim Bentley
Status: Merged
Merged at revision: not available
Proposed branch: lp:~trb143/openlp/audit
Merge into: lp:openlp
Diff against target: 205 lines
11 files modified
openlp/core/lib/plugin.py (+8/-0)
openlp/core/ui/plugindialoglistform.py (+17/-1)
openlp/core/ui/servicemanager.py (+2/-2)
openlp/plugins/audit/auditplugin.py (+3/-0)
openlp/plugins/bibles/bibleplugin.py (+2/-0)
openlp/plugins/custom/customplugin.py (+3/-0)
openlp/plugins/images/imageplugin.py (+3/-0)
openlp/plugins/media/mediaplugin.py (+3/-0)
openlp/plugins/presentations/presentationplugin.py (+3/-0)
openlp/plugins/remotes/remoteplugin.py (+10/-1)
openlp/plugins/songs/songsplugin.py (+3/-0)
To merge this branch: bzr merge lp:~trb143/openlp/audit
Reviewer Review Type Date Requested Status
Jon Tibble (community) Approve
Review via email: mp+12739@code.launchpad.net

This proposal supersedes a proposal from 2009-10-01.

To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote : Posted in a previous version of this proposal

Add About text to Plugin list.
Text can be amended but it is a start.
Plugin list now is no longer editable!

Revision history for this message
Jonathan Corwin (j-corwin) wrote : Posted in a previous version of this proposal

Need to make sure the following lines in presentationplugin.py don't get added back in, since they were removed in my last merge.

156 + for controller in self.controllers:
157 + self.controllers[controller].kill()

Revision history for this message
Jon Tibble (meths) wrote :

Looks okay.

There should either be a 4th column or a label/box below the table to display the descriptions, the double clicking without an indication of result (same with setting default theme) is bad UI design. Users shouldn't have to guess they need to double click for some extra functionality.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py 2009-09-29 17:05:34 +0000
+++ openlp/core/lib/plugin.py 2009-10-01 17:25:20 +0000
@@ -149,6 +149,14 @@
149 """149 """
150 return True150 return True
151151
152 def can_be_disabled(self):
153 """
154 Indicates whether the plugin can be disabled by the plugin list.
155
156 Returns True or False.
157 """
158 return False
159
152 def get_media_manager_item(self):160 def get_media_manager_item(self):
153 """161 """
154 Construct a MediaManagerItem object with all the buttons and things162 Construct a MediaManagerItem object with all the buttons and things
155163
=== modified file 'openlp/core/ui/plugindialoglistform.py'
--- openlp/core/ui/plugindialoglistform.py 2009-09-21 17:56:36 +0000
+++ openlp/core/ui/plugindialoglistform.py 2009-10-01 17:25:20 +0000
@@ -48,6 +48,8 @@
48 QtCore.QObject.connect(self.ButtonBox,48 QtCore.QObject.connect(self.ButtonBox,
49 QtCore.SIGNAL(u'accepted()'), PluginForm.close)49 QtCore.SIGNAL(u'accepted()'), PluginForm.close)
50 QtCore.QMetaObject.connectSlotsByName(PluginForm)50 QtCore.QMetaObject.connectSlotsByName(PluginForm)
51 QtCore.QObject.connect(self.PluginViewList,
52 QtCore.SIGNAL(u'itemDoubleClicked(QTableWidgetItem*)'), self.displayAbout)
5153
52 def retranslateUi(self, PluginForm):54 def retranslateUi(self, PluginForm):
53 PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list'))55 PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list'))
@@ -62,15 +64,16 @@
62 """64 """
63 Load the plugin details into the screen65 Load the plugin details into the screen
64 """66 """
65 #self.PluginViewList.clear()
66 self.PluginViewList.setRowCount(0)67 self.PluginViewList.setRowCount(0)
67 for plugin in self.parent.plugin_manager.plugins:68 for plugin in self.parent.plugin_manager.plugins:
68 row = self.PluginViewList.rowCount()69 row = self.PluginViewList.rowCount()
69 self.PluginViewList.setRowCount(row + 1)70 self.PluginViewList.setRowCount(row + 1)
70 item1 = QtGui.QTableWidgetItem(plugin.name)71 item1 = QtGui.QTableWidgetItem(plugin.name)
72 item1.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
71 item1.setTextAlignment(QtCore.Qt.AlignVCenter)73 item1.setTextAlignment(QtCore.Qt.AlignVCenter)
72 item2 = QtGui.QTableWidgetItem(plugin.version)74 item2 = QtGui.QTableWidgetItem(plugin.version)
73 item2.setTextAlignment(QtCore.Qt.AlignVCenter)75 item2.setTextAlignment(QtCore.Qt.AlignVCenter)
76 item2.setFlags(QtCore.Qt.ItemIsSelectable)
74 if plugin.status == PluginStatus.Active:77 if plugin.status == PluginStatus.Active:
75 item3 = QtGui.QTableWidgetItem(78 item3 = QtGui.QTableWidgetItem(
76 translate(u'PluginForm', u'Active'))79 translate(u'PluginForm', u'Active'))
@@ -78,8 +81,21 @@
78 item3 = QtGui.QTableWidgetItem(81 item3 = QtGui.QTableWidgetItem(
79 translate(u'PluginForm', u'Inactive'))82 translate(u'PluginForm', u'Inactive'))
80 item3.setTextAlignment(QtCore.Qt.AlignVCenter)83 item3.setTextAlignment(QtCore.Qt.AlignVCenter)
84 item3.setFlags(QtCore.Qt.ItemIsSelectable)
81 self.PluginViewList.setItem(row, 0, item1)85 self.PluginViewList.setItem(row, 0, item1)
82 self.PluginViewList.setItem(row, 1, item2)86 self.PluginViewList.setItem(row, 1, item2)
83 self.PluginViewList.setItem(row, 2, item3)87 self.PluginViewList.setItem(row, 2, item3)
84 self.PluginViewList.setRowHeight(row, 15)88 self.PluginViewList.setRowHeight(row, 15)
8589
90 def displayAbout(self, item):
91 if item is None:
92 return False
93 row = self.PluginViewList.row(item)
94 text = self.parent.plugin_manager.plugins[row].about()
95 if text is not None:
96 ret = QtGui.QMessageBox.information(self,
97 translate(u'PluginList', u'Plugin Information'),
98 translate(u'PluginList', text),
99 QtGui.QMessageBox.StandardButtons(
100 QtGui.QMessageBox.Ok),
101 QtGui.QMessageBox.Ok)
86102
=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py 2009-09-25 23:06:54 +0000
+++ openlp/core/ui/servicemanager.py 2009-10-01 17:25:20 +0000
@@ -35,7 +35,7 @@
35class ServiceManagerList(QtGui.QTreeWidget):35class ServiceManagerList(QtGui.QTreeWidget):
3636
37 def __init__(self,parent=None,name=None):37 def __init__(self,parent=None,name=None):
38 QtGui.QListView.__init__(self,parent)38 QtGui.QTreeWidget.__init__(self,parent)
39 self.parent = parent39 self.parent = parent
4040
41 def keyPressEvent(self, event):41 def keyPressEvent(self, event):
@@ -402,7 +402,7 @@
402 name = filename.split(os.path.sep)402 name = filename.split(os.path.sep)
403 self.serviceName = name[-1]403 self.serviceName = name[-1]
404 self.parent.serviceChanged(True, self.serviceName)404 self.parent.serviceChanged(True, self.serviceName)
405 405
406 def onQuickSaveService(self):406 def onQuickSaveService(self):
407 self.onSaveService(True)407 self.onSaveService(True)
408408
409409
=== modified file 'openlp/plugins/audit/auditplugin.py'
--- openlp/plugins/audit/auditplugin.py 2009-09-29 17:05:34 +0000
+++ openlp/plugins/audit/auditplugin.py 2009-10-01 17:25:20 +0000
@@ -185,3 +185,6 @@
185185
186 def onAuditReport(self):186 def onAuditReport(self):
187 self.auditdetailform.exec_()187 self.auditdetailform.exec_()
188
189 def about(self):
190 return u'<b>Audit Plugin</b> <br>This plugin records the use of songs and when they have been used during a live service'
188191
=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py 2009-09-29 17:05:34 +0000
+++ openlp/plugins/bibles/bibleplugin.py 2009-10-01 17:25:20 +0000
@@ -70,3 +70,5 @@
70 def onBibleNewClick(self):70 def onBibleNewClick(self):
71 self.media_item.onBibleNewClick()71 self.media_item.onBibleNewClick()
7272
73 def about(self):
74 return u'<b>Bible Plugin</b> <br>This plugin allows bible verse from different sources to be displayed on the screen during the service.<br><br>This is a core plugin and cannot be made inactive</b>'
7375
=== modified file 'openlp/plugins/custom/customplugin.py'
--- openlp/plugins/custom/customplugin.py 2009-09-29 17:05:34 +0000
+++ openlp/plugins/custom/customplugin.py 2009-10-01 17:25:20 +0000
@@ -56,3 +56,6 @@
56 # Create the CustomManagerItem object56 # Create the CustomManagerItem object
57 self.media_item = CustomMediaItem(self, self.icon, u'Custom Slides')57 self.media_item = CustomMediaItem(self, self.icon, u'Custom Slides')
58 return self.media_item58 return self.media_item
59
60 def about(self):
61 return u'<b>Custom Plugin</b> <br>This plugin allows slides to be displayed on the screen in the same way songs are. The difference between this plugin and songs is this plugin provides greater freedom.<br><br>This is a core plugin and cannot be made inactive</b>'
5962
=== modified file 'openlp/plugins/images/imageplugin.py'
--- openlp/plugins/images/imageplugin.py 2009-09-29 02:54:32 +0000
+++ openlp/plugins/images/imageplugin.py 2009-10-01 17:25:20 +0000
@@ -47,3 +47,6 @@
47 # Create the MediaManagerItem object47 # Create the MediaManagerItem object
48 self.media_item = ImageMediaItem(self, self.icon, u'Images')48 self.media_item = ImageMediaItem(self, self.icon, u'Images')
49 return self.media_item49 return self.media_item
50
51 def about(self):
52 return u'<b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br> From the plugin if the <i>Override background</i> is chosen and an image is selected any somgs which are rendered will use the selected image from the background instead of the one provied by the theme.<br>'
5053
=== modified file 'openlp/plugins/media/mediaplugin.py'
--- openlp/plugins/media/mediaplugin.py 2009-09-29 02:54:32 +0000
+++ openlp/plugins/media/mediaplugin.py 2009-10-01 17:25:20 +0000
@@ -44,3 +44,6 @@
44 # Create the MediaManagerItem object44 # Create the MediaManagerItem object
45 self.media_item = MediaMediaItem(self, self.icon, u'Media')45 self.media_item = MediaMediaItem(self, self.icon, u'Media')
46 return self.media_item46 return self.media_item
47
48 def about(self):
49 return u'<b>Media Plugin</b> <br> One day this may provide access to video and audio clips'
4750
=== modified file 'openlp/plugins/presentations/presentationplugin.py'
--- openlp/plugins/presentations/presentationplugin.py 2009-09-30 19:26:51 +0000
+++ openlp/plugins/presentations/presentationplugin.py 2009-10-01 17:25:20 +0000
@@ -101,3 +101,6 @@
101 controller = self.controllers[key]101 controller = self.controllers[key]
102 if controller.enabled:102 if controller.enabled:
103 controller.kill()103 controller.kill()
104
105 def about(self):
106 return u'<b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentaion programs is available in a drop down.'
104107
=== modified file 'openlp/plugins/remotes/remoteplugin.py'
--- openlp/plugins/remotes/remoteplugin.py 2009-09-28 20:45:04 +0000
+++ openlp/plugins/remotes/remoteplugin.py 2009-10-01 17:25:20 +0000
@@ -21,7 +21,7 @@
2121
22from PyQt4 import QtNetwork, QtCore22from PyQt4 import QtNetwork, QtCore
2323
24from openlp.core.lib import Plugin, Receiver24from openlp.core.lib import Plugin, Receiver, translate
25from openlp.plugins.remotes.lib import RemoteTab25from openlp.plugins.remotes.lib import RemoteTab
2626
27class RemotesPlugin(Plugin):27class RemotesPlugin(Plugin):
@@ -35,6 +35,9 @@
35 Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers)35 Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers)
36 self.weight = -136 self.weight = -1
3737
38 def can_be_disabled(self):
39 return True
40
38 def check_pre_conditions(self):41 def check_pre_conditions(self):
39 """42 """
40 Check to see if remotes is required43 Check to see if remotes is required
@@ -52,6 +55,12 @@
52 QtCore.QObject.connect(self.server,55 QtCore.QObject.connect(self.server,
53 QtCore.SIGNAL(u'readyRead()'), self.readData)56 QtCore.SIGNAL(u'readyRead()'), self.readData)
5457
58 def finalise(self):
59 pass
60
61 def about(self):
62 return u'<b>Remote Plugin</b> <br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br> The Primary use for this would be to send alerts from a creche'
63
55 def get_settings_tab(self):64 def get_settings_tab(self):
56 """65 """
57 Create the settings Tab66 Create the settings Tab
5867
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/songsplugin.py 2009-10-01 17:25:20 +0000
@@ -159,3 +159,6 @@
159159
160 def onExportOpenSongItemClicked(self):160 def onExportOpenSongItemClicked(self):
161 self.opensong_export_form.show()161 self.opensong_export_form.show()
162
163 def about(self):
164 return u'<b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br><br>This is a core plugin and cannot be made inactive</b>'