[bt-devel] font bug

Martin Gruner bt-devel@crosswire.org
Sun, 6 May 2001 21:56:43 +0200


Hi,

I tried to work around the font problem.
CModuleInfo will now return a font with AnyCharSet, and the optionsdialog 
displays this font correctly, also greek.

The displayers still do not show the correct font. IMO the problem is that 
there are several QApplication::font() calls in the QRichtext sources, which 
return a font with the wrong encoding. Using QTextView::setFont() is not 
enough, because the parser will change the encoding of passages with a <font> 
tag because of these QApplication::font() calls. Am I clear?

IMO we have 2 options: (1) hacking the qrichtext sources directly to fit our 
needs or (2) inheriting from the proper qrichtext objects.
The first one is the quick and less difficult one, but after doing that we 
can't update the qrichtext sources any more.
The second one  would be better for future, since we have to do it anyway 
when implementing ThML support. But it might be very complicated, even 
impossible.

Maybe there are better solutions?
For future the best would be that sword would change from creating the 
modules based on FONTS to creating them based on ENCODINGS. 
This is something that should really happen, because it is just sensible. 
What do you think?

FYI: our problem with the fonts is basically that the greek text is not 
encoded with the proper encoding iso88859-7 but rather with some fontspecific 
encoding based on a module font, which is definitely the less good approach. 
The problems occur because Qt uses unicode internally and maps all fonts into 
unicode. Qt does now refuse to use fontspecific encodings, except you set the 
Font charset to AnyCharSet, which is not possible application-wide due to 
locale problems and not possible locally due to the problems described above.
We need a quick solution for now, before 1.0 comes.

Martin