forked from openlp/openlp
Fix up the theme class again
This commit is contained in:
parent
026c25facb
commit
f4023118db
@ -108,7 +108,7 @@ class ThemeXML(object):
|
|||||||
"""
|
"""
|
||||||
# Create the minidom document
|
# Create the minidom document
|
||||||
self.theme_xml = Document()
|
self.theme_xml = Document()
|
||||||
self.parse_xml(BLANK_THEME_XML)
|
#self.parse_xml(BLANK_THEME_XML)
|
||||||
|
|
||||||
def extend_image_filename(self, path):
|
def extend_image_filename(self, path):
|
||||||
"""
|
"""
|
||||||
@ -117,11 +117,12 @@ class ThemeXML(object):
|
|||||||
``path``
|
``path``
|
||||||
The path name to be added.
|
The path name to be added.
|
||||||
"""
|
"""
|
||||||
if self.background_filename and path:
|
if self.background_type == u'image':
|
||||||
self.theme_name = self.theme_name.strip()
|
if self.background_filename and path:
|
||||||
self.background_filename = self.background_filename.strip()
|
self.theme_name = self.theme_name.strip()
|
||||||
self.background_filename = os.path.join(path, self.theme_name,
|
self.background_filename = self.background_filename.strip()
|
||||||
self.background_filename)
|
self.background_filename = os.path.join(path, self.theme_name,
|
||||||
|
self.background_filename)
|
||||||
|
|
||||||
def new_document(self, name):
|
def new_document(self, name):
|
||||||
"""
|
"""
|
||||||
@ -362,7 +363,6 @@ class ThemeXML(object):
|
|||||||
The XML string to parse.
|
The XML string to parse.
|
||||||
"""
|
"""
|
||||||
self.parse_xml(unicode(xml))
|
self.parse_xml(unicode(xml))
|
||||||
print self
|
|
||||||
|
|
||||||
def parse_xml(self, xml):
|
def parse_xml(self, xml):
|
||||||
"""
|
"""
|
||||||
@ -383,20 +383,25 @@ 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
|
||||||
parent = element.getparent()
|
parent = element.getparent()
|
||||||
master = u''
|
master = u''
|
||||||
if parent is not None:
|
if parent is not None:
|
||||||
if element.getparent().tag == u'font':
|
if element.getparent().tag == u'font':
|
||||||
master = element.getparent().tag + u'_' + element.getparent().attrib[u'type']
|
master = element.getparent().tag + u'_' + \
|
||||||
|
element.getparent().attrib[u'type']
|
||||||
# set up Outline and Shadow Tags and move to font_main
|
# set up Outline and Shadow Tags and move to font_main
|
||||||
if element.getparent().tag == u'display':
|
if element.getparent().tag == u'display':
|
||||||
self._create_attr(u'font_main', element.tag, element.text)
|
if element.tag.startswith(u'shadow') or \
|
||||||
|
element.tag.startswith(u'outline'):
|
||||||
|
self._create_attr(u'font_main', element.tag, element.text)
|
||||||
master = element.getparent().tag
|
master = element.getparent().tag
|
||||||
if element.getparent().tag == u'background':
|
if element.getparent().tag == u'background':
|
||||||
master = element.getparent().tag
|
master = element.getparent().tag
|
||||||
if element.getparent().attrib:
|
if element.getparent().attrib:
|
||||||
for attr in element.getparent().attrib:
|
for attr in element.getparent().attrib:
|
||||||
self._create_attr(master, attr, element.getparent().attrib[attr])
|
self._create_attr(master, attr, \
|
||||||
|
element.getparent().attrib[attr])
|
||||||
if master:
|
if master:
|
||||||
if element.attrib:
|
if element.attrib:
|
||||||
for attr in element.attrib:
|
for attr in element.attrib:
|
||||||
@ -420,11 +425,11 @@ class ThemeXML(object):
|
|||||||
master = master.strip().lstrip()
|
master = master.strip().lstrip()
|
||||||
element = element.strip().lstrip()
|
element = element.strip().lstrip()
|
||||||
value = unicode(value).strip().lstrip()
|
value = unicode(value).strip().lstrip()
|
||||||
print "start", master, element, value
|
#print "start", master, element, value
|
||||||
if master == u'display':
|
if master == u'display':
|
||||||
if element == u'wrapStyle':
|
if element == u'wrapStyle':
|
||||||
return True, None, None, None
|
return True, None, None, None
|
||||||
if element == u'shadow' or element == u'outline':
|
if element.startswith(u'shadow') or element.startswith(u'outline'):
|
||||||
master = u'font_main'
|
master = u'font_main'
|
||||||
# fix bold font
|
# fix bold font
|
||||||
if element == u'weight':
|
if element == u'weight':
|
||||||
@ -435,7 +440,7 @@ class ThemeXML(object):
|
|||||||
value = True
|
value = True
|
||||||
if element == u'proportion':
|
if element == u'proportion':
|
||||||
element = u'size'
|
element = u'size'
|
||||||
print "end", master, element, value
|
#print "end", master, element, value
|
||||||
return False, master, element, value
|
return False, master, element, value
|
||||||
|
|
||||||
def _create_attr(self, master , element, value):
|
def _create_attr(self, master , element, value):
|
||||||
@ -448,9 +453,9 @@ class ThemeXML(object):
|
|||||||
return
|
return
|
||||||
field = self._de_hump(element)
|
field = self._de_hump(element)
|
||||||
tag = master + u'_' + field
|
tag = master + u'_' + field
|
||||||
if element in boolean_list:
|
if field in boolean_list:
|
||||||
setattr(self, tag, str_to_bool(value))
|
setattr(self, tag, str_to_bool(value))
|
||||||
elif element in integer_list:
|
elif field in integer_list:
|
||||||
setattr(self, tag, int(value))
|
setattr(self, tag, int(value))
|
||||||
else:
|
else:
|
||||||
# make string value unicode
|
# make string value unicode
|
||||||
|
Loading…
Reference in New Issue
Block a user