[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/sonnet-multilang/kdecore
From: Jakub Stachowski <qbast () go2 ! pl>
Date: 2009-03-25 19:00:05
Message-ID: 1238007605.833704.2029.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 944571 by qbast:
Use language from last token as fallback too.
M +9 -5 languagefilter.cpp
--- branches/work/sonnet-multilang/kdecore/languagefilter.cpp #944570:944571
@@ -38,7 +38,7 @@
LanguageFilterPrivate(AbstractTokenizer* s) : source(s) { gl.setLimits(3, 0.1); \
} ~LanguageFilterPrivate() { delete source; }
- QString doIdentify(const QString& text, const QString& fallback) const;
+ QString doIdentify(const QString& text, const QStringList& fallbacks) const;
QString mainLanguage() const;
AbstractTokenizer* source;
@@ -46,12 +46,13 @@
mutable QString lastLanguage;
mutable QString cachedMainLanguage;
+ QString prevLanguage;
GuessLanguage gl;
Speller sp;
};
-QString LanguageFilterPrivate::doIdentify(const QString& text, const QString& \
fallback) const +QString LanguageFilterPrivate::doIdentify(const QString& text, const \
QStringList& fallbacks) const {
QStringList candidates=gl.identify(text);
@@ -60,7 +61,7 @@
if (candidates.size() == 1) return candidates.front();
// let's sort it out with dictionary-based guesser
- candidates += fallback;
+ candidates += fallbacks;
candidates.removeDuplicates();
QString ret=detectLanguage(text, candidates);
kDebug() << "Dict got " << ret << " using " << candidates;
@@ -69,7 +70,7 @@
QString LanguageFilterPrivate::mainLanguage() const
{
- if (cachedMainLanguage.isNull()) \
cachedMainLanguage=doIdentify(source->buffer(), Speller().defaultLanguage()); + if \
(cachedMainLanguage.isNull()) cachedMainLanguage=doIdentify(source->buffer(), \
QStringList(Speller().defaultLanguage())); return cachedMainLanguage;
}
@@ -78,6 +79,7 @@
LanguageFilter::LanguageFilter(AbstractTokenizer* source) : d(new \
LanguageFilterPrivate(source)) {
+ d->prevLanguage=Speller().defaultLanguage();
}
bool LanguageFilter::hasNext() const
@@ -94,13 +96,15 @@
QStringRef LanguageFilter::next()
{
d->lastToken=d->source->next();
+ d->prevLanguage=d->lastLanguage;
d->lastLanguage=QString();
return d->lastToken;
}
QString LanguageFilter::language() const
{
- if (d->lastLanguage.isNull()) \
d->lastLanguage=d->doIdentify(d->lastToken.toString(), d->mainLanguage()); + if \
(d->lastLanguage.isNull()) + \
d->lastLanguage=d->doIdentify(d->lastToken.toString(), QStringList() << \
d->mainLanguage() << d->prevLanguage); return d->lastLanguage;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic