From a4829c62ba1f408065ffb48b89239ab019e440b3 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Wed, 26 Mar 2014 12:26:16 +0100 Subject: [PATCH 1/2] Add missing arguments for debug mode Fixes: https://launchpad.net/bugs/1296574 --- openlp/core/ui/slidecontroller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index eb1f13fa6..7faf10ca2 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -471,7 +471,7 @@ class SlideController(DisplayController, RegistryProperties): category=self.category, triggers=self.live_escape) - def live_escape(self): + def live_escape(self, field=None): """ If you press ESC on the live screen it should close the display temporarily. """ @@ -1243,7 +1243,7 @@ class SlideController(DisplayController, RegistryProperties): if self.service_item: self.service_manager.add_service_item(self.service_item) - def on_go_live_click(self): + def on_go_live_click(self, field=None): """ triggered by clicking the Preview slide items """ @@ -1256,7 +1256,7 @@ class SlideController(DisplayController, RegistryProperties): self.on_media_close() self.on_go_live() - def on_go_live(self): + def on_go_live(self, field=None): """ If preview copy slide item to live controller from Preview Controller """ From bf32fe164a380cf18c3915976d57254f4a6f4cbe Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Wed, 26 Mar 2014 13:06:48 +0100 Subject: [PATCH 2/2] Test --- openlp/core/lib/ui.py | 6 +++-- tests/functional/openlp_core_lib/test_ui.py | 28 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 6d9e9e8f8..3126d1a56 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -74,11 +74,13 @@ def create_button_box(dialog, name, standard_buttons, custom_buttons=None): :param name: A string which is set as object name. :param standard_buttons: A list of strings for the used buttons. It might contain: ``ok``, ``save``, ``cancel``, ``close``, and ``defaults``. - :param custom_buttons: A list of additional buttons. If a item is a instance of QtGui.QAbstractButton it is added - with QDialogButtonBox.ActionRole. Other wise the item has to be a tuple of a button and a ButtonRole. + :param custom_buttons: A list of additional buttons. If an item is an instance of QtGui.QAbstractButton it is added + with QDialogButtonBox.ActionRole. Otherwise the item has to be a tuple of a Button and a ButtonRole. """ if custom_buttons is None: custom_buttons = [] + if standard_buttons is None: + standard_buttons = [] buttons = QtGui.QDialogButtonBox.NoButton if 'ok' in standard_buttons: buttons |= QtGui.QDialogButtonBox.Ok diff --git a/tests/functional/openlp_core_lib/test_ui.py b/tests/functional/openlp_core_lib/test_ui.py index 747005bd8..babc94a81 100644 --- a/tests/functional/openlp_core_lib/test_ui.py +++ b/tests/functional/openlp_core_lib/test_ui.py @@ -53,3 +53,31 @@ class TestUi(TestCase): # THEN: The wizard should have one page with a pixmap. self.assertEqual(1, len(wizard.pageIds()), 'The wizard should have one page.') self.assertIsInstance(wizard.page(0).pixmap(QtGui.QWizard.WatermarkPixmap), QtGui.QPixmap) + + def test_create_button_box(self): + """ + Test creating a button box for a dialog + """ + # GIVEN: A dialog + dialog = QtGui.QDialog() + + # WHEN: We create the button box with five buttons + btnbox = create_button_box(dialog, 'my_btns', ['ok', 'save', 'cancel', 'close', 'defaults']) + + # THEN: We should get a QDialogButtonBox with five buttons + self.assertIsInstance(btnbox, QtGui.QDialogButtonBox) + self.assertEqual(5, len(btnbox.buttons())) + + # WHEN: We create the button box with a custom button + btnbox = create_button_box(dialog, 'my_btns', None, [QtGui.QPushButton('Custom')]) + # THEN: We should get a QDialogButtonBox with one button + self.assertIsInstance(btnbox, QtGui.QDialogButtonBox) + self.assertEqual(1, len(btnbox.buttons())) + + # WHEN: We create the button box with a custom button and a custom role + btnbox = create_button_box(dialog, 'my_btns', None, + [(QtGui.QPushButton('Help'), QtGui.QDialogButtonBox.HelpRole)]) + # THEN: We should get a QDialogButtonBox with one button with a certain role + self.assertIsInstance(btnbox, QtGui.QDialogButtonBox) + self.assertEqual(1, len(btnbox.buttons())) + self.assertEqual(QtGui.QDialogButtonBox.HelpRole, btnbox.buttonRole(btnbox.buttons()[0]))