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)
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 "