openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #22871
[Merge] lp:~googol/openlp/mainwindow-spelling into lp:openlp
Andreas Preikschat has proposed merging lp:~googol/openlp/mainwindow-spelling into lp:openlp.
Requested reviews:
Tim Bentley (trb143)
Raoul Snyman (raoul-snyman)
For more details, see:
https://code.launchpad.net/~googol/openlp/mainwindow-spelling/+merge/213443
- fixed a spelling mistake
[SUCCESS] http://ci.openlp.org/job/Branch-01-Pull/154/
[SUCCESS] http://ci.openlp.org/job/Branch-02-Functional-Tests/136/
[SUCCESS] http://ci.openlp.org/job/Branch-03-Interface-Tests/88/
[SUCCESS] http://ci.openlp.org/job/Branch-04-Windows_Tests/57/
--
https://code.launchpad.net/~googol/openlp/mainwindow-spelling/+merge/213443
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/searchedit.py'
--- openlp/core/lib/searchedit.py 2014-03-20 19:10:31 +0000
+++ openlp/core/lib/searchedit.py 2014-03-31 12:17:43 +0000
@@ -178,15 +178,7 @@
correct action on the button, and set the current search type (using the list of identifiers provided by the
developer), the ``searchTypeChanged(int)`` signal is emitted with the identifier.
"""
- sender = self.sender()
for action in self.menu_button.menu().actions():
+ # Why is this needed?
action.setChecked(False)
- self.menu_button.setDefaultAction(sender)
- self._current_search_type = sender.data()
- # setplaceholder_text has been implemented in Qt 4.7 and in at least
- # PyQt 4.9 (I am not sure, if it was implemented in PyQt 4.8).
- try:
- self.setPlaceholderText(self.menu_button.defaultAction().placeholder_text)
- except AttributeError:
- pass
- self.emit(QtCore.SIGNAL('searchTypeChanged(int)'), self._current_search_type)
+ self.set_current_search_type(self.sender().data())
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2014-03-20 19:10:31 +0000
+++ openlp/core/ui/mainwindow.py 2014-03-31 12:17:43 +0000
@@ -652,7 +652,7 @@
translate('OpenLP.MainWindow', 'Are you sure you want to re-run the First '
'Time Wizard?\n\nRe-running this wizard may make changes to your '
'current OpenLP configuration and possibly add songs to your '
- '#existing songs list and change your default theme.'),
+ 'existing songs list and change your default theme.'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
=== added file 'tests/interfaces/openlp_core_lib/test_searchedit.py'
--- tests/interfaces/openlp_core_lib/test_searchedit.py 1970-01-01 00:00:00 +0000
+++ tests/interfaces/openlp_core_lib/test_searchedit.py 2014-03-31 12:17:43 +0000
@@ -0,0 +1,137 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2014 Raoul Snyman #
+# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
+# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
+# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
+# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
+# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
+# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
+# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+"""
+Module to test the EditCustomForm.
+"""
+from unittest import TestCase
+from unittest.mock import MagicMock
+
+from PyQt4 import QtCore, QtGui, QtTest
+
+from openlp.core.common import Registry
+from openlp.core.lib.searchedit import SearchEdit
+from tests.helpers.testmixin import TestMixin
+
+
+class SearchTypes(object):
+ First = 0
+ Second = 1
+
+
+SECOND_PLACEHOLDER_TEXT = "Second Placeholder Text"
+SEARCH_TYPES = [(SearchTypes.First, QtGui.QIcon(), "First", "First Placeholder Text"),
+ (SearchTypes.Second, QtGui.QIcon(), "Second", SECOND_PLACEHOLDER_TEXT)]
+
+
+class TestSearchEdit(TestCase, TestMixin):
+ """
+ Test the EditCustomForm.
+ """
+ def setUp(self):
+ """
+ Create the UI
+ """
+ Registry.create()
+ self.get_application()
+ self.main_window = QtGui.QMainWindow()
+ Registry().register('main_window', self.main_window)
+
+ self.search_edit = SearchEdit(self.main_window)
+ # To complete set up we have to set the search types.
+ self.search_edit.set_search_types(SEARCH_TYPES)
+
+ def tearDown(self):
+ """
+ Delete all the C++ objects at the end so that we don't have a segfault
+ """
+ del self.main_window
+
+ def set_search_types_test(self):
+ """
+ Test setting the search types of the search edit.
+ """
+ # GIVEN: The search edit with the search types set. NOTE: The set_search_types(types) is called in the setUp()
+ # method!
+
+ # WHEN:
+
+ # THEN: The first search type should be the first one in the list.
+ assert self.search_edit.current_search_type() == SearchTypes.First, "The first search type should be selected."
+
+ def set_current_search_type_test(self):
+ """
+ Test if changing the search type works.
+ """
+ # GIVEN:
+ # WHEN: Change the search type
+ result = self.search_edit.set_current_search_type(SearchTypes.Second)
+
+ # THEN:
+ assert result, "The call should return success (True)."
+ assert self.search_edit.current_search_type() == SearchTypes.Second,\
+ "The search type should be SearchTypes.Second"
+ assert self.search_edit.placeholderText() == SECOND_PLACEHOLDER_TEXT,\
+ "The correct placeholder text should be 'Second Placeholder Text'."
+
+ def clear_button_visibility_test(self):
+ """
+ Test if the clear button is hidden/shown correctly.
+ """
+ # GIVEN: Everything is left to its defaults (hidden).
+ assert self.search_edit.clear_button.isHidden(), "Pre condition not met. Button should be hidden."
+
+ # WHEN: Type something in the search edit.
+ QtTest.QTest.keyPress(self.search_edit, QtCore.Qt.Key_A)
+ QtTest.QTest.keyRelease(self.search_edit, QtCore.Qt.Key_A)
+
+ # THEN: The clear button should not be hidden any more.
+ assert not self.search_edit.clear_button.isHidden(), "The clear button should be visible."
+
+ def press_clear_button_test(self):
+ """
+ Check if the search edit behaves correctly when pressing the clear button.
+ """
+ # GIVEN: A search edit with text.
+ QtTest.QTest.keyPress(self.search_edit, QtCore.Qt.Key_A)
+ QtTest.QTest.keyRelease(self.search_edit, QtCore.Qt.Key_A)
+
+ # WHEN: Press the clear button.
+ QtTest.QTest.mouseClick(self.search_edit.clear_button, QtCore.Qt.LeftButton)
+
+ # THEN: The search edit text should be cleared and the button be hidden.
+ assert not self.search_edit.text(), "The search edit should not have any text."
+ assert self.search_edit.clear_button.isHidden(), "The clear button should be hidden."
+
+ def resize_event_test(self):
+ """
+ Just check if the resizeEvent() method is re-implemented.
+ """
+ assert hasattr(self.search_edit, "resizeEvent"), "The search edit should re-implement the resizeEvent method."
+
+
\ No newline at end of file
Follow ups