diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2014-02-04 12:04:33 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2014-02-07 09:54:51 +0100 |
commit | a2018469a09360c0ec43669d6df97f2d475b4413 (patch) | |
tree | b46f39e4bf8702da8ad6bb47ca0eb0597b6c375d | |
parent | c35f9a9da2acd1f12bc67ad0215ba7936cc14698 (diff) |
add operationExists method on script side
Change-Id: Ic49a629931b09f104a644dfa7acb5f57b6185f01
Reviewed-by: Niels Weber <niels.weber@digia.com>
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 12 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 09e1a5094..a4883b651 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1629,6 +1629,18 @@ QString PackageManagerCore::environmentVariable(const QString &name) const #endif } +bool PackageManagerCore::operationExists(const QString &name) +{ + static QSet<QString> existingOperations; + if (existingOperations.contains(name)) + return true; + QScopedPointer<Operation> op(KDUpdater::UpdateOperationFactory::instance().create(name)); + if (!op.data()) + return false; + existingOperations.insert(name); + return true; +} + /*! \qmlmethod boolean QInstaller::performOperation(string name, stringlist arguments) diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 392e5a018..5f262e804 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -138,6 +138,7 @@ public: const QString &workingDirectory = QString()) const; Q_INVOKABLE QString environmentVariable(const QString &name) const; + Q_INVOKABLE bool operationExists(const QString &name); Q_INVOKABLE bool performOperation(const QString &name, const QStringList &arguments); Q_INVOKABLE static bool versionMatches(const QString &version, const QString &requirement); |