do not cache font width with recent Qt versions

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10043 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2005-06-10 14:53:42 +00:00
parent dd1d973def
commit 62022d5441
3 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2005-06-09 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* qfont_loader.h:
* qfont_loader.C (charwidth): do no do font width caching with
Qt >= 3.1.0.
2005-06-06 Lars Gullik Bjonnes <larsbj@gullik.net>
(Committed Martin Vermeer <martin.vermeer@hut.fi>)

View File

@ -375,6 +375,9 @@ qfont_loader::font_info * qfont_loader::getfontinfo(LyXFont const & f)
int qfont_loader::charwidth(LyXFont const & f, Uchar val)
{
// Starting with version 3.1.0, Qt/X11 does its own caching of
// character width, so it is not necessary to provide ours.
#if defined (USE_LYX_FONTCACHE)
font_info * fi = getfontinfo(f);
font_info::WidthCache::const_iterator cit = fi->widthcache.find(val);
@ -384,6 +387,9 @@ int qfont_loader::charwidth(LyXFont const & f, Uchar val)
int const w = fi->metrics.width(QChar(val));
fi->widthcache[val] = w;
return w;
#else
return getfontinfo(f)->metrics.width(QChar(val));
#endif
}

View File

@ -12,8 +12,13 @@
#ifndef QFONTLOADER_H
#define QFONTLOADER_H
#if QT_VERSION < 0x030100
#define USE_LYX_FONTCACHE
#endif
#if defined(USE_LYX_FONTCACHE)
#include <map>
#endif
#include "encoding.h"
#include "lyxfont.h"
@ -65,9 +70,11 @@ private:
/// metrics on the font
QFontMetrics metrics;
#if defined(USE_LYX_FONTCACHE)
typedef std::map<Uchar, int> WidthCache;
/// cache of char widths
WidthCache widthcache;
#endif
};
/// get font info (font + metrics) for the given LyX font. Does not fail.