summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2014-02-04 12:04:33 +0100
committerTim Jenssen <tim.jenssen@digia.com>2014-02-07 09:54:51 +0100
commita2018469a09360c0ec43669d6df97f2d475b4413 (patch)
treeb46f39e4bf8702da8ad6bb47ca0eb0597b6c375d
parentc35f9a9da2acd1f12bc67ad0215ba7936cc14698 (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.cpp12
-rw-r--r--src/libs/installer/packagemanagercore.h1
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);