Remove support for LyXRC::force_paint_single_char

This workaround is not necessary anymore, and it complicates the code.

The variable itself will be removed after the landing of the branch on
master.
This commit is contained in:
Jean-Marc Lasgouttes 2014-05-14 15:36:44 +02:00
parent 973adaf7d1
commit 4176795e72
6 changed files with 17 additions and 28 deletions

View File

@ -32,14 +32,16 @@ What is done:
* Re-implement cursorX and getPosNearX using row elements.
* Implement proper string metrics computation (with cache), when
lyxrc.force_paint_single_char is false. In this case, remove also
* Do not honor lyxrc.force_paint_single_char anymore. This is a
workaround that is not necessary anymore.
* Implement proper string metrics computation (with cache). Remove
useless workarounds which disable kerning and ligatures.
* when lyxrc.force_paint_single_char is false, draw also RtL text
string-wise. This both speeds-up drawing and prepares for code
removal, since we now rely on Qt to do things we use to do by
ourselves (see isArabic* and isHebrew* code in Encodings.cpp).
* Draw also RtL text string-wise. This both speeds-up drawing and
prepares for code removal, since we now rely on Qt to do things we
use to do by ourselves (see isArabic* and isHebrew* code in
Encodings.cpp).
* Do not cut strings at separators in RowPainter when text is not
justified. This speeds-up painting by reducing the number of strings
@ -50,7 +52,8 @@ Next steps:
* Fix bugs uncovered by testing.
* Get rid of LyXRC::force_paint_single_char, which is only a workaround.
* Get rid of LyXRC::force_paint_single_char, which is not used anymore
in the source.
* Maybe get rid of LyXRC::rtl_support, which does not have a real use case.

View File

@ -551,7 +551,8 @@ public:
};
///
ScrollWheelZoom scroll_wheel_zoom;
///
/// FIXME: this shall be removed, as the source does not refer
/// to it anymore.
bool force_paint_single_char;
///
int cursor_width;

View File

@ -165,8 +165,6 @@ QFont symbolFont(QString const & family, bool * ok)
upper[0] = family[0].toUpper();
QFont font;
if (lyxrc.force_paint_single_char)
font.setKerning(false);
font.setFamily(family);
if (isChosenFont(font, family)) {
@ -257,8 +255,6 @@ static QString makeFontName(QString const & family, QString const & foundry)
GuiFontInfo::GuiFontInfo(FontInfo const & f)
: metrics(QFont())
{
if (lyxrc.force_paint_single_char)
font.setKerning(false);
QString const pat = symbolFamily(f.family());
if (!pat.isEmpty()) {
bool ok;

View File

@ -112,18 +112,12 @@ int GuiFontMetrics::rbearing(char_type c) const
int GuiFontMetrics::width(docstring const & s) const
{
int w = 0;
if (lyxrc.force_paint_single_char) {
size_t const ls = s.size();
for (size_t i = 0; i < ls; ++i)
w += width(s[i]);
map<docstring, int>::const_iterator it = strwidth_cache_.find(s);
if (it != strwidth_cache_.end()) {
w = it->second;
} else {
map<docstring, int>::const_iterator it = strwidth_cache_.find(s);
if (it != strwidth_cache_.end()) {
w = it->second;
} else {
w = metrics_.width(toqstr(s));
strwidth_cache_[s] = w;
}
w = metrics_.width(toqstr(s));
strwidth_cache_[s] = w;
}
return w;
}

View File

@ -321,8 +321,6 @@ int GuiPainter::text(int x, int y, docstring const & s,
// occurs at a line-break. As a kludge, we force Qt to
// render this glyph using a one-column line.
// This is needed for some math glyphs.
// FIXME In texted, this behaves differently depending
// on lyxrc.force_paint_single_char status.
// Should the soft hyphen char be displayed at all?
// I don't think so (i.e., Qt is correct as far as
// texted is concerned). /spitz

View File

@ -200,9 +200,6 @@ void RowPainter::paintChars(pos_type & vpos, Font const & font)
// collect as much similar chars as we can
for (++vpos ; vpos < end ; ++vpos) {
if (lyxrc.force_paint_single_char)
break;
pos = bidi_.vis2log(vpos);
if (pos < font_span.first || pos > font_span.last)
break;