Enrico Forestieri wrote:
On Sat, Nov 18, 2006 at 12:38:58PM +0100, Georg Baum wrote:
I investigated why \int and \oint are not shown on Windows, contrarily
to *nix. It turned out that the following check performed in
GuiFontLoader.C:
bool isChosenFont(QFont & font, string const & family)
{
...
// So we check rawName first
if (contains(fromqstr(font.rawName()), family)) {
lyxerr[Debug::FONT] << " got it ";
return true;
}
...
always succeeds on windows, whatever font is asked for, existing or not.
In this way, LyX thinks that the esint font is existing on the system,
thus the "iffont esint" test in lib/symbols succeeds, and the integral
sign glyphs are assigned to a missing font file...
Good catch!
The attached patch corrects this and I can see the integrals. I think
that it is correct and I also tested it on linux and solaris, but I am
no Qt expert, so I ask for opinions before applying it.
------------------------------------------------------------------------
Index: src/frontends/qt4/GuiFontLoader.C
===================================================================
--- src/frontends/qt4/GuiFontLoader.C (revision 16106)
+++ src/frontends/qt4/GuiFontLoader.C (working copy)
@@ -144,7 +144,7 @@ bool isChosenFont(QFont & font, string c
<< fromqstr(fi.family()) << endl;
// So we check rawName first
- if (contains(fromqstr(font.rawName()), family)) {
+ if (font.rawName() == fi.family()) {
It looks OK to me. There is not exactly the same code as we check
equality instead of containance. But at the same time we ask
"isChosenFont()" so I think you're right.
Abdel.