Fix up fontcolor reversion, and also fix a problem with the note color

reversion.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36070 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2010-11-04 16:09:35 +00:00
parent 2287446d04
commit fecc3b8305

View File

@ -1157,6 +1157,13 @@ def revert_notefontcolor(document):
i = find_token(document.header, "\\notefontcolor", 0) i = find_token(document.header, "\\notefontcolor", 0)
if i == -1: if i == -1:
return 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) colorcode = get_value(document.header, '\\notefontcolor', i)
del document.header[i] del document.header[i]
# the color code is in the form #rrggbb where every character denotes a hex number # 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): def revert_fontcolor(document):
" Reverts font color to preamble code " " Reverts font color to preamble code "
i = 0 i = find_token(document.header, "\\fontcolor", 0)
colorcode = ""
while True:
i = find_token(document.header, "\\fontcolor", i)
if i == -1: if i == -1:
return return
colorcode = get_value(document.header, '\\fontcolor', 0) colorcode = get_value(document.header, '\\fontcolor', i)
del document.header[i] del document.header[i]
# don't clutter the preamble if backgroundcolor is not set # don't clutter the preamble if font color is not set
if colorcode == "#000000": if colorcode == "#000000":
continue return
# the color code is in the form #rrggbb where every character denotes a hex number # the color code is in the form #rrggbb where every character denotes a hex number
# convert the string to an int red = hex2ratio(colorcode[1:3])
red = string.atoi(colorcode[1:3],16) green = hex2ratio(colorcode[3:5])
# we want the output "0.5" for the value "127" therefore add here blue = hex2ratio(colorcode[5:7])
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 # write the preamble
insert_to_preamble(0, document, insert_to_preamble(0, document,
'% Commands inserted by lyx2lyx to set the font color\n' ['% Commands inserted by lyx2lyx to set the font color',
+ '\\@ifundefined{definecolor}{\\usepackage{color}}{}\n' '\\@ifundefined{definecolor}{\\usepackage{color}}{}',
+ '\\definecolor{document_fontcolor}{rgb}{' '\\definecolor{document_fontcolor}{rgb}{'
+ str(redout) + ', ' + str(greenout) + str(red) + ', ' + str(green) + ', ' + str(blue) + '}',
+ ', ' + str(blueout) + '}\n' '\\color{document_fontcolor}'])
+ '\\color{document_fontcolor}\n')
def revert_shadedboxcolor(document): def revert_shadedboxcolor(document):
" Reverts shaded box color to preamble code " " Reverts shaded box color to preamble code "