diff --git a/openlp/core/lib/themexmlhandler.py b/openlp/core/lib/themexmlhandler.py index bbb4a0c2a..787ca16de 100644 --- a/openlp/core/lib/themexmlhandler.py +++ b/openlp/core/lib/themexmlhandler.py @@ -161,7 +161,7 @@ class ThemeXML(object): #Create Filename element self.child_element(background, u'filename', filename) - def add_font(self, name, color, proportion, override, fonttype=u'main', + def add_font(self, name, color, proportion, override, fonttype=u'main', weight=50, italics=0, xpos=0, ypos=0, width=0, height=0): """ Add a Font. @@ -181,6 +181,12 @@ class ThemeXML(object): ``fonttype`` The type of font, ``main`` or ``footer``. Defaults to ``main``. + ``weight`` + The weight of then font Defaults to 50 Normal + + ``italics`` + Does the font render to italics Defaults to 0 Normal + ``xpos`` The X position of the text block. @@ -202,8 +208,10 @@ class ThemeXML(object): self.child_element(background, u'color', color) #Create Proportion name element self.child_element(background, u'proportion', proportion) - #Create Proportion name element - self.child_element(background, u'proportion', proportion) + #Create weight name element + self.child_element(background, u'weight', weight) + #Create italics name element + self.child_element(background, u'italics', italics) #Create Location element element = self.theme_xml.createElement(u'location') element.setAttribute(u'override',override) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 3b52ba215..fd966f54e 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -53,7 +53,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): QtCore.SIGNAL(u'pressed()'), self.onShadowColorPushButtonClicked) QtCore.QObject.connect(self.ImageToolButton, QtCore.SIGNAL(u'pressed()'), self.onImageToolButtonClicked) - #Combo boxes QtCore.QObject.connect(self.BackgroundComboBox, QtCore.SIGNAL(u'activated(int)'), self.onBackgroundComboBoxSelected) @@ -63,13 +62,17 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): QtCore.SIGNAL(u'activated(int)'), self.onGradientComboBoxSelected) QtCore.QObject.connect(self.FontMainComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontMainComboBoxSelected) + QtCore.QObject.connect(self.FontMainWeightComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onFontMainWeightComboBoxSelected) QtCore.QObject.connect(self.FontFooterComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontFooterComboBoxSelected) + QtCore.QObject.connect(self.FontFooterWeightComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onFontFooterWeightComboBoxSelected) QtCore.QObject.connect(self.HorizontalComboBox, QtCore.SIGNAL(u'activated(int)'), self.onHorizontalComboBoxSelected) QtCore.QObject.connect(self.VerticalComboBox, QtCore.SIGNAL(u'activated(int)'), self.onVerticalComboBoxSelected) - + #Spin boxes QtCore.QObject.connect(self.FontMainSizeSpinBox, QtCore.SIGNAL(u'editingFinished()'), self.onFontMainSizeSpinBoxChanged) QtCore.QObject.connect(self.FontFooterSizeSpinBox, @@ -118,10 +121,12 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): new_theme.add_font(unicode(self.theme.font_main_name), unicode(self.theme.font_main_color), unicode(self.theme.font_main_proportion), unicode(self.theme.font_main_override), u'main', + unicode(self.theme.font_main_weight), unicode(self.theme.font_main_italics), unicode(self.theme.font_main_x), unicode(self.theme.font_main_y), unicode(self.theme.font_main_width), unicode(self.theme.font_main_height)) new_theme.add_font(unicode(self.theme.font_footer_name), unicode(self.theme.font_footer_color), unicode(self.theme.font_footer_proportion), unicode(self.theme.font_footer_override), u'footer', + unicode(self.theme.font_footer_weight), unicode(self.theme.font_footer_italics), unicode(self.theme.font_footer_x), unicode(self.theme.font_footer_y), unicode(self.theme.font_footer_width), unicode(self.theme.font_footer_height) ) new_theme.add_display(unicode(self.theme.display_shadow), unicode(self.theme.display_shadow_color), @@ -159,6 +164,21 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.theme.font_main_name = self.FontMainComboBox.currentFont().family() self.previewTheme(self.theme) + def onFontMainWeightComboBoxSelected(self, value): + if value ==0: + self.theme.font_main_weight = 50 + self.theme.font_main_italics = 0 + elif value == 1: + self.theme.font_main_weight = 75 + self.theme.font_main_italics = 0 + elif value == 2: + self.theme.font_main_weight = 50 + self.theme.font_main_italics = 1 + else: + self.theme.font_main_weight = 75 + self.theme.font_main_italics = 1 + self.previewTheme(self.theme) + def onFontMainColorPushButtonClicked(self): self.theme.font_main_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.theme.font_main_color), self).name() @@ -217,6 +237,21 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.theme.font_footer_name = self.FontFooterComboBox.currentFont().family() self.previewTheme(self.theme) + def onFontFooterWeightComboBoxSelected(self, value): + if value == 0: + self.theme.font_footer_weight = 50 + self.theme.font_footer_italics = 0 + elif value == 1: + self.theme.font_footer_weight = 75 + self.theme.font_footer_italics = 0 + elif value == 2: + self.theme.font_footer_weight = 50 + self.theme.font_footer_italics = 1 + else: + self.theme.font_footer_weight = 75 + self.theme.font_footer_italics = 1 + self.previewTheme(self.theme) + def onFontFooterColorPushButtonClicked(self): self.theme.font_footer_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.theme.font_footer_color), self).name() @@ -410,11 +445,28 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.GradientComboBox.setCurrentIndex(2) self.FontMainSizeSpinBox.setValue(int(self.theme.font_main_proportion)) + if int(self.theme.font_main_italics) == 0 and int(self.theme.font_main_weight) == 50: + self.FontMainWeightComboBox.setCurrentIndex(0) + elif int(self.theme.font_main_italics) == 0 and int(self.theme.font_main_weight) == 75: + self.FontMainWeightComboBox.setCurrentIndex(1) + elif int(self.theme.font_main_italics) == 1 and int(self.theme.font_main_weight) == 50: + self.FontMainWeightComboBox.setCurrentIndex(2) + else: + self.FontMainWeightComboBox.setCurrentIndex(3) + self.FontMainXSpinBox.setValue(int(self.theme.font_main_x)) self.FontMainYSpinBox.setValue(int(self.theme.font_main_y)) self.FontMainWidthSpinBox.setValue(int(self.theme.font_main_width)) self.FontMainHeightSpinBox.setValue(int(self.theme.font_main_height)) self.FontFooterSizeSpinBox.setValue(int(self.theme.font_footer_proportion)) + if int(self.theme.font_footer_italics) == 0 and int(self.theme.font_footer_weight) == 50: + self.FontFooterWeightComboBox.setCurrentIndex(0) + elif int(self.theme.font_footer_italics) == 0 and int(self.theme.font_footer_weight) == 75: + self.FontFooterWeightComboBox.setCurrentIndex(1) + elif int(self.theme.font_footer_italics) == 1 and int(self.theme.font_footer_weight) == 50: + self.FontFooterWeightComboBox.setCurrentIndex(2) + else: + self.FontFooterWeightComboBox.setCurrentIndex(3) self.FontFooterXSpinBox.setValue(int(self.theme.font_footer_x)) self.FontFooterYSpinBox.setValue(int(self.theme.font_footer_y)) self.FontFooterWidthSpinBox.setValue(int(self.theme.font_footer_width)) @@ -529,7 +581,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): else: self.ShadowColorPushButton.setEnabled(False) - def previewTheme(self, theme): if self.allowPreview: frame = self.thememanager.generateImage(theme)