From 259b2b074f6f0a5d0c1c2f43b3d920709018814c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 31 Dec 2013 21:02:35 +0000 Subject: [PATCH] Fix widget --- openlp/core/ui/servicemanager.py | 10 ++++---- openlp/core/ui/thememanager.py | 6 ++--- .../openlp_core_ui/test_thememanager.py | 23 +++++++++++++++---- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index d492355e9..64184f225 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -106,11 +106,11 @@ class Ui_ServiceManager(object): Define the UI """ # start with the layout - self.layout = QtGui.QVBoxLayout(self) + self.layout = QtGui.QVBoxLayout(widget) self.layout.setSpacing(0) self.layout.setMargin(0) # Create the top toolbar - self.toolbar = OpenLPToolbar(self) + self.toolbar = OpenLPToolbar(widget) self.toolbar.add_toolbar_action('newService', text=UiStrings().NewService, icon=':/general/general_new.png', tooltip=UiStrings().CreateService, triggers=self.on_new_service_clicked) self.toolbar.add_toolbar_action('openService', text=UiStrings().OpenService, @@ -122,7 +122,7 @@ class Ui_ServiceManager(object): tooltip=translate('OpenLP.ServiceManager', 'Save this service.'), triggers=self.decide_save_method) self.toolbar.addSeparator() - self.theme_label = QtGui.QLabel('%s:' % UiStrings().Theme, self) + self.theme_label = QtGui.QLabel('%s:' % UiStrings().Theme, widget) self.theme_label.setMargin(3) self.theme_label.setObjectName('theme_label') self.toolbar.add_toolbar_widget(self.theme_label) @@ -135,7 +135,7 @@ class Ui_ServiceManager(object): self.toolbar.setObjectName('toolbar') self.layout.addWidget(self.toolbar) # Create the service manager list - self.service_manager_list = ServiceManagerList(self) + self.service_manager_list = ServiceManagerList(widget) self.service_manager_list.setEditTriggers( QtGui.QAbstractItemView.CurrentChanged | QtGui.QAbstractItemView.DoubleClicked | @@ -153,7 +153,7 @@ class Ui_ServiceManager(object): self.service_manager_list.__class__.dropEvent = self.drop_event self.layout.addWidget(self.service_manager_list) # Add the bottom toolbar - self.order_toolbar = OpenLPToolbar(self) + self.order_toolbar = OpenLPToolbar(widget) action_list = ActionList.get_instance() action_list.add_category(UiStrings().Service, CategoryOrder.standard_toolbar) self.service_manager_list.move_top = self.order_toolbar.add_toolbar_action( diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index fc38228ef..845f8f7e9 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -56,11 +56,11 @@ class Ui_ThemeManager(object): """ # start with the layout - self.layout = QtGui.QVBoxLayout(self) + self.layout = QtGui.QVBoxLayout(widget) self.layout.setSpacing(0) self.layout.setMargin(0) self.layout.setObjectName('layout') - self.toolbar = OpenLPToolbar(self) + self.toolbar = OpenLPToolbar(widget) self.toolbar.setObjectName('toolbar') self.toolbar.add_toolbar_action('newTheme', text=UiStrings().NewTheme, icon=':/themes/theme_new.png', @@ -93,7 +93,7 @@ class Ui_ThemeManager(object): self.theme_widget = QtGui.QWidgetAction(self.toolbar) self.theme_widget.setObjectName('theme_widget') # create theme manager list - self.theme_list_widget = QtGui.QListWidget(self) + self.theme_list_widget = QtGui.QListWidget(widget) self.theme_list_widget.setAlternatingRowColors(True) self.theme_list_widget.setIconSize(QtCore.QSize(88, 50)) self.theme_list_widget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) diff --git a/tests/interfaces/openlp_core_ui/test_thememanager.py b/tests/interfaces/openlp_core_ui/test_thememanager.py index 441159363..8b4b8be74 100644 --- a/tests/interfaces/openlp_core_ui/test_thememanager.py +++ b/tests/interfaces/openlp_core_ui/test_thememanager.py @@ -33,10 +33,7 @@ import os from unittest import TestCase from tempfile import mkstemp -from PyQt4 import QtGui, QtTest, QtCore - from openlp.core.common import Registry, Settings -from openlp.core.lib import ScreenList from openlp.core.ui import ThemeManager from tests.functional import patch, MagicMock @@ -98,5 +95,21 @@ class TestThemeManager(TestCase): self.theme_manager.build_theme_path() # THEN: - self.assertEqual(self.theme_manager.path, self.theme_manager.theme_form.path, - 'The theme path and the main path should be the same value') + assert self.theme_manager.thumb_path.startswith(self.theme_manager.path) is True, \ + 'The thumb path and the main path should start with the same value' + + def click_on_new_theme_test(self): + """ + Test the on_add_theme event handler is called by the UI + """ + # GIVEN: An initial form + Settings().setValue('themes/global theme', 'my_theme') + mocked_event = MagicMock() + self.theme_manager.on_add_theme = mocked_event + self.theme_manager.setup_ui(self.theme_manager) + + # WHEN displaying the UI and pressing cancel + new_theme = self.theme_manager.toolbar.actions['newTheme'] + new_theme.trigger() + + assert mocked_event.call_count == 1, 'The on_add_theme method should have been called once'