Jon Tibble has proposed merging lp:~meths/openlp/trivialfixes into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~meths/openlp/trivialfixes/+merge/48662

Cleanup, speedup and another UI library component
-- 
https://code.launchpad.net/~meths/openlp/trivialfixes/+merge/48662
Your team OpenLP Core is requested to review the proposed merge of 
lp:~meths/openlp/trivialfixes into lp:openlp.
=== modified file 'openlp/core/lib/ui.py'
--- openlp/core/lib/ui.py	2011-02-04 02:56:59 +0000
+++ openlp/core/lib/ui.py	2011-02-04 20:44:11 +0000
@@ -182,3 +182,11 @@
     action.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
     QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), function)
     return action
+
+def add_widget_completer(cache, widget):
+    """
+    Add a text autocompleter to a widget.
+    """
+    completer = QtGui.QCompleter(cache)
+    completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
+    widget.setCompleter(completer)

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2011-02-03 02:46:02 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2011-02-04 20:44:11 +0000
@@ -30,7 +30,8 @@
 
 from openlp.core.lib import MediaManagerItem, Receiver, BaseListWithDnD, \
     ItemCapabilities, translate
-from openlp.core.lib.ui import critical_error_message_box, media_item_combo_box
+from openlp.core.lib.ui import add_widget_completer, media_item_combo_box, \
+    critical_error_message_box
 from openlp.plugins.bibles.forms import BibleImportForm
 from openlp.plugins.bibles.lib import get_reference_match
 
@@ -379,9 +380,7 @@
                 book_data = bibles[bible].get_books()
                 books = [book.name for book in book_data]
                 books.sort()
-        completer = QtGui.QCompleter(books)
-        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
-        self.quickSearchEdit.setCompleter(completer)
+        add_widget_completer(books, self.quickSearchEdit)
 
     def onAdvancedVersionComboBox(self):
         self.initialiseBible(

=== modified file 'openlp/plugins/bibles/lib/opensong.py'
--- openlp/plugins/bibles/lib/opensong.py	2011-01-16 00:47:14 +0000
+++ openlp/plugins/bibles/lib/opensong.py	2011-02-04 20:44:11 +0000
@@ -38,7 +38,6 @@
     """
     OpenSong Bible format importer class.
     """
-
     def __init__(self, parent, **kwargs):
         """
         Constructor to create and set up an instance of the OpenSongBible
@@ -81,14 +80,13 @@
                             db_book.id,
                             int(chapter.attrib[u'n'].split()[-1]),
                             int(verse.attrib[u'n']),
-                            unicode(verse.text)
-                        )
-                        Receiver.send_message(u'openlp_process_events')
+                            unicode(verse.text))
                     self.wizard.incrementProgressBar(unicode(translate(
                         'BiblesPlugin.Opensong', 'Importing %s %s...',
                         'Importing <book name> <chapter>...')) %
                         (db_book.name, int(chapter.attrib[u'n'].split()[-1])))
-                    self.session.commit()
+                self.session.commit()
+            Receiver.send_message(u'openlp_process_events')
         except (IOError, AttributeError):
             log.exception(u'Loading bible from OpenSong file failed')
             success = False

=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py	2011-02-01 00:33:50 +0000
+++ openlp/plugins/custom/lib/mediaitem.py	2011-02-04 20:44:11 +0000
@@ -69,7 +69,7 @@
             QtCore.SIGNAL(u'custom_preview'), self.onPreviewClick)
 
     def initialise(self):
-        self.loadCustomListView(self.manager.get_all_objects(
+        self.loadList(self.manager.get_all_objects(
             CustomSlide, order_by_ref=CustomSlide.title))
         # Called to redisplay the custom list screen edith from a search
         # or from the exit of the Custom edit dialog. If remote editing is
@@ -80,7 +80,7 @@
             self.onPreviewClick()
         self.onRemoteEditClear()
 
-    def loadCustomListView(self, list):
+    def loadList(self, list):
         self.listView.clear()
         for customSlide in list:
             custom_name = QtGui.QListWidgetItem(customSlide.title)

=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py	2011-02-02 23:12:31 +0000
+++ openlp/plugins/songs/forms/editsongform.py	2011-02-04 20:44:11 +0000
@@ -30,7 +30,7 @@
 from PyQt4 import QtCore, QtGui
 
 from openlp.core.lib import Receiver, translate
-from openlp.core.lib.ui import critical_error_message_box
+from openlp.core.lib.ui import add_widget_completer, critical_error_message_box
 from openlp.plugins.songs.forms import EditVerseForm
 from openlp.plugins.songs.lib import SongXML, VerseType
 from openlp.plugins.songs.lib.db import Book, Song, Author, Topic
@@ -129,37 +129,26 @@
             self.authorsComboBox.setItemData(
                 row, QtCore.QVariant(author.id))
             self.authors.append(author.display_name)
-        completer = QtGui.QCompleter(self.authors)
-        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
-        self.authorsComboBox.setCompleter(completer)
+        add_widget_completer(self.authors, self.authorsComboBox)
 
     def loadTopics(self):
-        topics = self.manager.get_all_objects(Topic, order_by_ref=Topic.name)
-        self.topicsComboBox.clear()
-        self.topicsComboBox.addItem(u'')
         self.topics = []
-        for topic in topics:
-            row = self.topicsComboBox.count()
-            self.topicsComboBox.addItem(topic.name)
-            self.topics.append(topic.name)
-            self.topicsComboBox.setItemData(row, QtCore.QVariant(topic.id))
-        completer = QtGui.QCompleter(self.topics)
-        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
-        self.topicsComboBox.setCompleter(completer)
+        self.__loadObjects(Topic, self.topicsComboBox, self.topics)
 
     def loadBooks(self):
-        books = self.manager.get_all_objects(Book, order_by_ref=Book.name)
-        self.songBookComboBox.clear()
-        self.songBookComboBox.addItem(u'')
         self.books = []
-        for book in books:
-            row = self.songBookComboBox.count()
-            self.songBookComboBox.addItem(book.name)
-            self.books.append(book.name)
-            self.songBookComboBox.setItemData(row, QtCore.QVariant(book.id))
-        completer = QtGui.QCompleter(self.books)
-        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
-        self.songBookComboBox.setCompleter(completer)
+        self.__loadObjects(Book, self.songBookComboBox, self.books)
+
+    def __loadObjects(self, cls, combo, cache):
+        objects = self.manager.get_all_objects(cls, order_by_ref=cls.name)
+        combo.clear()
+        combo.addItem(u'')
+        for object in objects:
+            row = combo.count()
+            combo.addItem(object.name)
+            cache.append(object.name)
+            combo.setItemData(row, QtCore.QVariant(object.id))
+        add_widget_completer(cache, combo)
 
     def loadThemes(self, theme_list):
         self.themeComboBox.clear()
@@ -168,9 +157,7 @@
         for theme in theme_list:
             self.themeComboBox.addItem(theme)
             self.themes.append(theme)
-        completer = QtGui.QCompleter(self.themes)
-        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
-        self.themeComboBox.setCompleter(completer)
+        add_widget_completer(self.themes, self.themeComboBox)
 
     def newSong(self):
         log.debug(u'New Song')

_______________________________________________
Mailing list: https://launchpad.net/~openlp-core
Post to     : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to