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

Proposed by Tim Bentley
Status: Merged
Merged at revision: not available
Proposed branch: lp:~trb143/openlp/bugfixes
Merge into: lp:openlp
Diff against target: None lines
To merge this branch: bzr merge lp:~trb143/openlp/bugfixes
Reviewer Review Type Date Requested Status
Jon Tibble (community) Approve
Review via email: mp+12122@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote :

Fix up Audit state handing
Allow file to be changed
Fix up file writing

lp:~trb143/openlp/bugfixes updated
555. By Jon Tibble

Fix service loading on Windows

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

Looks good

review: Approve
lp:~trb143/openlp/bugfixes updated
556. By Tim Bentley

Audit Fixes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openlp/core/lib/eventreceiver.py'
2--- openlp/core/lib/eventreceiver.py 2009-09-16 18:37:25 +0000
3+++ openlp/core/lib/eventreceiver.py 2009-09-19 19:31:18 +0000
4@@ -80,6 +80,9 @@
5
6 ``audit_live``
7 Sends live song audit requests to the audit component
8+
9+ ``audit_changed``
10+ Audit information may have changed
11 """
12 global log
13 log = logging.getLogger(u'EventReceiver')
14
15=== modified file 'openlp/plugins/audit/auditplugin.py'
16--- openlp/plugins/audit/auditplugin.py 2009-09-18 10:47:57 +0000
17+++ openlp/plugins/audit/auditplugin.py 2009-09-19 19:45:15 +0000
18@@ -27,7 +27,7 @@
19 from PyQt4 import QtCore, QtGui
20 from datetime import date
21
22-from openlp.core.lib import Plugin, Receiver, translate
23+from openlp.core.lib import Plugin, Receiver, translate, str_to_bool
24 from openlp.plugins.audit.lib import AuditTab
25
26 class AuditPlugin(Plugin):
27@@ -95,17 +95,49 @@
28 log.info(u'Plugin Initialising')
29 QtCore.QObject.connect(Receiver.get_receiver(),
30 QtCore.SIGNAL(u'audit_live'), self.onReceiveAudit)
31- self.auditFile = open(u'openlp.aud', 'a')
32- self.auditActive = False
33+ QtCore.QObject.connect(Receiver.get_receiver(),
34+ QtCore.SIGNAL(u'audit_changed'), self.onUpdateAudit)
35+ self.auditFileName = self.config.get_config(u'audit file', u'')
36+ self.auditActive = str_to_bool(self.config.get_config(u'audit active', False))
37+ if self.auditFileName == u'':
38+ self.auditActive = False
39+ self.ToolsAuditItem.setEnabled(False)
40+ self.auditFile = None
41+ else:
42+ self.auditFile = open(self.auditFileName, u'a')
43+ self.ToolsAuditItem.setChecked(self.auditActive)
44
45 def toggleAuditState(self):
46 self.auditActive = not self.auditActive
47+ self.config.set_config(u'audit active', self.auditActive)
48
49 def onReceiveAudit(self, auditData):
50+ """
51+ Audit a live song from SlideController
52+ """
53 if self.auditActive:
54- self.auditFile.write(u'%s,%s\n' % (date.today(), auditData))
55+ for author in auditData[1]:
56+ self.auditFile.write(u'\"%s\",\"%s\",\"%s\",\"%s\"\n' % (date.today(), auditData[0], author, auditData[2]))
57 self.auditFile.flush()
58
59+ def onUpdateAudit(self):
60+ """
61+ Someone may have changed to audit details
62+ Sort out the file and the auditing state
63+ """
64+ self.auditFileNameNew = self.config.get_config(u'audit file', u'')
65+ self.auditActive = str_to_bool(self.config.get_config(u'audit active', False))
66+ if self.auditFileNameNew == u'':
67+ self.auditActive = False
68+ self.ToolsAuditItem.setChecked(self.auditActive)
69+ self.ToolsAuditItem.setEnabled(False)
70+ return
71+ self.ToolsAuditItem.setEnabled(True)
72+ if self.auditFileNameNew != self.auditFileName:
73+ if self.auditFile is not None:
74+ self.auditFile.close()
75+ self.auditFile = open(self.auditFileNameNew, u'a')
76+
77 def finalise(self):
78 log.debug(u'Finalise')
79 if self.auditFile is not None:
80
81=== modified file 'openlp/plugins/audit/lib/audittab.py'
82--- openlp/plugins/audit/lib/audittab.py 2009-09-16 18:37:25 +0000
83+++ openlp/plugins/audit/lib/audittab.py 2009-09-19 19:31:18 +0000
84@@ -35,25 +35,30 @@
85
86 def setupUi(self):
87 self.setObjectName(u'AuditTab')
88- self.AuditLayout = QtGui.QFormLayout(self)
89- self.AuditLayout.setObjectName(u'AuditLayout')
90 self.AuditModeGroupBox = QtGui.QGroupBox(self)
91 self.AuditModeGroupBox.setObjectName(u'AuditModeGroupBox')
92- self.AuditModeLayout = QtGui.QVBoxLayout(self.AuditModeGroupBox)
93- self.AuditModeLayout.setSpacing(8)
94- self.AuditModeLayout.setMargin(8)
95- self.AuditModeLayout.setObjectName(u'AuditModeLayout')
96- self.AuditPortSpinBox = QtGui.QSpinBox(self.AuditModeGroupBox)
97- self.AuditPortSpinBox.setObjectName(u'AuditPortSpinBox')
98- self.AuditPortSpinBox.setMaximum(32767)
99- self.AuditModeLayout.addWidget(self.AuditPortSpinBox)
100- self.AuditActive = QtGui.QCheckBox(self.AuditModeGroupBox)
101- self.AuditActive.setObjectName(u'AuditPortSpinBox')
102- self.AuditModeLayout.addWidget(self.AuditActive)
103- self.WarningLabel = QtGui.QLabel(self.AuditModeGroupBox)
104- self.WarningLabel.setObjectName(u'WarningLabel')
105- self.AuditModeLayout.addWidget(self.WarningLabel)
106- self.AuditLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.AuditModeGroupBox)
107+ self.verticalLayout = QtGui.QVBoxLayout(self.AuditModeGroupBox)
108+ self.verticalLayout.setObjectName("verticalLayout")
109+ self.horizontalLayout = QtGui.QHBoxLayout()
110+ self.horizontalLayout.setObjectName("horizontalLayout")
111+ self.AuditFileName = QtGui.QLineEdit(self)
112+ self.AuditFileName.setObjectName("AuditFileName")
113+ self.horizontalLayout.addWidget(self.AuditFileName)
114+ icon1 = QtGui.QIcon()
115+ icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
116+ self.AuditFileButton = QtGui.QPushButton(self)
117+ self.AuditFileButton.setObjectName("AuditFileButton")
118+ self.AuditFileButton.setIcon(icon1)
119+ self.horizontalLayout.addWidget(self.AuditFileButton)
120+ self.verticalLayout.addLayout(self.horizontalLayout)
121+ self.AuditActive = QtGui.QCheckBox(self)
122+ self.AuditActive.setObjectName("AuditActive")
123+ self.verticalLayout.addWidget(self.AuditActive)
124+ self.WarningLabel = QtGui.QLabel(self)
125+ self.WarningLabel.setObjectName("WarningLabel")
126+ self.verticalLayout.addWidget(self.WarningLabel)
127+ QtCore.QObject.connect(self.AuditFileButton,
128+ QtCore.SIGNAL(u'pressed()'), self.onAuditFileButtonClicked)
129
130 def retranslateUi(self):
131 self.AuditModeGroupBox.setTitle(translate(u'AuditTab', u'Audit File'))
132@@ -61,10 +66,16 @@
133 self.WarningLabel.setText(translate(u'AuditTab', u'A restart is needed for this change to become effective'))
134
135 def load(self):
136- self.AuditPortSpinBox.setValue(int(self.config.get_config(u'Audit port', 4316)))
137+ self.AuditFileName.setText(self.config.get_config(u'Audit file', u''))
138 self.AuditActive.setChecked(int(self.config.get_config(u'startup', 0)))
139
140+ def onAuditFileButtonClicked(self):
141+ filename = QtGui.QFileDialog.getOpenFileName(self, u'Audit File',self.AuditFileName.text())
142+ if filename != u'':
143+ filename = unicode(filename)
144+ self.AuditFileName.setText(filename)
145+
146 def save(self):
147- self.config.set_config(u'Audit port', unicode(self.AuditPortSpinBox.value()))
148+ self.config.set_config(u'Audit file', unicode(self.AuditFileName.text()))
149 self.config.set_config(u'startup', unicode(self.AuditActive.checkState()))
150-
151+ Receiver().send_message(u'audit_changed')
152
153=== modified file 'resources/images/openlp-2.qrc'
154--- resources/images/openlp-2.qrc 2009-09-16 04:59:38 +0000
155+++ resources/images/openlp-2.qrc 2009-09-19 17:56:26 +0000
156@@ -49,10 +49,6 @@
157 <file>import_remove.png</file>
158 <file>import_load.png</file>
159 </qresource>
160- <qresource prefix="audit" >
161- <file>audit_start.png</file>
162- <file>audit_stop.png</file>
163- </qresource>
164 <qresource prefix="exports" >
165 <file>export_selectall.png</file>
166 <file>export_remove.png</file>