]> git.lyx.org Git - features.git/commitdiff
lyx_2_0.py: fix reversion routine for \makebox support
authorUwe Stöhr <uwestoehr@web.de>
Thu, 8 Jul 2010 02:24:13 +0000 (02:24 +0000)
committerUwe Stöhr <uwestoehr@web.de>
Thu, 8 Jul 2010 02:24:13 +0000 (02:24 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34807 a592a061-630c-0410-9148-cb99ea01b6c8

lib/lyx2lyx/lyx_2_0.py

index 075f68c279be6a946fc2c7243102cd19ca0b5a51..169539b9a91c76cab9273a5646402b9b6e532cbb 100644 (file)
@@ -1849,6 +1849,8 @@ def revert_makebox(document):
     # only revert frameless boxes without an inner box
     i = find_token(document.body, '\\begin_inset Box Frameless', i)
     if i == -1:
+      # remove the option use_makebox
+      revert_use_makebox(document)
       return
     z = find_end_of_inset(document.body, i)
     if z == -1:
@@ -1856,30 +1858,41 @@ def revert_makebox(document):
       return
     j = find_token(document.body, 'use_makebox 1', i)
     # assure we found the makebox of the current box
-    if j > z or j == -1:
-      return
-    y = find_token(document.body, "\\begin_layout", i)
-    if y > z or y == -1:
-      document.warning("Malformed LyX document: Can't find layout in box.")
-      return
-    # remove the \end_layout \end_inset pair
-    document.body[z - 2:z + 1] = put_cmd_in_ert("}")
-    # determine the alignment
-    k = find_token(document.body, 'hor_pos', j - 4)
-    align = document.body[k][9]
-    # determine the width
-    l = find_token(document.body, 'width "', j + 1)
-    length = document.body[l][7:]
-    # remove trailing '"'
-    length = length[:-1]
-    # latex_length returns "bool,length"
-    length = latex_length(length).split(",")[1]
-    subst = "\\makebox[" + length + "][" \
-      + align + "]{"
-    document.body[i:y + 1] = put_cmd_in_ert(subst)
+    if j < z and j != -1:
+      y = find_token(document.body, "\\begin_layout", i)
+      if y > z or y == -1:
+        document.warning("Malformed LyX document: Can't find layout in box.")
+        return
+      # remove the \end_layout \end_inset pair
+      document.body[z - 2:z + 1] = put_cmd_in_ert("}")
+      # determine the alignment
+      k = find_token(document.body, 'hor_pos', j - 4)
+      align = document.body[k][9]
+      # determine the width
+      l = find_token(document.body, 'width "', j + 1)
+      length = document.body[l][7:]
+      # remove trailing '"'
+      length = length[:-1]
+      # latex_length returns "bool,length"
+      length = latex_length(length).split(",")[1]
+      subst = "\\makebox[" + length + "][" \
+        + align + "]{"
+      document.body[i:y + 1] = put_cmd_in_ert(subst)
     i += 1
 
 
+def revert_use_makebox(document):
+  " Deletes use_makebox option of boxes "
+  h = 0
+  while 1:
+    # remove the option use_makebox
+    h = find_token(document.body, 'use_makebox', 0)
+    if h == -1:
+      return
+    del document.body[h]
+    h += 1
+
+
 def revert_IEEEtran(document):
   " Convert IEEEtran layouts and styles to TeX code "
   if document.textclass != "IEEEtran":