diff options
Diffstat (limited to 'toolkit/src2xml')
-rw-r--r-- | toolkit/src2xml/source/boxer.py | 12 | ||||
-rw-r--r-- | toolkit/src2xml/source/src2xml.py | 14 |
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'&\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"?> |