diff --git a/src/nokde-stubs/prefs.cpp b/src/nokde-stubs/prefs.cpp --- a/src/nokde-stubs/prefs.cpp +++ b/src/nokde-stubs/prefs.cpp @@ -62,6 +62,7 @@ , mWordCompletionLength(3) , mSuggCount(10) + , mSuggScore(0) { QSettings s; mAuthorName = s.value(QStringLiteral("Author/Name"), QString()).toString(); diff --git a/src/nokde-stubs/prefs_lokalize.h b/src/nokde-stubs/prefs_lokalize.h --- a/src/nokde-stubs/prefs_lokalize.h +++ b/src/nokde-stubs/prefs_lokalize.h @@ -147,6 +147,12 @@ return self()->mSuggCount; } + static + int suggScore() + { + return self()->mSuggScore; + } + static bool autoaddTM() { @@ -198,6 +204,7 @@ int mWordCompletionLength; int mSuggCount; + int mSuggScore; }; #endif diff --git a/src/prefs/lokalize.kcfg b/src/prefs/lokalize.kcfg --- a/src/prefs/lokalize.kcfg +++ b/src/prefs/lokalize.kcfg @@ -108,6 +108,9 @@ 7 + + 0 + true diff --git a/src/prefs/prefs_tm.ui b/src/prefs/prefs_tm.ui --- a/src/prefs/prefs_tm.ui +++ b/src/prefs/prefs_tm.ui @@ -45,7 +45,7 @@ - + Maximum number of suggestions: @@ -62,29 +62,63 @@ - + Qt::Horizontal + + + + + Minimum score (0-100) of suggestions: + + + + + + + 0 + + + 100 + + + Set the minimum score (0-100) of suggestions + + + You can change the minimum score (0-100) required for suggestions, default is 0. + + + + + + + Qt::Horizontal + + + + + + Update/Add edited entries to translation memory - + Add opened files to translation memory automatically - + Delete missing files from translation memory on Rescan or when clicking a missing entry diff --git a/src/tm/jobs.cpp b/src/tm/jobs.cpp --- a/src/tm/jobs.cpp +++ b/src/tm/jobs.cpp @@ -1476,8 +1476,9 @@ //qCWarning(LOKALIZE_LOG) <<"SelectJob: done "<()); int limit = qMin(Settings::suggCount(), m_entries.size()); + int minScore = Settings::suggScore() * 100; int i = m_entries.size(); - while (--i >= limit) + while (--i >= limit || m_entries.last().score < minScore) m_entries.removeLast(); if (Q_UNLIKELY(m_dequeued)) { diff --git a/src/tm/tmview.cpp b/src/tm/tmview.cpp --- a/src/tm/tmview.cpp +++ b/src/tm/tmview.cpp @@ -409,13 +409,14 @@ if (job.m_dbName != projectID) { job.m_entries += m_entries; qSort(job.m_entries.begin(), job.m_entries.end(), qGreater()); - int limit = qMin(Settings::suggCount(), job.m_entries.size()); + const int limit = qMin(Settings::suggCount(), job.m_entries.size()); + const int minScore = Settings::suggScore() * 100; int i = job.m_entries.size(); - while (--i >= limit) + while (--i >= limit || job.m_entries.last().score < minScore) job.m_entries.removeLast(); } else if (job.m_entries.isEmpty() || job.m_entries.first().score < 8500) { //be careful, as we switched to QDirModel! - const DBFilesModel& dbFilesModel = *(DBFilesModel::instance()); + DBFilesModel& dbFilesModel = *(DBFilesModel::instance()); QModelIndex root = dbFilesModel.rootIndex(); int i = dbFilesModel.rowCount(root); //qCWarning(LOKALIZE_LOG)<<"query other DBs,"<textCursor(); QString html;