diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-03-14 13:33:04 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-03-26 08:46:30 +0000 |
commit | 6664ca85f09d6ae195ac30f83a60d53c2355da0f (patch) | |
tree | f5e5a80c9e5b47d7e77679f08ccad682c81fdd98 /src/libs/installer/scriptengine.cpp | |
parent | 3f281b049c814602130dd433cedae84e44b28838 (diff) |
Add findFiles method
Task-number: QTIFW-1094
Change-Id: Ibc37e9b568f7f54e37f6ed6a5b040940cab5aebd
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/scriptengine.cpp')
-rw-r--r-- | src/libs/installer/scriptengine.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/libs/installer/scriptengine.cpp b/src/libs/installer/scriptengine.cpp index 28f91a394..4a3c163d2 100644 --- a/src/libs/installer/scriptengine.cpp +++ b/src/libs/installer/scriptengine.cpp @@ -72,6 +72,28 @@ QJSValue InstallerProxy::componentByName(const QString &componentName) return QJSValue(); } +QJSValue QDesktopServicesProxy::findFiles(const QString &path, const QString &pattern) +{ + QStringList result; + findRecursion(path, pattern, &result); + + QJSValue scriptComponentsObject = m_engine->newArray(result.count()); + for (int i = 0; i < result.count(); ++i) { + scriptComponentsObject.setProperty(i, result.at(i)); + } + return scriptComponentsObject; +} + +void QDesktopServicesProxy::findRecursion(const QString &path, const QString &pattern, QStringList *result) +{ + QDir currentDir(path); + const QString prefix = path + QLatin1Char('/'); + foreach (const QString &match, currentDir.entryList(QStringList(pattern), QDir::Files | QDir::NoSymLinks)) + result->append(prefix + match); + foreach (const QString &dir, currentDir.entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) + findRecursion(prefix + dir, pattern, result); +} + GuiProxy::GuiProxy(ScriptEngine *engine, QObject *parent) : QObject(parent), m_engine(engine), @@ -526,7 +548,7 @@ QJSValue ScriptEngine::generateDesktopServicesObject() SETPROPERTY(desktopServices, GenericCacheLocation, QStandardPaths) SETPROPERTY(desktopServices, GenericConfigLocation, QStandardPaths) - QJSValue object = m_engine.newQObject(new QDesktopServicesProxy); + QJSValue object = m_engine.newQObject(new QDesktopServicesProxy(this)); object.setPrototype(desktopServices); // attach the properties return object; } |