diff options
Diffstat (limited to 'scribus/langmgr.cpp')
-rw-r--r-- | scribus/langmgr.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/scribus/langmgr.cpp b/scribus/langmgr.cpp index f19832b..7f13ed3 100644 --- a/scribus/langmgr.cpp +++ b/scribus/langmgr.cpp @@ -20,7 +20,7 @@ for which a new license (GPL+exception) is in place. ***************************************************************************/ #include <iostream> - +#include <QDebug> #include <QDir> #include <QFileInfo> #include <QMap> @@ -302,6 +302,40 @@ QString LanguageManager::numericSequence(QString seq) return retSeq; } +bool LanguageManager::findDictionaries(QStringList &sl) +{ + sl=ScPaths::instance().spellDirs(); + if (sl.count()==0) + return false; + return true; +} + +void LanguageManager::findDictionarySets(QStringList &dictionaryPaths, QMap<QString, QString> &dictionaryMap) +{ + for (int i=0; i<dictionaryPaths.count(); ++i) + { + // Find the dic and aff files in the location + QDir dictLocation(dictionaryPaths.at(i)); + QStringList dictFilters("*.dic"); + QStringList dictList(dictLocation.entryList(dictFilters, QDir::Files, QDir::Name)); + dictList.replaceInStrings(".dic",""); + + //Ensure we have aff+dic file pairs, remove any hyphenation dictionaries from the list + QString dictName; + foreach(dictName, dictList) + { + if (!QFile::exists(dictionaryPaths.at(i)+dictName+".aff")) + dictList.removeAll(dictName); + else + { + if (!dictionaryMap.contains(dictName)) + dictionaryMap.insert(dictName, dictionaryPaths.at(i)+dictName); + } + } +// qDebug()<<"Number of dictionaries/AFFs found in"<<dictionaryPaths.at(i)<<":"<<dictList.count(); + } +} + LanguageManager::~LanguageManager() { langList.clear(); |