]> git.lyx.org Git - features.git/commitdiff
Fix up fontcolor reversion, and also fix a problem with the note color
authorRichard Heck <rgheck@comcast.net>
Thu, 4 Nov 2010 16:09:35 +0000 (16:09 +0000)
committerRichard Heck <rgheck@comcast.net>
Thu, 4 Nov 2010 16:09:35 +0000 (16:09 +0000)
reversion.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36070 a592a061-630c-0410-9148-cb99ea01b6c8

lib/lyx2lyx/lyx_2_0.py

index 922d7484f43c1da3615946c72d274cd04ff3afab..5825f7f67da8511a3dfc280b7bea588244bfff1b 100644 (file)
@@ -1157,6 +1157,13 @@ def revert_notefontcolor(document):
     i = find_token(document.header, "\\notefontcolor", 0)
     if i == -1:
         return
+
+    # are there any grey notes?
+    if find_token(document.body, "\\begin_inset Note Greyedout", 0) == -1:
+        # no need to do anything, and \renewcommand will throw an error
+        # since lyxgreyedout will not exist.
+        return
+
     colorcode = get_value(document.header, '\\notefontcolor', i)
     del document.header[i]
     # the color code is in the form #rrggbb where every character denotes a hex number
@@ -1195,40 +1202,26 @@ def revert_turkmen(document):
 
 def revert_fontcolor(document):
     " Reverts font color to preamble code "
-    i = 0
-    colorcode = ""
-    while True:
-      i = find_token(document.header, "\\fontcolor", i)
-      if i == -1:
-          return
-      colorcode = get_value(document.header, '\\fontcolor', 0)
-      del document.header[i]
-      # don't clutter the preamble if backgroundcolor is not set
-      if colorcode == "#000000":
-          continue
-      # the color code is in the form #rrggbb where every character denotes a hex number
-      # convert the string to an int
-      red = string.atoi(colorcode[1:3],16)
-      # we want the output "0.5" for the value "127" therefore add here
-      if red != 0:
-          red = red + 1
-      redout = float(red) / 256
-      green = string.atoi(colorcode[3:5],16)
-      if green != 0:
-          green = green + 1
-      greenout = float(green) / 256
-      blue = string.atoi(colorcode[5:7],16)
-      if blue != 0:
-          blue = blue + 1
-      blueout = float(blue) / 256
-      # write the preamble
-      insert_to_preamble(0, document,
-                           '% Commands inserted by lyx2lyx to set the font color\n'
-                           + '\\@ifundefined{definecolor}{\\usepackage{color}}{}\n'
-                           + '\\definecolor{document_fontcolor}{rgb}{'
-                           + str(redout) + ', ' + str(greenout)
-                           + ', ' + str(blueout) + '}\n'
-                           + '\\color{document_fontcolor}\n')
+    i = find_token(document.header, "\\fontcolor", 0)
+    if i == -1:
+        return
+    colorcode = get_value(document.header, '\\fontcolor', i)
+    del document.header[i]
+    # don't clutter the preamble if font color is not set
+    if colorcode == "#000000":
+        return
+    # the color code is in the form #rrggbb where every character denotes a hex number
+    red = hex2ratio(colorcode[1:3])
+    green = hex2ratio(colorcode[3:5])
+    blue = hex2ratio(colorcode[5:7])
+    # write the preamble
+    insert_to_preamble(0, document,
+      ['% Commands inserted by lyx2lyx to set the font color',
+      '\\@ifundefined{definecolor}{\\usepackage{color}}{}',
+      '\\definecolor{document_fontcolor}{rgb}{'
+       + str(red) + ', ' + str(green) + ', ' + str(blue) + '}',
+      '\\color{document_fontcolor}'])
+
 
 def revert_shadedboxcolor(document):
     " Reverts shaded box color to preamble code "