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
Raoul Snyman Approve
Review via email: mp+11461@code.launchpad.net

This proposal supersedes a proposal from 2009-09-09.

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

Code Completion time.
Fix Songs so adding or removing lines is verses is correct in main up
Fix Custom so adding or removing lines is verses is correct in main up
Clean up Custom error handling to new colourless standards.

Revision history for this message
Raoul Snyman (raoul-snyman) :
review: Approve
lp:~trb143/openlp/bugfixes updated
528. By Tim Bentley

Song and Custom cleanups

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openlp/plugins/custom/forms/editcustomform.py'
2--- openlp/plugins/custom/forms/editcustomform.py 2009-08-25 20:04:58 +0000
3+++ openlp/plugins/custom/forms/editcustomform.py 2009-09-09 18:09:17 +0000
4@@ -20,7 +20,7 @@
5 from PyQt4 import Qt, QtCore, QtGui
6
7 from editcustomdialog import Ui_customEditDialog
8-from openlp.core.lib import SongXMLBuilder, SongXMLParser, Receiver
9+from openlp.core.lib import SongXMLBuilder, SongXMLParser, Receiver, translate
10 from openlp.plugins.custom.lib.models import CustomSlide
11
12 class EditCustomForm(QtGui.QDialog, Ui_customEditDialog):
13@@ -44,7 +44,6 @@
14 QtCore.QObject.connect(self.ClearButton, QtCore.SIGNAL(u'pressed()'), self.onClearButtonPressed)
15 QtCore.QObject.connect(self.UpButton, QtCore.SIGNAL(u'pressed()'), self.onUpButtonPressed)
16 QtCore.QObject.connect(self.DownButton, QtCore.SIGNAL(u'pressed()'), self.onDownButtonPressed)
17- QtCore.QObject.connect(self.TitleEdit, QtCore.SIGNAL(u'lostFocus()'), self.validate)
18
19 QtCore.QObject.connect(self.VerseListView,
20 QtCore.SIGNAL(u'itemDoubleClicked(QListWidgetItem*)'), self.onVerseListViewSelected)
21@@ -92,25 +91,29 @@
22 if id == -1:
23 id = 0 # Not Found
24 self.ThemecomboBox.setCurrentIndex(id)
25- self.validate()
26 else:
27 self.ThemecomboBox.setCurrentIndex(0)
28
29 def accept(self):
30- if self.validate():
31- sxml=SongXMLBuilder()
32- sxml.new_document()
33- sxml.add_lyrics_to_song()
34- count = 1
35- for i in range (0, self.VerseListView.count()):
36- sxml.add_verse_to_lyrics(u'custom', unicode(count), unicode(self.VerseListView.item(i).text()))
37- count += 1
38- self.customSlide.title = unicode(self.TitleEdit.displayText())
39- self.customSlide.text = unicode(sxml.extract_xml())
40- self.customSlide.credits = unicode(self.CreditEdit.displayText())
41- self.customSlide.theme_name = unicode(self.ThemecomboBox.currentText())
42- self.custommanager.save_slide(self.customSlide)
43- self.close()
44+ valid , message = self._validate()
45+ if not valid:
46+ QtGui.QMessageBox.critical(self,
47+ translate(u'customEditDialog', u'Error'), message,
48+ QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
49+ return
50+ sxml=SongXMLBuilder()
51+ sxml.new_document()
52+ sxml.add_lyrics_to_song()
53+ count = 1
54+ for i in range (0, self.VerseListView.count()):
55+ sxml.add_verse_to_lyrics(u'custom', unicode(count), unicode(self.VerseListView.item(i).text()))
56+ count += 1
57+ self.customSlide.title = unicode(self.TitleEdit.displayText())
58+ self.customSlide.text = unicode(sxml.extract_xml())
59+ self.customSlide.credits = unicode(self.CreditEdit.displayText())
60+ self.customSlide.theme_name = unicode(self.ThemecomboBox.currentText())
61+ self.custommanager.save_slide(self.customSlide)
62+ self.close()
63
64 def rejected(self):
65 self.close()
66@@ -138,25 +141,34 @@
67 self.EditButton.setEnabled(True)
68
69 def onVerseListViewSelected(self, item):
70- self.VerseTextEdit.setPlainText(item.text())
71- self.DeleteButton.setEnabled(False)
72- self.EditButton.setEnabled(False)
73- self.SaveButton.setEnabled(True)
74+ self.editText(item.text())
75
76 def onAddButtonPressed(self):
77 self.VerseListView.addItem(self.VerseTextEdit.toPlainText())
78 self.DeleteButton.setEnabled(False)
79 self.VerseTextEdit.clear()
80- self.validate()
81
82 def onEditButtonPressed(self):
83- self.VerseTextEdit.setPlainText(self.VerseListView.currentItem().text())
84+ self.editText(self.VerseListView.currentItem().text())
85+
86+ def editText(self, text):
87+ self.beforeText = text
88+ self.VerseTextEdit.setPlainText(text)
89 self.DeleteButton.setEnabled(False)
90 self.EditButton.setEnabled(False)
91 self.SaveButton.setEnabled(True)
92
93 def onSaveButtonPressed(self):
94 self.VerseListView.currentItem().setText(self.VerseTextEdit.toPlainText())
95+ #number of lines has change
96+ if len(self.beforeText.split(u'\n')) != len(self.VerseTextEdit.toPlainText().split(u'\n')):
97+ tempList = {}
98+ for row in range(0, self.VerseListView.count()):
99+ tempList[row] = self.VerseListView.item(row).text()
100+ self.VerseListView.clear()
101+ for row in range (0, len(tempList)):
102+ self.VerseListView.addItem(tempList[row])
103+ self.VerseListView.repaint()
104 self.SaveButton.setEnabled(False)
105 self.EditButton.setEnabled(False)
106
107@@ -164,17 +176,14 @@
108 self.VerseListView.takeItem(self.VerseListView.currentRow())
109 self.EditButton.setEnabled(False)
110
111- def validate(self):
112+ def _validate(self):
113 valid = True
114+ message = u''
115 if len(self.TitleEdit.displayText()) == 0:
116 valid = False
117- self.TitleEdit.setStyleSheet(u'background-color: red; color: white')
118- else:
119- self.TitleEdit.setStyleSheet(u'')
120+ message = translate(u'customEditDialog', u'You need to enter a title \n')
121 # must have 1 slide
122 if self.VerseListView.count() == 0:
123 valid = False
124- self.VerseListView.setStyleSheet(u'background-color: red; color: white')
125- else:
126- self.VerseListView.setStyleSheet(u'')
127- return valid
128+ message += translate(u'customEditDialog', u'You need to enter a slide \n')
129+ return valid, message
130
131=== modified file 'openlp/plugins/songs/forms/editsongform.py'
132--- openlp/plugins/songs/forms/editsongform.py 2009-09-05 08:58:29 +0000
133+++ openlp/plugins/songs/forms/editsongform.py 2009-09-09 18:09:17 +0000
134@@ -282,9 +282,20 @@
135 def onVerseEditButtonClicked(self):
136 item = self.VerseListWidget.currentItem()
137 if item is not None:
138- self.verse_form.setVerse(item.text())
139+ tempText = item.text()
140+ self.verse_form.setVerse(tempText)
141 self.verse_form.exec_()
142- item.setText(self.verse_form.getVerse())
143+ afterText = self.verse_form.getVerse()
144+ item.setText(afterText)
145+ #number of lines has change
146+ if len(tempText.split(u'\n')) != len(afterText.split(u'\n')):
147+ tempList = {}
148+ for row in range(0, self.VerseListWidget.count()):
149+ tempList[row] = self.VerseListWidget.item(row).text()
150+ self.VerseListWidget.clear()
151+ for row in range (0, len(tempList)):
152+ self.VerseListWidget.addItem(tempList[row])
153+ self.VerseListWidget.repaint()
154 self.VerseEditButton.setEnabled(False)
155 self.VerseDeleteButton.setEnabled(False)
156