From af4ba2ee98fe5ef2822f7466463785cdcced5143 Mon Sep 17 00:00:00 2001 From: Jeremy Paul Whiting Date: Fri, 10 Aug 2007 13:33:40 +0000 Subject: [PATCH] added method to sort kns downloaded data into locale sub-folders svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=698616 --- keduvocdocument/sharedkvtmlfiles.cpp | 36 ++++++++++++++++++++++++++++ keduvocdocument/sharedkvtmlfiles.h | 3 +++ 2 files changed, 39 insertions(+) diff --git a/keduvocdocument/sharedkvtmlfiles.cpp b/keduvocdocument/sharedkvtmlfiles.cpp index b48c8f5..461eaa8 100644 --- a/keduvocdocument/sharedkvtmlfiles.cpp +++ b/keduvocdocument/sharedkvtmlfiles.cpp @@ -17,6 +17,8 @@ #include "keduvocdocument.h" +#include +#include #include #include @@ -103,6 +105,8 @@ void SharedKvtmlFilesPrivate::rescan() // add it's comment to the comment list this->m_commentList.append(doc->documentRemark()); } + // plug a memory leak + delete doc; } void SharedKvtmlFiles::rescan() @@ -165,3 +169,35 @@ QStringList SharedKvtmlFiles::comments(const QString &language) return retlist; } + +void SharedKvtmlFiles::sortDownloadedFiles() +{ + QStringList unsortedFiles = KGlobal::dirs()->findAllResources("data", + QString("kvtml/*.kvtml")); + + KEduVocDocument *doc = new KEduVocDocument(); + + while (unsortedFiles.size() > 0) + { + KUrl fileUrl(KUrl::fromPath(unsortedFiles.first())); + // find the file's locale + // open the file + doc->open(fileUrl); + + QString locale = doc->identifier(0); + + // make sure the locale sub-folder exists + KUrl pathUrl(fileUrl); + pathUrl.setFileName(QString()); + pathUrl.addPath(locale); + KIO::mkdir(pathUrl); + + // move the file into the locale sub-folder + KIO::move(fileUrl, pathUrl); + + // take off the one we just did + unsortedFiles.removeFirst(); + } + + rescan(); +} diff --git a/keduvocdocument/sharedkvtmlfiles.h b/keduvocdocument/sharedkvtmlfiles.h index 2cc70ec..c9344b6 100644 --- a/keduvocdocument/sharedkvtmlfiles.h +++ b/keduvocdocument/sharedkvtmlfiles.h @@ -51,6 +51,9 @@ namespace SharedKvtmlFiles /** rescan the shared kvtml locations */ KEDUVOCDOCUMENT_EXPORT void rescan(); + + /** sort files downloaded to kvtml top-level dir into locale sub-folders */ + KEDUVOCDOCUMENT_EXPORT void sortDownloadedFiles(); } #endif -- 2.47.3