Lars Gullik Bjønnes wrote: > This patch does not feel correct... > | - return (asString(ar) == "none"); > | + return (asString(ar) == _("none")); > > We should never compare with translated strings, Why it is needed > here?
Because André passed the gui name of the color to the colorinset, and this gui name gets translated. See math_nestinset.C: 396 if (font.color() != LColor::inherit) { MathAtom at = createMathInset("color"); asArray(lcolor.getGUIName(font.color()), at.nucleus()->cell(0)); cur.handleNest(at, 1); } An alternative is to use the LyX name here instead. LaTeX name is no option, because there is no LColor getFromLaTeXName (and we need the LColor to set the text color). > | void MathColorInset::write(WriteStream & os) const > | { > | + std::string const color = > | + lcolor.getLaTeXName(lcolor.getFromGUIName(asString(cell(0)) > |)); > > Hmm... seems kindo the wrong way to get the latexname. There is no other way AFAICS. As stated above, using the LaTeX name directly is no option. > | if (normalcolor(cell(0))) > | os << "{\\normalcolor " << cell(1) << '}'; > | else if (oldstyle_) > | - os << "{\\color" << '{' << cell(0) << '}' << cell(1) << > | '}'; + os << "{\\color" << '{' << color.c_str() << '}' << > | cell(1) << '}'; > > c_str not needed here. without c_str, I get compiler errors. Jürgen