20 #include <kio/copyjob.h>
23 #include <kstandarddirs.h>
31 class SharedKvtmlFilesPrivate
35 SharedKvtmlFilesPrivate()
41 ~SharedKvtmlFilesPrivate()
48 QStringList m_fileList;
51 QStringList m_titleList;
54 QStringList m_commentList;
57 QMap<QString, QStringList> m_filesByLang;
60 K_GLOBAL_STATIC( SharedKvtmlFilesPrivate, sharedKvtmlFilesPrivate )
62 void SharedKvtmlFilesPrivate::
rescan()
64 this->m_titleList.clear();
65 this->m_commentList.clear();
66 this->m_filesByLang.clear();
67 this->m_fileList.clear();
71 QStringList dataPaths = KGlobal::dirs()->findDirs(
"data",
"kvtml/" );
72 for (
int i = 0; i < dataPaths.size(); ++i ) {
73 locales += QDir( dataPaths[i] ).entryList( QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name );
77 locales = locales.toSet().toList();
79 for (
int i = 0; i < locales.size(); ++i ) {
81 QStringList thisLangFiles = KGlobal::dirs()->findAllResources(
"data",
82 QString(
"kvtml/%1/*.kvtml" ).arg( QDir( locales[i] ).dirName() ) );
84 this->m_fileList << thisLangFiles;
87 for (
int j = 0; j < thisLangFiles.size(); ++j ) {
88 this->m_filesByLang[locales[i]].append( thisLangFiles[j] );
93 for (
int i = 0; i < this->m_fileList.size(); ++i ) {
96 doc->
open( KUrl::fromPath( this->m_fileList[i] ) );
99 this->m_titleList.append( doc->
title() );
109 sharedKvtmlFilesPrivate->rescan();
114 return sharedKvtmlFilesPrivate->m_filesByLang.keys();
121 return language.isEmpty() ? sharedKvtmlFilesPrivate->m_fileList : sharedKvtmlFilesPrivate->m_filesByLang.value( language );
128 if ( language.isEmpty() ) {
129 retlist = sharedKvtmlFilesPrivate->m_titleList;
131 QStringList filenames = sharedKvtmlFilesPrivate->m_filesByLang.value( language );
132 for (
int i = 0; i < filenames.size(); ++i ) {
133 retlist.append( sharedKvtmlFilesPrivate->m_titleList[sharedKvtmlFilesPrivate->m_fileList.indexOf( filenames[i] )] );
144 if ( language.isEmpty() ) {
145 retlist = sharedKvtmlFilesPrivate->m_commentList;
147 QStringList filenames = sharedKvtmlFilesPrivate->m_filesByLang.value( language );
148 for (
int i = 0; i < filenames.size(); ++i ) {
149 retlist.append( sharedKvtmlFilesPrivate->m_commentList[sharedKvtmlFilesPrivate->m_fileList.indexOf( filenames[i] )] );
158 QStringList unsortedFiles = KGlobal::dirs()->findAllResources(
"data",
159 QString(
"kvtml/*.kvtml" ) );
163 while ( !unsortedFiles.isEmpty() ) {
164 KUrl fileUrl( KUrl::fromPath( unsortedFiles.first() ) );
173 KUrl pathUrl( fileUrl );
174 pathUrl.setFileName( QString() );
175 pathUrl.addPath( locale );
176 KIO::mkdir( pathUrl );
179 KIO::move( fileUrl, pathUrl );
183 unsortedFiles.removeFirst();
186 QStringList khangmanFiles = KGlobal::dirs()->findAllResources(
"data",
187 QString(
"kvtml/*.txt" ) );
190 while ( !khangmanFiles.isEmpty() ) {
191 KUrl fileUrl( KUrl::fromPath( khangmanFiles.first() ) );
192 KUrl destDir = KUrl::fromPath(KStandardDirs::locateLocal(
"appdata",
"khangman/data/"));
194 KIO::move( fileUrl, destDir);
195 khangmanFiles.removeFirst();
KEDUVOCDOCUMENT_EXPORT QStringList languages()
get list of all languages found in any files
KEDUVOCDOCUMENT_EXPORT void rescan()
rescan the shared kvtml locations
int open(const KUrl &url)
Open a document file.
KEDUVOCDOCUMENT_EXPORT QStringList comments(const QString &language=QString())
get the list of document remarks found of a given language
KEDUVOCDOCUMENT_EXPORT void sortDownloadedFiles()
sort files downloaded to kvtml top-level dir into locale sub-folders
QString documentComment() const
KEduVocIdentifier & identifier(int index)
Returns the identifier of translation index.
QString locale() const
The locale of the contents: en, de, es, ...
KEDUVOCDOCUMENT_EXPORT QStringList titles(const QString &language=QString())
get the list of document titles found of a given language
int identifierCount() const
KEDUVOCDOCUMENT_EXPORT QStringList fileNames(const QString &language=QString())
get list of filenames found of given language
This class contains the expressions of your vocabulary as well as other information about the vocabul...