Esempio n. 1
0
    def test_set_background_type_int(self):
        """
        Test the background_type setter with an int
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.background_type = BackgroundType.Image

        # THEN: The combobox should be correct
        assert page.background_combo_box.currentIndex() == 2
Esempio n. 2
0
    def test_set_video_path(self):
        """
        Test the video_path setter
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.video_path = Path('openlp')

        # THEN: The result should be correct
        assert page.video_path_edit.path == Path('openlp')
Esempio n. 3
0
    def test_set_video_color(self):
        """
        Test the video_color setter
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.video_color = '#0f0'

        # THEN: The result should be correct
        assert page.video_color_button.color == '#0f0'
Esempio n. 4
0
    def test_set_gradient_end(self):
        """
        Test the gradient_end setter
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.gradient_end = '#0f0'

        # THEN: The result should be correct
        assert page.gradient_end_button.color == '#0f0'
Esempio n. 5
0
    def test_set_gradient_type_int(self):
        """
        Test the gradient_type setter with an int
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.gradient_type = BackgroundGradientType.Horizontal

        # THEN: The combobox should be correct
        assert page.gradient_combo_box.currentIndex() == 0
Esempio n. 6
0
    def test_set_background_type_str(self):
        """
        Test the background_type setter with a str
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        page.background_type = BackgroundType.to_string(
            BackgroundType.Gradient)

        # THEN: The combobox should be correct
        assert page.background_combo_box.currentIndex() == 1
Esempio n. 7
0
    def test_set_gradient_type_exception(self):
        """
        Test the gradient_type setter with something other than a str or int
        """
        # GIVEN: A BackgroundPage instance
        page = BackgroundPage()

        # WHEN: The property is set
        # THEN: An exception is raised
        with pytest.raises(
                TypeError,
                match='gradient_type must either be a string or an int'):
            page.gradient_type = []
Esempio n. 8
0
 def test_init_(self):
     """
     Test the initialisation of BackgroundPage
     """
     # GIVEN: The BackgroundPage class
     # WHEN: Initialising BackgroundPage
     # THEN: We should have an instance of the widget with no errors
     BackgroundPage()
Esempio n. 9
0
    def test_get_background_type(self):
        """
        Test the background_type getter
        """
        # GIVEN: A BackgroundPage instance with the combobox set to index 1
        page = BackgroundPage()
        page.background_combo_box.setCurrentIndex(1)

        # WHEN: The property is accessed
        result = page.background_type

        # THEN: The result should be correct
        assert result == 'gradient'
Esempio n. 10
0
    def test_get_video_path(self):
        """
        Test the video_path getter
        """
        # GIVEN: A BackgroundPage instance with the video_path edit set to a path
        page = BackgroundPage()
        page.video_path_edit.path = Path('.')

        # WHEN: The property is accessed
        result = page.video_path

        # THEN: The result should be correct
        assert result == Path('.')
Esempio n. 11
0
    def test_get_video_color(self):
        """
        Test the video_color getter
        """
        # GIVEN: A BackgroundPage instance with the video_color button set to #f0f
        page = BackgroundPage()
        page.video_color_button.color = '#f0f'

        # WHEN: The property is accessed
        result = page.video_color

        # THEN: The result should be correct
        assert result == '#f0f'
Esempio n. 12
0
    def test_get_gradient_end(self):
        """
        Test the gradient_end getter
        """
        # GIVEN: A BackgroundPage instance with the gradient_end button set to #f0f
        page = BackgroundPage()
        page.gradient_end_button.color = '#f0f'

        # WHEN: The property is accessed
        result = page.gradient_end

        # THEN: The result should be correct
        assert result == '#f0f'
Esempio n. 13
0
    def test_on_background_type_index_changed(self):
        """
        Test the _on_background_type_index_changed() slot
        """
        # GIVEN: And instance of BackgroundPage and some mock widgets
        page = BackgroundPage()
        page.color_widgets = [MagicMock()]
        page.gradient_widgets = [MagicMock()]

        # WHEN: _on_background_type_index_changed
        page._on_background_type_index_changed(1)

        # THEN: The correct widgets should be visible
        page.color_widgets[0].hide.assert_called_once()
        page.gradient_widgets[0].hide.assert_called_once()
        page.gradient_widgets[0].show.assert_called_once()
Esempio n. 14
0
 def setup_ui(self, theme_wizard):
     """
     Set up the UI
     """
     theme_wizard.setObjectName('OpenLP.ThemeWizard')
     theme_wizard.setWindowIcon(UiIcons().main_icon)
     theme_wizard.setModal(True)
     theme_wizard.setOptions(QtWidgets.QWizard.IndependentPages
                             | QtWidgets.QWizard.NoBackButtonOnStartPage
                             | QtWidgets.QWizard.HaveCustomButton1)
     theme_wizard.setFixedWidth(640)
     if is_macosx():  # pragma: no cover
         theme_wizard.setPixmap(
             QtWidgets.QWizard.BackgroundPixmap,
             QtGui.QPixmap(':/wizards/openlp-osx-wizard.png'))
     else:
         theme_wizard.setWizardStyle(QtWidgets.QWizard.ModernStyle)
     self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed,
                                         QtWidgets.QSizePolicy.Minimum)
     # Welcome Page
     add_welcome_page(theme_wizard, ':/wizards/wizard_createtheme.bmp')
     # Background Page
     self.background_page = BackgroundPage()
     self.background_page.setObjectName('background_page')
     theme_wizard.addPage(self.background_page)
     # Main Area Page
     self.main_area_page = FontSelectPage()
     self.main_area_page.setObjectName('main_area_page')
     theme_wizard.addPage(self.main_area_page)
     # Footer Area Page
     self.footer_area_page = FontSelectPage()
     self.footer_area_page.setObjectName('footer_area_page')
     self.footer_area_page.disable_features(FontSelectPage.Outline,
                                            FontSelectPage.Shadow,
                                            FontSelectPage.LineSpacing)
     theme_wizard.addPage(self.footer_area_page)
     # Alignment Page
     self.alignment_page = AlignmentTransitionsPage()
     self.alignment_page.setObjectName('alignment_page')
     theme_wizard.addPage(self.alignment_page)
     # Area Position Page
     self.area_position_page = AreaPositionPage()
     self.area_position_page.setObjectName('area_position_page')
     theme_wizard.addPage(self.area_position_page)
     # Preview Page
     self.preview_page = QtWidgets.QWizardPage()
     self.preview_page.setObjectName('preview_page')
     self.preview_layout = QtWidgets.QVBoxLayout(self.preview_page)
     self.preview_layout.setObjectName('preview_layout')
     self.theme_name_layout = QtWidgets.QFormLayout()
     self.theme_name_layout.setObjectName('theme_name_layout')
     self.theme_name_label = QtWidgets.QLabel(self.preview_page)
     self.theme_name_label.setObjectName('theme_name_label')
     self.theme_name_edit = QtWidgets.QLineEdit(self.preview_page)
     self.theme_name_edit.setValidator(
         QtGui.QRegExpValidator(QtCore.QRegExp(r'[^/\\?*|<>\[\]":<>+%]+'),
                                self))
     self.theme_name_edit.setObjectName('ThemeNameEdit')
     self.theme_name_layout.addRow(self.theme_name_label,
                                   self.theme_name_edit)
     self.preview_layout.addLayout(self.theme_name_layout)
     self.preview_area = QtWidgets.QWidget(self.preview_page)
     self.preview_area.setObjectName('PreviewArea')
     self.preview_area_layout = AspectRatioLayout(
         self.preview_area, 0.75)  # Dummy ratio, will be update
     self.preview_area_layout.margin = 8
     self.preview_area_layout.setSpacing(0)
     self.preview_area_layout.setObjectName('preview_web_layout')
     self.preview_box = ThemePreviewRenderer(self)
     self.preview_box.setObjectName('preview_box')
     self.preview_area_layout.addWidget(self.preview_box)
     self.preview_layout.addWidget(self.preview_area)
     theme_wizard.addPage(self.preview_page)
     self.retranslate_ui(theme_wizard)
Esempio n. 15
0
class Ui_ThemeWizard(object):
    """
    The Create/Edit theme wizard
    """
    def setup_ui(self, theme_wizard):
        """
        Set up the UI
        """
        theme_wizard.setObjectName('OpenLP.ThemeWizard')
        theme_wizard.setWindowIcon(UiIcons().main_icon)
        theme_wizard.setModal(True)
        theme_wizard.setOptions(QtWidgets.QWizard.IndependentPages
                                | QtWidgets.QWizard.NoBackButtonOnStartPage
                                | QtWidgets.QWizard.HaveCustomButton1)
        theme_wizard.setFixedWidth(640)
        if is_macosx():  # pragma: no cover
            theme_wizard.setPixmap(
                QtWidgets.QWizard.BackgroundPixmap,
                QtGui.QPixmap(':/wizards/openlp-osx-wizard.png'))
        else:
            theme_wizard.setWizardStyle(QtWidgets.QWizard.ModernStyle)
        self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed,
                                            QtWidgets.QSizePolicy.Minimum)
        # Welcome Page
        add_welcome_page(theme_wizard, ':/wizards/wizard_createtheme.bmp')
        # Background Page
        self.background_page = BackgroundPage()
        self.background_page.setObjectName('background_page')
        theme_wizard.addPage(self.background_page)
        # Main Area Page
        self.main_area_page = FontSelectPage()
        self.main_area_page.setObjectName('main_area_page')
        theme_wizard.addPage(self.main_area_page)
        # Footer Area Page
        self.footer_area_page = FontSelectPage()
        self.footer_area_page.setObjectName('footer_area_page')
        self.footer_area_page.disable_features(FontSelectPage.Outline,
                                               FontSelectPage.Shadow,
                                               FontSelectPage.LineSpacing)
        theme_wizard.addPage(self.footer_area_page)
        # Alignment Page
        self.alignment_page = AlignmentTransitionsPage()
        self.alignment_page.setObjectName('alignment_page')
        theme_wizard.addPage(self.alignment_page)
        # Area Position Page
        self.area_position_page = AreaPositionPage()
        self.area_position_page.setObjectName('area_position_page')
        theme_wizard.addPage(self.area_position_page)
        # Preview Page
        self.preview_page = QtWidgets.QWizardPage()
        self.preview_page.setObjectName('preview_page')
        self.preview_layout = QtWidgets.QVBoxLayout(self.preview_page)
        self.preview_layout.setObjectName('preview_layout')
        self.theme_name_layout = QtWidgets.QFormLayout()
        self.theme_name_layout.setObjectName('theme_name_layout')
        self.theme_name_label = QtWidgets.QLabel(self.preview_page)
        self.theme_name_label.setObjectName('theme_name_label')
        self.theme_name_edit = QtWidgets.QLineEdit(self.preview_page)
        self.theme_name_edit.setValidator(
            QtGui.QRegExpValidator(QtCore.QRegExp(r'[^/\\?*|<>\[\]":<>+%]+'),
                                   self))
        self.theme_name_edit.setObjectName('ThemeNameEdit')
        self.theme_name_layout.addRow(self.theme_name_label,
                                      self.theme_name_edit)
        self.preview_layout.addLayout(self.theme_name_layout)
        self.preview_area = QtWidgets.QWidget(self.preview_page)
        self.preview_area.setObjectName('PreviewArea')
        self.preview_area_layout = AspectRatioLayout(
            self.preview_area, 0.75)  # Dummy ratio, will be update
        self.preview_area_layout.margin = 8
        self.preview_area_layout.setSpacing(0)
        self.preview_area_layout.setObjectName('preview_web_layout')
        self.preview_box = ThemePreviewRenderer(self)
        self.preview_box.setObjectName('preview_box')
        self.preview_area_layout.addWidget(self.preview_box)
        self.preview_layout.addWidget(self.preview_area)
        theme_wizard.addPage(self.preview_page)
        self.retranslate_ui(theme_wizard)

    def retranslate_ui(self, theme_wizard):
        """
        Translate the UI on the fly
        """
        theme_wizard.setWindowTitle(
            translate('OpenLP.ThemeWizard', 'Theme Wizard'))
        text = translate('OpenLP.ThemeWizard', 'Welcome to the Theme Wizard')
        self.title_label.setText(
            '<span style="font-size:14pt; font-weight:600;">{text}</span>'.
            format(text=text))
        self.information_label.setText(
            translate(
                'OpenLP.ThemeWizard',
                'This wizard will help you to create and edit your themes. Click the next '
                'button below to start the process by setting up your background.'
            ))
        self.background_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Set Up Background'))
        self.background_page.setSubTitle(
            translate(
                'OpenLP.ThemeWizard', 'Set up your theme\'s background '
                'according to the parameters below.'))
        self.main_area_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Main Area Font Details'))
        self.main_area_page.setSubTitle(
            translate(
                'OpenLP.ThemeWizard', 'Define the font and display '
                'characteristics for the Display text'))
        self.footer_area_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Footer Area Font Details'))
        self.footer_area_page.setSubTitle(
            translate(
                'OpenLP.ThemeWizard', 'Define the font and display '
                'characteristics for the Footer text'))
        self.alignment_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Text Formatting Details'))
        self.alignment_page.setSubTitle(
            translate(
                'OpenLP.ThemeWizard', 'Allows additional display '
                'formatting information to be defined'))
        self.area_position_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Output Area Locations'))
        self.area_position_page.setSubTitle(
            translate(
                'OpenLP.ThemeWizard', 'Allows you to change and move the'
                ' Main and Footer areas.'))
        theme_wizard.setOption(QtWidgets.QWizard.HaveCustomButton1, False)
        theme_wizard.setButtonText(
            QtWidgets.QWizard.CustomButton1,
            translate('OpenLP.ThemeWizard', 'Layout Preview'))
        self.preview_page.setTitle(
            translate('OpenLP.ThemeWizard', 'Preview and Save'))
        self.preview_page.setSubTitle(
            translate('OpenLP.ThemeWizard', 'Preview the theme and save it.'))
        self.theme_name_label.setText(
            translate('OpenLP.ThemeWizard', 'Theme name:'))