forked from openlp/openlp
Position Tab updates
This commit is contained in:
parent
4f7566c76b
commit
cc4acf4edd
|
@ -42,16 +42,16 @@ BLANK_THEME_XML = \
|
||||||
'''<?xml version="1.0" encoding="utf-8"?>
|
'''<?xml version="1.0" encoding="utf-8"?>
|
||||||
<theme version="1.0">
|
<theme version="1.0">
|
||||||
<name>BlankStyle</name>
|
<name>BlankStyle</name>
|
||||||
<background type="solid" mode="opaque">
|
<background type="image">
|
||||||
<color>#000000</color>
|
<filename></filename>
|
||||||
</background>
|
</background>
|
||||||
<background type="gradient" mode="opaque">
|
<background type="gradient">
|
||||||
<startColor>#000000</startColor>
|
<startColor>#000000</startColor>
|
||||||
<endColor>#000000</endColor>
|
<endColor>#000000</endColor>
|
||||||
<direction>vertical</direction>
|
<direction>vertical</direction>
|
||||||
</background>
|
</background>
|
||||||
<background type="image" mode="opaque">
|
<background type="solid">
|
||||||
<filename></filename>
|
<color>#000000</color>
|
||||||
</background>
|
</background>
|
||||||
<font type="main">
|
<font type="main">
|
||||||
<name>Arial</name>
|
<name>Arial</name>
|
||||||
|
@ -70,9 +70,9 @@ BLANK_THEME_XML = \
|
||||||
<size>12</size>
|
<size>12</size>
|
||||||
<bold>False</bold>
|
<bold>False</bold>
|
||||||
<italics>False</italics>
|
<italics>False</italics>
|
||||||
|
<line_adjustment>0</line_adjustment>
|
||||||
<shadow shadowColor="#000000" shadowSize="5">True</shadow>
|
<shadow shadowColor="#000000" shadowSize="5">True</shadow>
|
||||||
<outline outlineColor="#000000" outlineSize="2">False</outline>
|
<outline outlineColor="#000000" outlineSize="2">False</outline>
|
||||||
<line_adjustment>0</line_adjustment>
|
|
||||||
<location override="False" x="10" y="690" width="1004" height="78"/>
|
<location override="False" x="10" y="690" width="1004" height="78"/>
|
||||||
</font>
|
</font>
|
||||||
<display>
|
<display>
|
||||||
|
@ -383,7 +383,7 @@ class ThemeXML(object):
|
||||||
# print objectify.dump(theme_xml)
|
# print objectify.dump(theme_xml)
|
||||||
xml_iter = theme_xml.getiterator()
|
xml_iter = theme_xml.getiterator()
|
||||||
for element in xml_iter:
|
for element in xml_iter:
|
||||||
#print "base",element.getparent(), element.tag, element.text, element.attrib
|
#print "base", element.getparent(), element.tag, element.text, element.attrib
|
||||||
parent = element.getparent()
|
parent = element.getparent()
|
||||||
master = u''
|
master = u''
|
||||||
if parent is not None:
|
if parent is not None:
|
||||||
|
@ -403,6 +403,8 @@ class ThemeXML(object):
|
||||||
self._create_attr(master, attr, \
|
self._create_attr(master, attr, \
|
||||||
element.getparent().attrib[attr])
|
element.getparent().attrib[attr])
|
||||||
if master:
|
if master:
|
||||||
|
#print "A", element.tag
|
||||||
|
self._create_attr(master, element.tag, element.text)
|
||||||
if element.attrib:
|
if element.attrib:
|
||||||
for attr in element.attrib:
|
for attr in element.attrib:
|
||||||
base_element = attr
|
base_element = attr
|
||||||
|
@ -412,11 +414,10 @@ class ThemeXML(object):
|
||||||
base_element = element.tag + u'_' + attr
|
base_element = element.tag + u'_' + attr
|
||||||
self._create_attr(master, base_element,
|
self._create_attr(master, base_element,
|
||||||
element.attrib[attr])
|
element.attrib[attr])
|
||||||
else:
|
|
||||||
self._create_attr(master, element.tag, element.text)
|
|
||||||
else:
|
else:
|
||||||
|
#print "C", element.tag
|
||||||
if element.tag == u'name':
|
if element.tag == u'name':
|
||||||
self._create_attr(u'theme', element.tag, element.text)
|
self._create_attr(u'theme', element.tag, element.text)
|
||||||
|
|
||||||
def _translate_tags(self, master, element, value):
|
def _translate_tags(self, master, element, value):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -215,7 +215,7 @@ class ThemeManager(QtGui.QWidget):
|
||||||
Loads a new theme with the default settings and then launches the theme
|
Loads a new theme with the default settings and then launches the theme
|
||||||
editing form for the user to make their customisations.
|
editing form for the user to make their customisations.
|
||||||
"""
|
"""
|
||||||
theme = self.createThemeFromXml(self.baseTheme(), self.path)
|
theme = ThemeXML() #self.createThemeFromXml(self.baseTheme(), self.path)
|
||||||
#self.amendThemeForm.loadTheme(theme)
|
#self.amendThemeForm.loadTheme(theme)
|
||||||
self.saveThemeName = u''
|
self.saveThemeName = u''
|
||||||
self.themeWizardForm.theme = theme
|
self.themeWizardForm.theme = theme
|
||||||
|
|
|
@ -157,28 +157,44 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
self.onFooterDefaultPositionCheckBox)
|
self.onFooterDefaultPositionCheckBox)
|
||||||
|
|
||||||
def onOutlineCheckCheckBoxChanged(self, state):
|
def onOutlineCheckCheckBoxChanged(self, state):
|
||||||
|
"""
|
||||||
|
Change statd as Outline check box changed
|
||||||
|
"""
|
||||||
self.outlineColorPushButton.setEnabled(state)
|
self.outlineColorPushButton.setEnabled(state)
|
||||||
self.outlineSizeSpinBox.setEnabled(state)
|
self.outlineSizeSpinBox.setEnabled(state)
|
||||||
|
|
||||||
def onShadowCheckCheckBoxChanged(self, state):
|
def onShadowCheckCheckBoxChanged(self, state):
|
||||||
|
"""
|
||||||
|
Change state as Shadow check box changed
|
||||||
|
"""
|
||||||
self.shadowColorPushButton.setEnabled(state)
|
self.shadowColorPushButton.setEnabled(state)
|
||||||
self.shadowSizeSpinBox.setEnabled(state)
|
self.shadowSizeSpinBox.setEnabled(state)
|
||||||
|
|
||||||
def onMainDefaultPositionCheckBox(self, state):
|
def onMainDefaultPositionCheckBox(self, value):
|
||||||
print "main", state
|
"""
|
||||||
print self.field(u'mainDefaultPosition')
|
Change state as Main Area Position check box changed
|
||||||
self.theme.font_main_override = self.field(u'mainDefaultPosition')
|
"""
|
||||||
print self.theme.font_main_override, type(self.theme.font_main_override)
|
if value == QtCore.Qt.Checked:
|
||||||
self.mainXSpinBox.setEnabled(not state)
|
self.theme.font_main_override = False
|
||||||
self.mainYSpinBox.setEnabled(not state)
|
else:
|
||||||
self.mainHeightSpinBox.setEnabled(not state)
|
self.theme.font_main_override = True
|
||||||
self.mainWidthSpinBox.setEnabled(not state)
|
self.mainXSpinBox.setEnabled(self.theme.font_main_override)
|
||||||
|
self.mainYSpinBox.setEnabled(self.theme.font_main_override)
|
||||||
|
self.mainHeightSpinBox.setEnabled(self.theme.font_main_override)
|
||||||
|
self.mainWidthSpinBox.setEnabled(self.theme.font_main_override)
|
||||||
|
|
||||||
def onFooterDefaultPositionCheckBox(self, state):
|
def onFooterDefaultPositionCheckBox(self, value):
|
||||||
self.footerXSpinBox.setEnabled(not state)
|
"""
|
||||||
self.footerYSpinBox.setEnabled(not state)
|
Change state as Footer Area Position check box changed
|
||||||
self.footerHeightSpinBox.setEnabled(not state)
|
"""
|
||||||
self.footerWidthSpinBox.setEnabled(not state)
|
if value == QtCore.Qt.Checked:
|
||||||
|
self.theme.font_footer_override = False
|
||||||
|
else:
|
||||||
|
self.theme.font_footer_override = True
|
||||||
|
self.footerXSpinBox.setEnabled(self.theme.font_footer_override)
|
||||||
|
self.footerYSpinBox.setEnabled(self.theme.font_footer_override)
|
||||||
|
self.footerHeightSpinBox.setEnabled(self.theme.font_footer_override)
|
||||||
|
self.footerWidthSpinBox.setEnabled(self.theme.font_footer_override)
|
||||||
|
|
||||||
def exec_(self):
|
def exec_(self):
|
||||||
"""
|
"""
|
||||||
|
@ -189,7 +205,7 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
|
|
||||||
def validateCurrentPage(self):
|
def validateCurrentPage(self):
|
||||||
"""
|
"""
|
||||||
Validate the current page before moving on to the next page.
|
Handle Tab specific code when moving between Tabs.
|
||||||
"""
|
"""
|
||||||
print "CURRENT id", self.currentId()
|
print "CURRENT id", self.currentId()
|
||||||
# Preview Screen
|
# Preview Screen
|
||||||
|
@ -200,6 +216,9 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def setBackgroundTabValues(self):
|
def setBackgroundTabValues(self):
|
||||||
|
"""
|
||||||
|
Handle the display and State of the background display tab.
|
||||||
|
"""
|
||||||
if self.theme.background_type == \
|
if self.theme.background_type == \
|
||||||
BackgroundType.to_string(BackgroundType.Solid):
|
BackgroundType.to_string(BackgroundType.Solid):
|
||||||
self.setField(u'background_type', QtCore.QVariant(0))
|
self.setField(u'background_type', QtCore.QVariant(0))
|
||||||
|
@ -265,7 +284,10 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
else:
|
else:
|
||||||
self.setField(u'gradient', QtCore.QVariant(4))
|
self.setField(u'gradient', QtCore.QVariant(4))
|
||||||
|
|
||||||
def setMainAreaTabValues(self):#
|
def setMainAreaTabValues(self):
|
||||||
|
"""
|
||||||
|
Handle the display and State of the Main Area tab.
|
||||||
|
"""
|
||||||
self.mainFontComboBox.setCurrentFont(
|
self.mainFontComboBox.setCurrentFont(
|
||||||
QtGui.QFont(self.theme.font_main_name))
|
QtGui.QFont(self.theme.font_main_name))
|
||||||
self.mainColorPushButton.setStyleSheet(u'background-color: %s' %
|
self.mainColorPushButton.setStyleSheet(u'background-color: %s' %
|
||||||
|
@ -292,6 +314,9 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
QtCore.QVariant(self.theme.font_main_italics))
|
QtCore.QVariant(self.theme.font_main_italics))
|
||||||
|
|
||||||
def setFooterAreaTabValues(self):
|
def setFooterAreaTabValues(self):
|
||||||
|
"""
|
||||||
|
Handle the display and State of the Footer Area tab.
|
||||||
|
"""
|
||||||
self.footerFontComboBox.setCurrentFont(
|
self.footerFontComboBox.setCurrentFont(
|
||||||
QtGui.QFont(self.theme.font_main_name))
|
QtGui.QFont(self.theme.font_main_name))
|
||||||
self.footerColorPushButton.setStyleSheet(u'background-color: %s' %
|
self.footerColorPushButton.setStyleSheet(u'background-color: %s' %
|
||||||
|
@ -300,8 +325,11 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
QtCore.QVariant(self.theme.font_footer_size))
|
QtCore.QVariant(self.theme.font_footer_size))
|
||||||
|
|
||||||
def setPositionTabValues(self):
|
def setPositionTabValues(self):
|
||||||
self.setField(u'mainDefaultPosition', \
|
print self.theme.font_main_override
|
||||||
QtCore.QVariant(self.theme.font_main_override))
|
if self.theme.font_main_override:
|
||||||
|
self.setField(u'mainDefaultPosition', QtCore.QVariant(False))
|
||||||
|
else:
|
||||||
|
self.setField(u'mainDefaultPosition', QtCore.QVariant(True))
|
||||||
self.setField(u'mainPositionX', \
|
self.setField(u'mainPositionX', \
|
||||||
QtCore.QVariant(self.theme.font_main_x))
|
QtCore.QVariant(self.theme.font_main_x))
|
||||||
self.setField(u'mainPositionY', \
|
self.setField(u'mainPositionY', \
|
||||||
|
@ -310,8 +338,10 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
QtCore.QVariant(self.theme.font_main_height))
|
QtCore.QVariant(self.theme.font_main_height))
|
||||||
self.setField(u'mainPositionWidth', \
|
self.setField(u'mainPositionWidth', \
|
||||||
QtCore.QVariant(self.theme.font_main_width))
|
QtCore.QVariant(self.theme.font_main_width))
|
||||||
self.setField(u'mainDefaultPosition', \
|
if self.theme.font_footer_override:
|
||||||
QtCore.QVariant(self.theme.font_main_override))
|
self.setField(u'footerDefaultPosition', QtCore.QVariant(False))
|
||||||
|
else:
|
||||||
|
self.setField(u'footerDefaultPosition', QtCore.QVariant(True))
|
||||||
self.setField(u'footerPositionX', \
|
self.setField(u'footerPositionX', \
|
||||||
QtCore.QVariant(self.theme.font_footer_x))
|
QtCore.QVariant(self.theme.font_footer_x))
|
||||||
self.setField(u'footerPositionY', \
|
self.setField(u'footerPositionY', \
|
||||||
|
@ -325,6 +355,9 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def setDefaults(self):
|
def setDefaults(self):
|
||||||
|
"""
|
||||||
|
Set up display at start of theme edit.
|
||||||
|
"""
|
||||||
self.restart()
|
self.restart()
|
||||||
self.setBackgroundTabValues()
|
self.setBackgroundTabValues()
|
||||||
self.setMainAreaTabValues()
|
self.setMainAreaTabValues()
|
||||||
|
@ -334,10 +367,11 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
# Set up field states
|
# Set up field states
|
||||||
self.onOutlineCheckCheckBoxChanged(self.theme.font_main_outline)
|
self.onOutlineCheckCheckBoxChanged(self.theme.font_main_outline)
|
||||||
self.onShadowCheckCheckBoxChanged(self.theme.font_main_shadow)
|
self.onShadowCheckCheckBoxChanged(self.theme.font_main_shadow)
|
||||||
self.onMainDefaultPositionCheckBox(self.theme.font_main_override)
|
|
||||||
self.onFooterDefaultPositionCheckBox(self.theme.font_footer_override)
|
|
||||||
|
|
||||||
def registerFields(self):
|
def registerFields(self):
|
||||||
|
"""
|
||||||
|
Map field names to screen names,
|
||||||
|
"""
|
||||||
self.backgroundPage.registerField(
|
self.backgroundPage.registerField(
|
||||||
u'background_type', self.backgroundTypeComboBox)
|
u'background_type', self.backgroundTypeComboBox)
|
||||||
self.backgroundPage.registerField(
|
self.backgroundPage.registerField(
|
||||||
|
@ -396,10 +430,16 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
u'footerPositionHeight', self.footerHeightSpinBox)
|
u'footerPositionHeight', self.footerHeightSpinBox)
|
||||||
|
|
||||||
def onBackgroundComboBox(self, index):
|
def onBackgroundComboBox(self, index):
|
||||||
|
"""
|
||||||
|
Background style Combo box has changed.
|
||||||
|
"""
|
||||||
self.theme.background_type = BackgroundType.to_string(index)
|
self.theme.background_type = BackgroundType.to_string(index)
|
||||||
self.setBackgroundTabValues()
|
self.setBackgroundTabValues()
|
||||||
|
|
||||||
def onGradientComboBox(self, index):
|
def onGradientComboBox(self, index):
|
||||||
|
"""
|
||||||
|
Background gradient Combo box has changed.
|
||||||
|
"""
|
||||||
self.theme.background_direction = \
|
self.theme.background_direction = \
|
||||||
BackgroundGradientType.to_string(index)
|
BackgroundGradientType.to_string(index)
|
||||||
self.setBackgroundTabValues()
|
self.setBackgroundTabValues()
|
||||||
|
@ -454,6 +494,10 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
self.setFooterAreaTabValues()
|
self.setFooterAreaTabValues()
|
||||||
|
|
||||||
def updateTheme(self):
|
def updateTheme(self):
|
||||||
|
"""
|
||||||
|
Update the theme object from the UI for fields not already updated
|
||||||
|
when the are changed.
|
||||||
|
"""
|
||||||
# main page
|
# main page
|
||||||
self.theme.font_main_name = \
|
self.theme.font_main_name = \
|
||||||
self.mainFontComboBox.currentFont().family()
|
self.mainFontComboBox.currentFont().family()
|
||||||
|
@ -472,9 +516,23 @@ class ThemeWizardForm(QtGui.QWizard, Ui_ThemeWizard):
|
||||||
self.footerFontComboBox.currentFont().family()
|
self.footerFontComboBox.currentFont().family()
|
||||||
self.theme.font_footer_size = \
|
self.theme.font_footer_size = \
|
||||||
self.field(u'footerSizeSpinBox').toInt()[0]
|
self.field(u'footerSizeSpinBox').toInt()[0]
|
||||||
|
# position page
|
||||||
|
self.theme.font_main_x = self.field(u'mainPositionX').toInt()[0]
|
||||||
|
self.theme.font_main_y = self.field(u'mainPositionY').toInt()[0]
|
||||||
|
self.theme.font_main_height = \
|
||||||
|
self.field(u'mainPositionHeight').toInt()[0]
|
||||||
|
self.theme.font_main_width = self.field(u'mainPositionWidth').toInt()[0]
|
||||||
|
self.theme.font_footer_x = self.field(u'footerPositionX').toInt()[0]
|
||||||
|
self.theme.font_footer_y = self.field(u'footerPositionY').toInt()[0]
|
||||||
|
self.theme.font_footer_height = \
|
||||||
|
self.field(u'footerPositionHeight').toInt()[0]
|
||||||
|
self.theme.font_footer_width = \
|
||||||
|
self.field(u'footerPositionWidth').toInt()[0]
|
||||||
|
|
||||||
def _colorButton(self, field):
|
def _colorButton(self, field):
|
||||||
print field
|
"""
|
||||||
|
Handle Color buttons
|
||||||
|
"""
|
||||||
new_color = QtGui.QColorDialog.getColor(
|
new_color = QtGui.QColorDialog.getColor(
|
||||||
QtGui.QColor(field), self)
|
QtGui.QColor(field), self)
|
||||||
if new_color.isValid():
|
if new_color.isValid():
|
||||||
|
|
Loading…
Reference in New Issue