Merge lp:~meths/openlp/trivialfixes into lp:openlp
- trivialfixes
- Merge into trunk
Proposed by
Jon Tibble
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~meths/openlp/trivialfixes |
Merge into: | lp:openlp |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~meths/openlp/trivialfixes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raoul Snyman | Approve | ||
Review via email:
|
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)
Jon Tibble (meths) wrote : | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Raoul Snyman (raoul-snyman) : | # |
review:
Approve
lp:~meths/openlp/trivialfixes
updated
- 562. By Jon Tibble
-
Song editor fixes
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'openlp/plugins/songs/forms/editsongform.py' | |||
2 | --- openlp/plugins/songs/forms/editsongform.py 2009-09-12 17:31:03 +0000 | |||
3 | +++ openlp/plugins/songs/forms/editsongform.py 2009-09-21 02:42:59 +0000 | |||
4 | @@ -45,6 +45,7 @@ | |||
5 | 45 | Constructor | 45 | Constructor |
6 | 46 | """ | 46 | """ |
7 | 47 | QtGui.QDialog.__init__(self, parent) | 47 | QtGui.QDialog.__init__(self, parent) |
8 | 48 | self.parent = parent | ||
9 | 48 | self.setupUi(self) | 49 | self.setupUi(self) |
10 | 49 | # Connecting signals and slots | 50 | # Connecting signals and slots |
11 | 50 | QtCore.QObject.connect(self.AuthorAddButton, | 51 | QtCore.QObject.connect(self.AuthorAddButton, |
12 | @@ -52,13 +53,15 @@ | |||
13 | 52 | QtCore.QObject.connect(self.AuthorRemoveButton, | 53 | QtCore.QObject.connect(self.AuthorRemoveButton, |
14 | 53 | QtCore.SIGNAL(u'clicked()'), self.onAuthorRemoveButtonClicked) | 54 | QtCore.SIGNAL(u'clicked()'), self.onAuthorRemoveButtonClicked) |
15 | 54 | QtCore.QObject.connect(self.AuthorsListView, | 55 | QtCore.QObject.connect(self.AuthorsListView, |
17 | 55 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onAuthorsListViewPressed) | 56 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), |
18 | 57 | self.onAuthorsListViewPressed) | ||
19 | 56 | QtCore.QObject.connect(self.TopicAddButton, | 58 | QtCore.QObject.connect(self.TopicAddButton, |
20 | 57 | QtCore.SIGNAL(u'clicked()'), self.onTopicAddButtonClicked) | 59 | QtCore.SIGNAL(u'clicked()'), self.onTopicAddButtonClicked) |
21 | 58 | QtCore.QObject.connect(self.TopicRemoveButton, | 60 | QtCore.QObject.connect(self.TopicRemoveButton, |
22 | 59 | QtCore.SIGNAL(u'clicked()'), self.onTopicRemoveButtonClicked) | 61 | QtCore.SIGNAL(u'clicked()'), self.onTopicRemoveButtonClicked) |
23 | 60 | QtCore.QObject.connect(self.TopicsListView, | 62 | QtCore.QObject.connect(self.TopicsListView, |
25 | 61 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onTopicListViewPressed) | 63 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), |
26 | 64 | self.onTopicListViewPressed) | ||
27 | 62 | QtCore.QObject.connect(self.CopyrightInsertButton, | 65 | QtCore.QObject.connect(self.CopyrightInsertButton, |
28 | 63 | QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertButtonTriggered) | 66 | QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertButtonTriggered) |
29 | 64 | QtCore.QObject.connect(self.VerseAddButton, | 67 | QtCore.QObject.connect(self.VerseAddButton, |
30 | @@ -70,11 +73,15 @@ | |||
31 | 70 | QtCore.QObject.connect(self.VerseDeleteButton, | 73 | QtCore.QObject.connect(self.VerseDeleteButton, |
32 | 71 | QtCore.SIGNAL(u'clicked()'), self.onVerseDeleteButtonClicked) | 74 | QtCore.SIGNAL(u'clicked()'), self.onVerseDeleteButtonClicked) |
33 | 72 | QtCore.QObject.connect(self.VerseListWidget, | 75 | QtCore.QObject.connect(self.VerseListWidget, |
35 | 73 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onVerseListViewPressed) | 76 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), |
36 | 77 | self.onVerseListViewPressed) | ||
37 | 74 | QtCore.QObject.connect(self.SongbookCombo, | 78 | QtCore.QObject.connect(self.SongbookCombo, |
38 | 75 | QtCore.SIGNAL(u'activated(int)'), self.onSongBookComboChanged) | 79 | QtCore.SIGNAL(u'activated(int)'), self.onSongBookComboChanged) |
39 | 76 | QtCore.QObject.connect(self.ThemeSelectionComboItem, | 80 | QtCore.QObject.connect(self.ThemeSelectionComboItem, |
40 | 77 | QtCore.SIGNAL(u'activated(int)'), self.onThemeComboChanged) | 81 | QtCore.SIGNAL(u'activated(int)'), self.onThemeComboChanged) |
41 | 82 | QtCore.QObject.connect(self.ThemeAddButton, | ||
42 | 83 | QtCore.SIGNAL(u'clicked()'), | ||
43 | 84 | self.parent.parent.render_manager.theme_manager.onAddTheme) | ||
44 | 78 | QtCore.QObject.connect(self.MaintenanceButton, | 85 | QtCore.QObject.connect(self.MaintenanceButton, |
45 | 79 | QtCore.SIGNAL(u'clicked()'), self.onMaintenanceButtonClicked) | 86 | QtCore.SIGNAL(u'clicked()'), self.onMaintenanceButtonClicked) |
46 | 80 | QtCore.QObject.connect(self.TitleEditItem, | 87 | QtCore.QObject.connect(self.TitleEditItem, |
47 | @@ -89,7 +96,6 @@ | |||
48 | 89 | QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus) | 96 | QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus) |
49 | 90 | # Create other objects and forms | 97 | # Create other objects and forms |
50 | 91 | self.songmanager = songmanager | 98 | self.songmanager = songmanager |
51 | 92 | self.parent = parent | ||
52 | 93 | self.verse_form = EditVerseForm() | 99 | self.verse_form = EditVerseForm() |
53 | 94 | self.initialise() | 100 | self.initialise() |
54 | 95 | self.AuthorsListView.setSortingEnabled(False) | 101 | self.AuthorsListView.setSortingEnabled(False) |
55 | @@ -110,7 +116,8 @@ | |||
56 | 110 | for author in authors: | 116 | for author in authors: |
57 | 111 | row = self.AuthorsSelectionComboItem.count() | 117 | row = self.AuthorsSelectionComboItem.count() |
58 | 112 | self.AuthorsSelectionComboItem.addItem(author.display_name) | 118 | self.AuthorsSelectionComboItem.addItem(author.display_name) |
60 | 113 | self.AuthorsSelectionComboItem.setItemData(row, QtCore.QVariant(author.id)) | 119 | self.AuthorsSelectionComboItem.setItemData( |
61 | 120 | row, QtCore.QVariant(author.id)) | ||
62 | 114 | 121 | ||
63 | 115 | def loadTopics(self): | 122 | def loadTopics(self): |
64 | 116 | topics = self.songmanager.get_topics() | 123 | topics = self.songmanager.get_topics() |
65 | @@ -165,13 +172,15 @@ | |||
66 | 165 | title = self.song.search_title.split(u'@') | 172 | title = self.song.search_title.split(u'@') |
67 | 166 | if self.song.song_book_id != 0: | 173 | if self.song.song_book_id != 0: |
68 | 167 | book_name = self.songmanager.get_book(self.song.song_book_id) | 174 | book_name = self.songmanager.get_book(self.song.song_book_id) |
70 | 168 | id = self.SongbookCombo.findText(unicode(book_name.name), QtCore.Qt.MatchExactly) | 175 | id = self.SongbookCombo.findText( |
71 | 176 | unicode(book_name.name), QtCore.Qt.MatchExactly) | ||
72 | 169 | if id == -1: | 177 | if id == -1: |
73 | 170 | # Not Found | 178 | # Not Found |
74 | 171 | id = 0 | 179 | id = 0 |
75 | 172 | self.SongbookCombo.setCurrentIndex(id) | 180 | self.SongbookCombo.setCurrentIndex(id) |
76 | 173 | if self.song.theme_name is not None and len(self.song.theme_name) > 0: | 181 | if self.song.theme_name is not None and len(self.song.theme_name) > 0: |
78 | 174 | id = self.ThemeSelectionComboItem.findText(unicode(self.song.theme_name), QtCore.Qt.MatchExactly) | 182 | id = self.ThemeSelectionComboItem.findText( |
79 | 183 | unicode(self.song.theme_name), QtCore.Qt.MatchExactly) | ||
80 | 175 | if id == -1: | 184 | if id == -1: |
81 | 176 | # Not Found | 185 | # Not Found |
82 | 177 | id = 0 | 186 | id = 0 |
83 | @@ -272,7 +281,8 @@ | |||
84 | 272 | self.song.song_book_id = 0 | 281 | self.song.song_book_id = 0 |
85 | 273 | else: | 282 | else: |
86 | 274 | item = int(self.SongbookCombo.currentIndex()) | 283 | item = int(self.SongbookCombo.currentIndex()) |
88 | 275 | self.song.song_book_id = (self.SongbookCombo.itemData(item)).toInt()[0] | 284 | self.song.song_book_id = \ |
89 | 285 | (self.SongbookCombo.itemData(item)).toInt()[0] | ||
90 | 276 | 286 | ||
91 | 277 | def onThemeComboChanged(self, item): | 287 | def onThemeComboChanged(self, item): |
92 | 278 | if item == 0: | 288 | if item == 0: |
93 | @@ -337,7 +347,8 @@ | |||
94 | 337 | 347 | ||
95 | 338 | def _validate_song(self): | 348 | def _validate_song(self): |
96 | 339 | """ | 349 | """ |
98 | 340 | Check the validity of the form. Only display the 'save' if the data can be saved. | 350 | Check the validity of the form. Only display the 'save' if the data |
99 | 351 | can be saved. | ||
100 | 341 | """ | 352 | """ |
101 | 342 | log.debug(u'Validate Song') | 353 | log.debug(u'Validate Song') |
102 | 343 | # Lets be nice and assume the data is correct. | 354 | # Lets be nice and assume the data is correct. |
103 | @@ -345,26 +356,32 @@ | |||
104 | 345 | message = u'' | 356 | message = u'' |
105 | 346 | if len(self.TitleEditItem.displayText()) == 0: | 357 | if len(self.TitleEditItem.displayText()) == 0: |
106 | 347 | valid = False | 358 | valid = False |
108 | 348 | ##self.TitleEditItem.setStyleSheet(u'background-color: red; color: white') | 359 | #self.TitleEditItem.setStyleSheet( |
109 | 360 | # u'background-color: red; color: white') | ||
110 | 349 | self.SongTabWidget.setCurrentIndex(0) | 361 | self.SongTabWidget.setCurrentIndex(0) |
111 | 350 | self.TitleEditItem.setFocus() | 362 | self.TitleEditItem.setFocus() |
113 | 351 | return False, translate(u'SongFormDialog', u'You need to enter a song title.') | 363 | return False, translate( |
114 | 364 | u'SongFormDialog', u'You need to enter a song title.') | ||
115 | 352 | #else: | 365 | #else: |
116 | 353 | #self.TitleEditItem.setStyleSheet(u'') | 366 | #self.TitleEditItem.setStyleSheet(u'') |
117 | 354 | if self.VerseListWidget.count() == 0: | 367 | if self.VerseListWidget.count() == 0: |
118 | 355 | valid = False | 368 | valid = False |
120 | 356 | #self.VerseListWidget.setStyleSheet(u'background-color: red; color: white') | 369 | #self.VerseListWidget.setStyleSheet( |
121 | 370 | # u'background-color: red; color: white') | ||
122 | 357 | self.SongTabWidget.setCurrentIndex(0) | 371 | self.SongTabWidget.setCurrentIndex(0) |
123 | 358 | self.VerseListWidget.setFocus() | 372 | self.VerseListWidget.setFocus() |
125 | 359 | return False, translate(u'SongFormDialog', u'You need to enter some verses.') | 373 | return False, translate( |
126 | 374 | u'SongFormDialog', u'You need to enter some verses.') | ||
127 | 360 | #else: | 375 | #else: |
128 | 361 | #self.VerseListWidget.setStyleSheet(u'') | 376 | #self.VerseListWidget.setStyleSheet(u'') |
129 | 362 | if self.AuthorsListView.count() == 0: | 377 | if self.AuthorsListView.count() == 0: |
130 | 363 | valid = False | 378 | valid = False |
132 | 364 | #self.AuthorsListView.setStyleSheet(u'background-color: red; color: white') | 379 | #self.AuthorsListView.setStyleSheet( |
133 | 380 | # u'background-color: red; color: white') | ||
134 | 365 | self.SongTabWidget.setCurrentIndex(2) | 381 | self.SongTabWidget.setCurrentIndex(2) |
135 | 366 | self.AuthorsListView.setFocus() | 382 | self.AuthorsListView.setFocus() |
137 | 367 | return False, translate(u'SongFormDialog', u'You need to provide at least one author.') | 383 | return False, translate( |
138 | 384 | u'SongFormDialog', u'You need to provide at least one author.') | ||
139 | 368 | #else: | 385 | #else: |
140 | 369 | #self.AuthorsListView.setStyleSheet(u'') | 386 | #self.AuthorsListView.setStyleSheet(u'') |
141 | 370 | return valid, message | 387 | return valid, message |
142 | @@ -406,7 +423,8 @@ | |||
143 | 406 | return | 423 | return |
144 | 407 | self.song.title = unicode(self.TitleEditItem.displayText()) | 424 | self.song.title = unicode(self.TitleEditItem.displayText()) |
145 | 408 | self.song.copyright = unicode(self.CopyrightEditItem.displayText()) | 425 | self.song.copyright = unicode(self.CopyrightEditItem.displayText()) |
147 | 409 | self.song.search_title = unicode(self.TitleEditItem.displayText()) + u'@'+ unicode(self.AlternativeEdit.displayText()) | 426 | self.song.search_title = unicode(self.TitleEditItem.displayText()) + \ |
148 | 427 | u'@'+ unicode(self.AlternativeEdit.displayText()) | ||
149 | 410 | self.song.comments = unicode(self.CommentsEdit.toPlainText()) | 428 | self.song.comments = unicode(self.CommentsEdit.toPlainText()) |
150 | 411 | self.song.ccli_number = unicode(self.CCLNumberEdit.displayText()) | 429 | self.song.ccli_number = unicode(self.CCLNumberEdit.displayText()) |
151 | 412 | self.processLyrics() | 430 | self.processLyrics() |
152 | 413 | 431 | ||
153 | === modified file 'openlp/plugins/songs/lib/models.py' | |||
154 | --- openlp/plugins/songs/lib/models.py 2009-09-08 19:58:05 +0000 | |||
155 | +++ openlp/plugins/songs/lib/models.py 2009-09-21 00:47:10 +0000 | |||
156 | @@ -32,7 +32,7 @@ | |||
157 | 32 | def init_models(url): | 32 | def init_models(url): |
158 | 33 | engine = create_engine(url) | 33 | engine = create_engine(url) |
159 | 34 | metadata.bind = engine | 34 | metadata.bind = engine |
161 | 35 | session = scoped_session(sessionmaker(autoflush=True, | 35 | session = scoped_session(sessionmaker(autoflush=False, |
162 | 36 | autocommit=False, bind=engine)) | 36 | autocommit=False, bind=engine)) |
163 | 37 | mapper(Author, authors_table) | 37 | mapper(Author, authors_table) |
164 | 38 | mapper(Book, song_books_table) | 38 | mapper(Book, song_books_table) |
Fix issues with song editor