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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jon Tibble (community) | Approve | ||
Review via email:
|
This proposal supersedes a proposal from 2009-10-01.
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Tim Bentley (trb143) wrote : Posted in a previous version of this proposal | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jonathan Corwin (j-corwin) wrote : Posted in a previous version of this proposal | # |
Need to make sure the following lines in presentationplu
156 + for controller in self.controllers:
157 + self.controller
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
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
1 | === modified file 'openlp/core/lib/plugin.py' | |||
2 | --- openlp/core/lib/plugin.py 2009-09-29 17:05:34 +0000 | |||
3 | +++ openlp/core/lib/plugin.py 2009-10-01 17:25:20 +0000 | |||
4 | @@ -149,6 +149,14 @@ | |||
5 | 149 | """ | 149 | """ |
6 | 150 | return True | 150 | return True |
7 | 151 | 151 | ||
8 | 152 | def can_be_disabled(self): | ||
9 | 153 | """ | ||
10 | 154 | Indicates whether the plugin can be disabled by the plugin list. | ||
11 | 155 | |||
12 | 156 | Returns True or False. | ||
13 | 157 | """ | ||
14 | 158 | return False | ||
15 | 159 | |||
16 | 152 | def get_media_manager_item(self): | 160 | def get_media_manager_item(self): |
17 | 153 | """ | 161 | """ |
18 | 154 | Construct a MediaManagerItem object with all the buttons and things | 162 | Construct a MediaManagerItem object with all the buttons and things |
19 | 155 | 163 | ||
20 | === modified file 'openlp/core/ui/plugindialoglistform.py' | |||
21 | --- openlp/core/ui/plugindialoglistform.py 2009-09-21 17:56:36 +0000 | |||
22 | +++ openlp/core/ui/plugindialoglistform.py 2009-10-01 17:25:20 +0000 | |||
23 | @@ -48,6 +48,8 @@ | |||
24 | 48 | QtCore.QObject.connect(self.ButtonBox, | 48 | QtCore.QObject.connect(self.ButtonBox, |
25 | 49 | QtCore.SIGNAL(u'accepted()'), PluginForm.close) | 49 | QtCore.SIGNAL(u'accepted()'), PluginForm.close) |
26 | 50 | QtCore.QMetaObject.connectSlotsByName(PluginForm) | 50 | QtCore.QMetaObject.connectSlotsByName(PluginForm) |
27 | 51 | QtCore.QObject.connect(self.PluginViewList, | ||
28 | 52 | QtCore.SIGNAL(u'itemDoubleClicked(QTableWidgetItem*)'), self.displayAbout) | ||
29 | 51 | 53 | ||
30 | 52 | def retranslateUi(self, PluginForm): | 54 | def retranslateUi(self, PluginForm): |
31 | 53 | PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list')) | 55 | PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list')) |
32 | @@ -62,15 +64,16 @@ | |||
33 | 62 | """ | 64 | """ |
34 | 63 | Load the plugin details into the screen | 65 | Load the plugin details into the screen |
35 | 64 | """ | 66 | """ |
36 | 65 | #self.PluginViewList.clear() | ||
37 | 66 | self.PluginViewList.setRowCount(0) | 67 | self.PluginViewList.setRowCount(0) |
38 | 67 | for plugin in self.parent.plugin_manager.plugins: | 68 | for plugin in self.parent.plugin_manager.plugins: |
39 | 68 | row = self.PluginViewList.rowCount() | 69 | row = self.PluginViewList.rowCount() |
40 | 69 | self.PluginViewList.setRowCount(row + 1) | 70 | self.PluginViewList.setRowCount(row + 1) |
41 | 70 | item1 = QtGui.QTableWidgetItem(plugin.name) | 71 | item1 = QtGui.QTableWidgetItem(plugin.name) |
42 | 72 | item1.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) | ||
43 | 71 | item1.setTextAlignment(QtCore.Qt.AlignVCenter) | 73 | item1.setTextAlignment(QtCore.Qt.AlignVCenter) |
44 | 72 | item2 = QtGui.QTableWidgetItem(plugin.version) | 74 | item2 = QtGui.QTableWidgetItem(plugin.version) |
45 | 73 | item2.setTextAlignment(QtCore.Qt.AlignVCenter) | 75 | item2.setTextAlignment(QtCore.Qt.AlignVCenter) |
46 | 76 | item2.setFlags(QtCore.Qt.ItemIsSelectable) | ||
47 | 74 | if plugin.status == PluginStatus.Active: | 77 | if plugin.status == PluginStatus.Active: |
48 | 75 | item3 = QtGui.QTableWidgetItem( | 78 | item3 = QtGui.QTableWidgetItem( |
49 | 76 | translate(u'PluginForm', u'Active')) | 79 | translate(u'PluginForm', u'Active')) |
50 | @@ -78,8 +81,21 @@ | |||
51 | 78 | item3 = QtGui.QTableWidgetItem( | 81 | item3 = QtGui.QTableWidgetItem( |
52 | 79 | translate(u'PluginForm', u'Inactive')) | 82 | translate(u'PluginForm', u'Inactive')) |
53 | 80 | item3.setTextAlignment(QtCore.Qt.AlignVCenter) | 83 | item3.setTextAlignment(QtCore.Qt.AlignVCenter) |
54 | 84 | item3.setFlags(QtCore.Qt.ItemIsSelectable) | ||
55 | 81 | self.PluginViewList.setItem(row, 0, item1) | 85 | self.PluginViewList.setItem(row, 0, item1) |
56 | 82 | self.PluginViewList.setItem(row, 1, item2) | 86 | self.PluginViewList.setItem(row, 1, item2) |
57 | 83 | self.PluginViewList.setItem(row, 2, item3) | 87 | self.PluginViewList.setItem(row, 2, item3) |
58 | 84 | self.PluginViewList.setRowHeight(row, 15) | 88 | self.PluginViewList.setRowHeight(row, 15) |
59 | 85 | 89 | ||
60 | 90 | def displayAbout(self, item): | ||
61 | 91 | if item is None: | ||
62 | 92 | return False | ||
63 | 93 | row = self.PluginViewList.row(item) | ||
64 | 94 | text = self.parent.plugin_manager.plugins[row].about() | ||
65 | 95 | if text is not None: | ||
66 | 96 | ret = QtGui.QMessageBox.information(self, | ||
67 | 97 | translate(u'PluginList', u'Plugin Information'), | ||
68 | 98 | translate(u'PluginList', text), | ||
69 | 99 | QtGui.QMessageBox.StandardButtons( | ||
70 | 100 | QtGui.QMessageBox.Ok), | ||
71 | 101 | QtGui.QMessageBox.Ok) | ||
72 | 86 | 102 | ||
73 | === modified file 'openlp/core/ui/servicemanager.py' | |||
74 | --- openlp/core/ui/servicemanager.py 2009-09-25 23:06:54 +0000 | |||
75 | +++ openlp/core/ui/servicemanager.py 2009-10-01 17:25:20 +0000 | |||
76 | @@ -35,7 +35,7 @@ | |||
77 | 35 | class ServiceManagerList(QtGui.QTreeWidget): | 35 | class ServiceManagerList(QtGui.QTreeWidget): |
78 | 36 | 36 | ||
79 | 37 | def __init__(self,parent=None,name=None): | 37 | def __init__(self,parent=None,name=None): |
81 | 38 | QtGui.QListView.__init__(self,parent) | 38 | QtGui.QTreeWidget.__init__(self,parent) |
82 | 39 | self.parent = parent | 39 | self.parent = parent |
83 | 40 | 40 | ||
84 | 41 | def keyPressEvent(self, event): | 41 | def keyPressEvent(self, event): |
85 | @@ -402,7 +402,7 @@ | |||
86 | 402 | name = filename.split(os.path.sep) | 402 | name = filename.split(os.path.sep) |
87 | 403 | self.serviceName = name[-1] | 403 | self.serviceName = name[-1] |
88 | 404 | self.parent.serviceChanged(True, self.serviceName) | 404 | self.parent.serviceChanged(True, self.serviceName) |
90 | 405 | 405 | ||
91 | 406 | def onQuickSaveService(self): | 406 | def onQuickSaveService(self): |
92 | 407 | self.onSaveService(True) | 407 | self.onSaveService(True) |
93 | 408 | 408 | ||
94 | 409 | 409 | ||
95 | === modified file 'openlp/plugins/audit/auditplugin.py' | |||
96 | --- openlp/plugins/audit/auditplugin.py 2009-09-29 17:05:34 +0000 | |||
97 | +++ openlp/plugins/audit/auditplugin.py 2009-10-01 17:25:20 +0000 | |||
98 | @@ -185,3 +185,6 @@ | |||
99 | 185 | 185 | ||
100 | 186 | def onAuditReport(self): | 186 | def onAuditReport(self): |
101 | 187 | self.auditdetailform.exec_() | 187 | self.auditdetailform.exec_() |
102 | 188 | |||
103 | 189 | def about(self): | ||
104 | 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' | ||
105 | 188 | 191 | ||
106 | === modified file 'openlp/plugins/bibles/bibleplugin.py' | |||
107 | --- openlp/plugins/bibles/bibleplugin.py 2009-09-29 17:05:34 +0000 | |||
108 | +++ openlp/plugins/bibles/bibleplugin.py 2009-10-01 17:25:20 +0000 | |||
109 | @@ -70,3 +70,5 @@ | |||
110 | 70 | def onBibleNewClick(self): | 70 | def onBibleNewClick(self): |
111 | 71 | self.media_item.onBibleNewClick() | 71 | self.media_item.onBibleNewClick() |
112 | 72 | 72 | ||
113 | 73 | def about(self): | ||
114 | 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>' | ||
115 | 73 | 75 | ||
116 | === modified file 'openlp/plugins/custom/customplugin.py' | |||
117 | --- openlp/plugins/custom/customplugin.py 2009-09-29 17:05:34 +0000 | |||
118 | +++ openlp/plugins/custom/customplugin.py 2009-10-01 17:25:20 +0000 | |||
119 | @@ -56,3 +56,6 @@ | |||
120 | 56 | # Create the CustomManagerItem object | 56 | # Create the CustomManagerItem object |
121 | 57 | self.media_item = CustomMediaItem(self, self.icon, u'Custom Slides') | 57 | self.media_item = CustomMediaItem(self, self.icon, u'Custom Slides') |
122 | 58 | return self.media_item | 58 | return self.media_item |
123 | 59 | |||
124 | 60 | def about(self): | ||
125 | 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>' | ||
126 | 59 | 62 | ||
127 | === modified file 'openlp/plugins/images/imageplugin.py' | |||
128 | --- openlp/plugins/images/imageplugin.py 2009-09-29 02:54:32 +0000 | |||
129 | +++ openlp/plugins/images/imageplugin.py 2009-10-01 17:25:20 +0000 | |||
130 | @@ -47,3 +47,6 @@ | |||
131 | 47 | # Create the MediaManagerItem object | 47 | # Create the MediaManagerItem object |
132 | 48 | self.media_item = ImageMediaItem(self, self.icon, u'Images') | 48 | self.media_item = ImageMediaItem(self, self.icon, u'Images') |
133 | 49 | return self.media_item | 49 | return self.media_item |
134 | 50 | |||
135 | 51 | def about(self): | ||
136 | 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>' | ||
137 | 50 | 53 | ||
138 | === modified file 'openlp/plugins/media/mediaplugin.py' | |||
139 | --- openlp/plugins/media/mediaplugin.py 2009-09-29 02:54:32 +0000 | |||
140 | +++ openlp/plugins/media/mediaplugin.py 2009-10-01 17:25:20 +0000 | |||
141 | @@ -44,3 +44,6 @@ | |||
142 | 44 | # Create the MediaManagerItem object | 44 | # Create the MediaManagerItem object |
143 | 45 | self.media_item = MediaMediaItem(self, self.icon, u'Media') | 45 | self.media_item = MediaMediaItem(self, self.icon, u'Media') |
144 | 46 | return self.media_item | 46 | return self.media_item |
145 | 47 | |||
146 | 48 | def about(self): | ||
147 | 49 | return u'<b>Media Plugin</b> <br> One day this may provide access to video and audio clips' | ||
148 | 47 | 50 | ||
149 | === modified file 'openlp/plugins/presentations/presentationplugin.py' | |||
150 | --- openlp/plugins/presentations/presentationplugin.py 2009-09-30 19:26:51 +0000 | |||
151 | +++ openlp/plugins/presentations/presentationplugin.py 2009-10-01 17:25:20 +0000 | |||
152 | @@ -101,3 +101,6 @@ | |||
153 | 101 | controller = self.controllers[key] | 101 | controller = self.controllers[key] |
154 | 102 | if controller.enabled: | 102 | if controller.enabled: |
155 | 103 | controller.kill() | 103 | controller.kill() |
156 | 104 | |||
157 | 105 | def about(self): | ||
158 | 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.' | ||
159 | 104 | 107 | ||
160 | === modified file 'openlp/plugins/remotes/remoteplugin.py' | |||
161 | --- openlp/plugins/remotes/remoteplugin.py 2009-09-28 20:45:04 +0000 | |||
162 | +++ openlp/plugins/remotes/remoteplugin.py 2009-10-01 17:25:20 +0000 | |||
163 | @@ -21,7 +21,7 @@ | |||
164 | 21 | 21 | ||
165 | 22 | from PyQt4 import QtNetwork, QtCore | 22 | from PyQt4 import QtNetwork, QtCore |
166 | 23 | 23 | ||
168 | 24 | from openlp.core.lib import Plugin, Receiver | 24 | from openlp.core.lib import Plugin, Receiver, translate |
169 | 25 | from openlp.plugins.remotes.lib import RemoteTab | 25 | from openlp.plugins.remotes.lib import RemoteTab |
170 | 26 | 26 | ||
171 | 27 | class RemotesPlugin(Plugin): | 27 | class RemotesPlugin(Plugin): |
172 | @@ -35,6 +35,9 @@ | |||
173 | 35 | Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers) | 35 | Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers) |
174 | 36 | self.weight = -1 | 36 | self.weight = -1 |
175 | 37 | 37 | ||
176 | 38 | def can_be_disabled(self): | ||
177 | 39 | return True | ||
178 | 40 | |||
179 | 38 | def check_pre_conditions(self): | 41 | def check_pre_conditions(self): |
180 | 39 | """ | 42 | """ |
181 | 40 | Check to see if remotes is required | 43 | Check to see if remotes is required |
182 | @@ -52,6 +55,12 @@ | |||
183 | 52 | QtCore.QObject.connect(self.server, | 55 | QtCore.QObject.connect(self.server, |
184 | 53 | QtCore.SIGNAL(u'readyRead()'), self.readData) | 56 | QtCore.SIGNAL(u'readyRead()'), self.readData) |
185 | 54 | 57 | ||
186 | 58 | def finalise(self): | ||
187 | 59 | pass | ||
188 | 60 | |||
189 | 61 | def about(self): | ||
190 | 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' | ||
191 | 63 | |||
192 | 55 | def get_settings_tab(self): | 64 | def get_settings_tab(self): |
193 | 56 | """ | 65 | """ |
194 | 57 | Create the settings Tab | 66 | Create the settings Tab |
195 | 58 | 67 | ||
196 | === modified file 'openlp/plugins/songs/songsplugin.py' | |||
197 | --- openlp/plugins/songs/songsplugin.py 2009-09-29 02:54:32 +0000 | |||
198 | +++ openlp/plugins/songs/songsplugin.py 2009-10-01 17:25:20 +0000 | |||
199 | @@ -159,3 +159,6 @@ | |||
200 | 159 | 159 | ||
201 | 160 | def onExportOpenSongItemClicked(self): | 160 | def onExportOpenSongItemClicked(self): |
202 | 161 | self.opensong_export_form.show() | 161 | self.opensong_export_form.show() |
203 | 162 | |||
204 | 163 | def about(self): | ||
205 | 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>' |
Add About text to Plugin list.
Text can be amended but it is a start.
Plugin list now is no longer editable!