openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #08702
[Merge] lp:~googol-hush/openlp/NoSearchResults into lp:openlp
Andreas Preikschat has proposed merging lp:~googol-hush/openlp/NoSearchResults into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
Related bugs:
Bug #739759 in OpenLP: "Fancy "no results" message in list boxes"
https://bugs.launchpad.net/openlp/+bug/739759
For more details, see:
https://code.launchpad.net/~googol-hush/openlp/NoSearchResults/+merge/60306
Hello,
Display "No Search Results" if the search did not match any song/bible verse.
I also intended to add this to the song export, but it works differently (so I didn't implement it there).
--
https://code.launchpad.net/~googol-hush/openlp/NoSearchResults/+merge/60306
Your team OpenLP Core is requested to review the proposed merge of lp:~googol-hush/openlp/NoSearchResults into lp:openlp.
=== modified file 'openlp/core/lib/__init__.py'
--- openlp/core/lib/__init__.py 2011-05-03 17:36:20 +0000
+++ openlp/core/lib/__init__.py 2011-05-08 11:41:39 +0000
@@ -223,6 +223,28 @@
painter.drawImage((width - realw) / 2, (height - realh) / 2, preview)
return new_image
+def check_search_result(treeWidget, search_results):
+ """
+ Checks if the given ``search_results`` is empty and adds a
+ "No Search Results" item to the given ``treeWidget``.
+
+ ``treeWidget``
+ The ``QTreeWidget`` where the "No Search Results" item should be added
+ to, if the ``search_results`` is empty.
+
+ ``search_results``
+ This can either be a list or a dict.
+ """
+ if search_results or treeWidget.count():
+ return
+ message = translate('OpenLP.MediaManagerItem', 'No Search Results')
+ item = QtGui.QListWidgetItem(message)
+ item.setFlags(QtCore.Qt.NoItemFlags)
+ font = QtGui.QFont()
+ font.setItalic(True)
+ item.setFont(font)
+ treeWidget.addItem(item)
+
def check_item_selected(list_widget, message):
"""
Check if a list item is selected so an action may be performed on it
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py 2011-05-01 13:27:19 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py 2011-05-08 11:41:39 +0000
@@ -29,7 +29,7 @@
from PyQt4 import QtCore, QtGui
from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \
- translate
+ translate, check_search_result
from openlp.core.lib.searchedit import SearchEdit
from openlp.core.lib.ui import UiStrings, add_widget_completer, \
media_item_combo_box, critical_error_message_box, find_and_set_in_combo_box
@@ -61,6 +61,7 @@
self.quickPreviewAllowed = True
self.search_results = {}
self.second_search_results = {}
+ check_search_result(self.listView, self.search_results)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
@@ -522,8 +523,9 @@
self.__checkSecondBible(bible, second_bible)
elif self.search_results:
self.displayResults(bible, second_bible)
- Receiver.send_message(u'cursor_normal')
self.advancedSearchButton.setEnabled(True)
+ check_search_result(self.listView, self.search_results)
+ Receiver.send_message(u'cursor_normal')
Receiver.send_message(u'openlp_process_events')
def onQuickSearchButton(self):
@@ -563,6 +565,7 @@
elif self.search_results:
self.displayResults(bible, second_bible)
self.quickSearchButton.setEnabled(True)
+ check_search_result(self.listView, self.search_results)
Receiver.send_message(u'cursor_normal')
Receiver.send_message(u'openlp_process_events')
=== modified file 'openlp/plugins/songs/forms/songexportform.py'
--- openlp/plugins/songs/forms/songexportform.py 2011-04-15 21:43:59 +0000
+++ openlp/plugins/songs/forms/songexportform.py 2011-05-08 11:41:39 +0000
@@ -329,7 +329,7 @@
self.availableListWidget, unicode(text))
]
for item in self._findListWidgetItems(self.availableListWidget):
- item.setHidden(False if item in search_result else True)
+ item.setHidden(item not in search_result)
def onUncheckButtonClicked(self):
"""
@@ -360,4 +360,5 @@
SettingsManager.get_last_dir(self.plugin.settingsSection, 1),
options=QtGui.QFileDialog.ShowDirsOnly))
SettingsManager.set_last_dir(self.plugin.settingsSection, path, 1)
- self.directoryLineEdit.setText(path)
\ No newline at end of file
+ self.directoryLineEdit.setText(path)
+
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py 2011-05-06 05:17:13 +0000
+++ openlp/plugins/songs/lib/mediaitem.py 2011-05-08 11:41:39 +0000
@@ -32,7 +32,7 @@
from sqlalchemy.sql import or_
from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \
- translate, check_item_selected, PluginStatus
+ translate, check_item_selected, PluginStatus, check_search_result
from openlp.core.lib.searchedit import SearchEdit
from openlp.core.lib.ui import UiStrings
from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \
@@ -199,6 +199,7 @@
search_results = self.parent.manager.get_all_objects(Song,
Song.theme_name == search_keywords)
self.displayResultsSong(search_results)
+ check_search_result(self.listView, search_results)
def onSongListLoad(self):
"""
Follow ups