From: Jeremy Paul Whiting Date: Sat, 7 Jul 2007 03:08:04 +0000 (+0000) Subject: use locale sub-folders inside share/apps/kvtml X-Git-Tag: v3.92.0~40 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=8e7f400da55e1cba15a3e04778975e519d6553cc;p=libqmvoc.git use locale sub-folders inside share/apps/kvtml svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=684661 --- diff --git a/kdeeducore/sharedkvtmlfiles.cpp b/kdeeducore/sharedkvtmlfiles.cpp index 5954736..b48c8f5 100644 --- a/kdeeducore/sharedkvtmlfiles.cpp +++ b/kdeeducore/sharedkvtmlfiles.cpp @@ -20,7 +20,9 @@ #include #include +#include #include +#include #include @@ -61,37 +63,46 @@ void SharedKvtmlFilesPrivate::rescan() this->m_titleList.clear(); this->m_commentList.clear(); this->m_filesByLang.clear(); - this->m_fileList = KGlobal::dirs()->findAllResources("data", "kvtml/*.kvtml"); + this->m_fileList.clear(); + QStringList locales; + + QStringList dataPaths = KGlobal::dirs()->findDirs("data", "kvtml/"); + for (int i = 0; i < dataPaths.size(); ++i) + { + locales += QDir(dataPaths[i]).entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + } + + // remove duplicates + locales = locales.toSet().toList(); + + for (int i = 0; i < locales.size(); ++i) + { + // get all files for this language + QStringList thisLangFiles = KGlobal::dirs()->findAllResources("data", + QString("kvtml/%1/*.kvtml").arg(QDir(locales[i]).dirName())); + // add them to the big list + this->m_fileList << thisLangFiles; + + // then add them to their respective language maps + for (int j = 0; j < thisLangFiles.size(); ++j) + { + this->m_filesByLang[locales[i]].append(thisLangFiles[j]); + } + } + KEduVocDocument *doc = new KEduVocDocument(); - for (int i = 0; i < this->m_fileList.size(); ++i) - { - // open the file - doc->open(KUrl::fromPath(this->m_fileList[i])); - - // add it's title to the title list - this->m_titleList.append(doc->title()); - - // add it's comment to the comment list - this->m_commentList.append(doc->documentRemark()); - - // then add it under its main language in the map - QString language = doc->originalIdentifier(); - if (language.isEmpty()) - { - language = I18N_NOOP("none"); - } - if (this->m_filesByLang.contains(language)) - { - this->m_filesByLang[language].append(this->m_fileList[i]); - } - else - { - QStringList list; - list.append(this->m_fileList[i]); - this->m_filesByLang.insert(language, list); - } - } + for (int i = 0; i < this->m_fileList.size(); ++i) + { + // open the file + doc->open(KUrl::fromPath(this->m_fileList[i])); + + // add it's title to the title list + this->m_titleList.append(doc->title()); + + // add it's comment to the comment list + this->m_commentList.append(doc->documentRemark()); + } } void SharedKvtmlFiles::rescan() diff --git a/kdeeducore/sharedkvtmlfiles.h b/kdeeducore/sharedkvtmlfiles.h index 58c43c9..9527514 100644 --- a/kdeeducore/sharedkvtmlfiles.h +++ b/kdeeducore/sharedkvtmlfiles.h @@ -51,7 +51,6 @@ namespace SharedKvtmlFiles /** rescan the shared kvtml locations */ KDEEDUCORE_EXPORT void rescan(); - } #endif