summaryrefslogtreecommitdiff
path: root/toolkit/src2xml
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/src2xml')
-rw-r--r--toolkit/src2xml/source/boxer.py12
-rw-r--r--toolkit/src2xml/source/src2xml.py14
2 files changed, 16 insertions, 10 deletions
diff --git a/toolkit/src2xml/source/boxer.py b/toolkit/src2xml/source/boxer.py
index c697ec8f1c52..1b716d757299 100644
--- a/toolkit/src2xml/source/boxer.py
+++ b/toolkit/src2xml/source/boxer.py
@@ -9,11 +9,11 @@ class DlgLayoutBuilder(object):
def addWidget (self, elem):
x, y = int(elem.getAttr('x')), int(elem.getAttr('y'))
- if self.rows.has_key(y):
- self.rows[y][x] = elem
- else:
- self.rows[y] = {}
- self.rows[y][x] = elem
+ self.rows[y] = self.rows.get (y, {})
+ while self.rows[y].has_key(x):
+ y += 1
+ self.rows[y] = self.rows.get (y, {})
+ self.rows[y][x] = elem
def build (self):
root = Element('vbox')
@@ -53,6 +53,8 @@ class Boxer(object):
newnode = Element(dlgnode.name)
newnode.clone(dlgnode)
+ if dlgnode.name == 'string':
+ return newnode
newnode.setAttr("xmlns", "http://openoffice.org/2007/layout")
newnode.setAttr("xmlns:cnt", "http://openoffice.org/2007/layout/container")
mx = DlgLayoutBuilder(newnode)
diff --git a/toolkit/src2xml/source/src2xml.py b/toolkit/src2xml/source/src2xml.py
index a2a7714b963d..b03c5e61ede1 100644
--- a/toolkit/src2xml/source/src2xml.py
+++ b/toolkit/src2xml/source/src2xml.py
@@ -127,7 +127,6 @@ def convert (file_name, options):
lexer.includeDirs = options.include_path
lexer.stopOnHeader = options.stopOnHeader
lexer.debugMacro = options.debug_macro
-# lexer.debug = True
if options.debug_lexer:
lexer.debug = True
lexer.tokenize()
@@ -145,8 +144,8 @@ def convert (file_name, options):
if options.debug_parser:
parser.debug = True
root = parser.parse()
- print root.dump()
- return
+ s = root.dump()
+ return s
# Parse the tokens.
root = parser.parse()
@@ -174,13 +173,18 @@ def post_process (s):
"""Make output directly usable by layout module."""
s = re.sub ('(</?)([a-z]+)-([a-z]+)-([a-z]+)', r'\1\2\3\4', s)
s = re.sub ('(</?)([a-z]+)-([a-z]+)', r'\1\2\3', s)
- s = re.sub ('(<(radiobutton|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
+ s = re.sub ('(<(checkbox|(cancel|help|ignore|ok|push|more|no|radio|reset|retry|yes)button|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
s = re.sub (' (height|width|x|y)="[0-9]*"', '', s)
+ s = re.sub (' (label|text|title)="', r' _\1="', s)
+ s = re.sub ('&([^m][^p]*[^;]*)', r'&amp;\1', s)
+ s = re.sub (' hide="(TRUE|true|1)"', ' show="false"', s)
s = s.replace ('<modaldialog', '<modaldialog sizeable="true"')
s = s.replace (' rid=', ' id=')
s = s.replace (' border="true"', ' has_border="true"')
- s = s.replace (' def-button="true"', ' default="true"')
+ s = s.replace (' def-button="true"', ' defbutton="true"')
+ s = s.replace (' drop-down="', ' dropdown="')
+ s = s.replace (' tab-stop="', ' tabstop="')
return s
XML_HEADER = '''<?xml version="1.0" encoding="UTF-8"?>