openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #00626
[Merge] lp:~trb143/openlp/fixes into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/fixes into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
Added new theme features.
Line wrap indentation and display number of lines in a theme
--
https://code.launchpad.net/~trb143/openlp/fixes/+merge/13800
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/renderer.py'
--- openlp/core/lib/renderer.py 2009-10-19 14:56:44 +0000
+++ openlp/core/lib/renderer.py 2009-10-22 19:10:23 +0000
@@ -196,6 +196,10 @@
split_text = line[:pos]
split_lines.append(split_text)
line = line[pos:]
+ #if we have more text add up to 10 spaces on the front.
+ if len(line) > 0 :
+ line = u'%s%s' % \
+ (u' '[:self._theme.font_main_indentation], line)
#Text fits in a line now
for line in split_lines:
page.append(line)
=== modified file 'openlp/core/lib/themexmlhandler.py'
--- openlp/core/lib/themexmlhandler.py 2009-10-18 07:49:47 +0000
+++ openlp/core/lib/themexmlhandler.py 2009-10-22 19:10:23 +0000
@@ -51,6 +51,7 @@
<proportion>30</proportion>
<weight>Normal</weight>
<italics>False</italics>
+ <indentation>0</indentation>
<location override="False" x="0" y="0" width="0" height="0"/>
</font>
<font type="footer">
@@ -59,6 +60,7 @@
<proportion>12</proportion>
<weight>Normal</weight>
<italics>False</italics>
+ <indentation>0</indentation>
<location override="False" x="0" y="0" width="0" height="0"/>
</font>
<display>
@@ -167,7 +169,7 @@
self.child_element(background, u'filename', filename)
def add_font(self, name, color, proportion, override, fonttype=u'main',
- weight=u'Normal', italics=u'False', xpos=0, ypos=0, width=0, height=0):
+ weight=u'Normal', italics=u'False', indentation=0, xpos=0, ypos=0, width=0, height=0):
"""
Add a Font.
@@ -192,6 +194,9 @@
``italics``
Does the font render to italics Defaults to 0 Normal
+ ``indentation``
+ Number of characters the wrap line is indented
+
``xpos``
The X position of the text block.
@@ -217,6 +222,9 @@
self.child_element(background, u'weight', weight)
#Create italics name element
self.child_element(background, u'italics', italics)
+ #Create indentation name element
+ self.child_element(background, u'indentation', unicode(indentation))
+
#Create Location element
element = self.theme_xml.createElement(u'location')
element.setAttribute(u'override',override)
=== modified file 'openlp/core/ui/amendthemedialog.py'
--- openlp/core/ui/amendthemedialog.py 2009-10-01 23:43:16 +0000
+++ openlp/core/ui/amendthemedialog.py 2009-10-22 19:10:23 +0000
@@ -177,6 +177,16 @@
self.FontMainWeightLabel.setObjectName("FontMainWeightLabel")
self.MainFontLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.FontMainWeightLabel)
self.MainLeftLayout.addWidget(self.FontMainGroupBox)
+ self.FontMainWrapIndentationLabel = QtGui.QLabel(self.FontMainGroupBox)
+ self.FontMainWrapIndentationLabel.setObjectName("FontMainWrapIndentationLabel")
+ self.MainFontLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.FontMainWrapIndentationLabel)
+ self.FontMainLineSpacingSpinBox = QtGui.QSpinBox(self.FontMainGroupBox)
+ self.FontMainLineSpacingSpinBox.setObjectName("FontMainLineSpacingSpinBox")
+ self.FontMainLineSpacingSpinBox.setMaximum(10)
+ self.MainFontLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.FontMainLineSpacingSpinBox)
+ self.FontMainLinesPageLabel = QtGui.QLabel(self.FontMainGroupBox)
+ self.FontMainLinesPageLabel.setObjectName("FontMainLinesPageLabel")
+ self.MainFontLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.FontMainLinesPageLabel)
spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.MainLeftLayout.addItem(spacerItem1)
self.FontMainLayout.addWidget(self.MainLeftWidget)
@@ -528,7 +538,9 @@
AmendThemeDialog.setTabOrder(self.GradientComboBox, self.FontMainComboBox)
AmendThemeDialog.setTabOrder(self.FontMainComboBox, self.FontMainColorPushButton)
AmendThemeDialog.setTabOrder(self.FontMainColorPushButton, self.FontMainSizeSpinBox)
- AmendThemeDialog.setTabOrder(self.FontMainSizeSpinBox, self.FontMainDefaultCheckBox)
+ AmendThemeDialog.setTabOrder(self.FontMainSizeSpinBox, self.FontMainWeightComboBox)
+ AmendThemeDialog.setTabOrder(self.FontMainWeightComboBox, self.FontMainLineSpacingSpinBox)
+ AmendThemeDialog.setTabOrder(self.FontMainLineSpacingSpinBox, self.FontMainDefaultCheckBox)
AmendThemeDialog.setTabOrder(self.FontMainDefaultCheckBox, self.FontMainXSpinBox)
AmendThemeDialog.setTabOrder(self.FontMainXSpinBox, self.FontMainYSpinBox)
AmendThemeDialog.setTabOrder(self.FontMainYSpinBox, self.FontMainWidthSpinBox)
@@ -536,7 +548,8 @@
AmendThemeDialog.setTabOrder(self.FontMainHeightSpinBox, self.FontFooterComboBox)
AmendThemeDialog.setTabOrder(self.FontFooterComboBox, self.FontFooterColorPushButton)
AmendThemeDialog.setTabOrder(self.FontFooterColorPushButton, self.FontFooterSizeSpinBox)
- AmendThemeDialog.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterDefaultCheckBox)
+ AmendThemeDialog.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterWeightComboBox)
+ AmendThemeDialog.setTabOrder(self.FontFooterWeightComboBox, self.FontFooterDefaultCheckBox)
AmendThemeDialog.setTabOrder(self.FontFooterDefaultCheckBox, self.FontFooterXSpinBox)
AmendThemeDialog.setTabOrder(self.FontFooterXSpinBox, self.FontFooterYSpinBox)
AmendThemeDialog.setTabOrder(self.FontFooterYSpinBox, self.FontFooterWidthSpinBox)
@@ -571,10 +584,11 @@
self.FontMainColorLabel.setText(translate(u'AmendThemeDialog', u'Font Color:'))
self.FontMainSize.setText(translate(u'AmendThemeDialog', u'Size:'))
self.FontMainSizeSpinBox.setSuffix(translate(u'AmendThemeDialog', u'pt'))
- self.FontMainWeightComboBox.setItemText(0, translate("AmendThemeDialog", u'Normal'))
- self.FontMainWeightComboBox.setItemText(1, translate("AmendThemeDialog", u'Bold'))
- self.FontMainWeightComboBox.setItemText(2, translate("AmendThemeDialog", u'Italics'))
- self.FontMainWeightComboBox.setItemText(3, translate("AmendThemeDialog", u'Bold/Italics'))
+ self.FontMainWrapIndentationLabel.setText(translate(u'AmendThemeDialog', u'Wrap Indentation'))
+ self.FontMainWeightComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Normal'))
+ self.FontMainWeightComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Bold'))
+ self.FontMainWeightComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Italics'))
+ self.FontMainWeightComboBox.setItemText(3, translate(u'AmendThemeDialog', u'Bold/Italics'))
self.FontMainWeightLabel.setText(translate("AmendThemeDialog", u'Font Weight:'))
self.MainLocationGroupBox.setTitle(translate(u'AmendThemeDialog', u'Display Location'))
self.DefaultLocationLabel.setText(translate(u'AmendThemeDialog', u'Use Default Location:'))
=== modified file 'openlp/core/ui/amendthemeform.py'
--- openlp/core/ui/amendthemeform.py 2009-09-26 18:22:10 +0000
+++ openlp/core/ui/amendthemeform.py 2009-10-22 19:10:23 +0000
@@ -100,6 +100,9 @@
QtCore.QObject.connect(self.FontMainHeightSpinBox,
QtCore.SIGNAL(u'editingFinished()'),
self.onFontMainHeightSpinBoxChanged)
+ QtCore.QObject.connect(self.FontMainLineSpacingSpinBox,
+ QtCore.SIGNAL(u'editingFinished()'),
+ self.onFontMainLineSpacingSpinBoxChanged)
QtCore.QObject.connect(self.FontFooterDefaultCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'),
self.onFontFooterDefaultCheckBoxChanged)
@@ -150,6 +153,7 @@
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_indentation),
unicode(self.theme.font_main_x),
unicode(self.theme.font_main_y),
unicode(self.theme.font_main_width),
@@ -160,6 +164,7 @@
unicode(self.theme.font_footer_override), u'footer',
unicode(self.theme.font_footer_weight),
unicode(self.theme.font_footer_italics),
+ 0,
unicode(self.theme.font_footer_x),
unicode(self.theme.font_footer_y),
unicode(self.theme.font_footer_width),
@@ -187,6 +192,7 @@
self.theme.parse(xml)
self.theme.extend_image_filename(self.path)
self.thememanager.cleanTheme(self.theme)
+ # Stop the initial screen setup generating 1 preview per field!
self.allowPreview = False
self.paintUi(self.theme)
self.allowPreview = True
@@ -252,6 +258,8 @@
self.FontMainWidthSpinBox.setValue(int(self.theme.font_main_width))
self.FontMainHeightSpinBox.setValue(int( \
self.theme.font_main_height))
+ self.FontMainLineSpacingSpinBox.setValue(int( \
+ self.theme.font_main_indentation))
self.stateChanging(self.theme)
self.previewTheme(self.theme)
@@ -270,6 +278,11 @@
self.theme.font_main_width = self.FontMainWidthSpinBox.value()
self.previewTheme(self.theme)
+ def onFontMainLineSpacingSpinBoxChanged(self):
+ if self.theme.font_main_indentation != self.FontMainLineSpacingSpinBox.value():
+ self.theme.font_main_indentation = self.FontMainLineSpacingSpinBox.value()
+ self.previewTheme(self.theme)
+
def onFontMainHeightSpinBoxChanged(self):
if self.theme.font_main_height != self.FontMainHeightSpinBox.value():
self.theme.font_main_height = self.FontMainHeightSpinBox.value()
@@ -498,7 +511,7 @@
self.FontMainWeightComboBox.setCurrentIndex(2)
else:
self.FontMainWeightComboBox.setCurrentIndex(3)
-
+ self.FontMainLineSpacingSpinBox.setValue(int(self.theme.font_main_indentation))
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))
@@ -653,5 +666,17 @@
def previewTheme(self, theme):
if self.allowPreview:
+ #calculate main number of rows
+ main_weight = 50
+ if self.theme.font_main_weight == u'Bold':
+ main_weight = 75
+ mainFont = QtGui.QFont(self.theme.font_main_name,
+ int(self.theme.font_main_proportion), # size
+ int(main_weight), # weight
+ self.theme.font_main_italics)# italic
+ metrics = QtGui.QFontMetrics(mainFont)
+ page_length = (int(self.FontMainHeightSpinBox.value()) / metrics.height() - 2 ) - 1
+ self.FontMainLinesPageLabel.setText(
+ translate(u'ThemeManager', u'Slide Height is %s rows' % page_length ))
frame = self.thememanager.generateImage(theme)
self.ThemePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py 2009-10-19 17:17:38 +0000
+++ openlp/core/ui/thememanager.py 2009-10-22 19:10:23 +0000
@@ -510,6 +510,7 @@
theme.font_main_color = theme.font_main_color.strip()
theme.font_main_height = theme.font_main_height.strip()
theme.font_main_italics = str_to_bool(theme.font_main_italics)
+ theme.font_main_indentation = int(theme.font_main_indentation)
theme.font_main_name = theme.font_main_name.strip()
#theme.font_main_override
theme.font_main_proportion = theme.font_main_proportion.strip()
=== modified file 'resources/forms/amendthemedialog.ui'
--- resources/forms/amendthemedialog.ui 2009-04-21 19:45:50 +0000
+++ resources/forms/amendthemedialog.ui 2009-10-22 19:10:23 +0000
@@ -17,7 +17,7 @@
<string>Theme Maintance</string>
</property>
<property name="windowIcon">
- <iconset resource="../images/openlp-2.qrc">
+ <iconset>
<normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
</property>
<property name="modal">
@@ -64,7 +64,7 @@
<item>
<widget class="QTabWidget" name="ThemeTabWidget">
<property name="currentIndex">
- <number>0</number>
+ <number>2</number>
</property>
<widget class="QWidget" name="BackgroundTab">
<attribute name="title">
@@ -312,14 +312,31 @@
<height>0</height>
</size>
</property>
+ <property name="suffix">
+ <string>pt</string>
+ </property>
+ <property name="maximum">
+ <number>999</number>
+ </property>
<property name="value">
<number>16</number>
</property>
- <property name="suffix">
- <string>pt</string>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="FontMainWrapIndentationLabel">
+ <property name="text">
+ <string>Wrap Indentation</string>
</property>
- <property name="maximum">
- <number>999</number>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QSpinBox" name="FontMainLineSpacingSpinBox"/>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QLabel" name="FontMainLinesPageLabel">
+ <property name="text">
+ <string>TextLabel</string>
</property>
</widget>
</item>
@@ -425,15 +442,15 @@
<height>0</height>
</size>
</property>
- <property name="value">
- <number>0</number>
- </property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
+ <property name="value">
+ <number>0</number>
+ </property>
</widget>
</item>
<item row="2" column="1">
@@ -609,15 +626,15 @@
<height>0</height>
</size>
</property>
+ <property name="suffix">
+ <string>pt</string>
+ </property>
+ <property name="maximum">
+ <number>999</number>
+ </property>
<property name="value">
<number>10</number>
</property>
- <property name="suffix">
- <string>pt</string>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
</widget>
</item>
</layout>
@@ -728,15 +745,15 @@
<height>0</height>
</size>
</property>
- <property name="value">
- <number>0</number>
- </property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
+ <property name="value">
+ <number>0</number>
+ </property>
</widget>
</item>
<item row="2" column="1">
@@ -753,15 +770,15 @@
<height>0</height>
</size>
</property>
- <property name="value">
- <number>0</number>
- </property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
+ <property name="value">
+ <number>0</number>
+ </property>
</widget>
</item>
<item row="3" column="1">
Follow ups