summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/component.cpp79
-rw-r--r--src/libs/installer/component.h19
-rw-r--r--src/libs/installer/installer.pro3
3 files changed, 46 insertions, 55 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index d379305a8..ebd37a641 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -55,10 +55,6 @@
#include <QtUiTools/QUiLoader>
-#include <private/qv8engine_p.h>
-#include <private/qv4scopedvalue_p.h>
-#include <private/qv4global_p.h>
-
#include <algorithm>
using namespace QInstaller;
@@ -706,11 +702,11 @@ void Component::createOperationsForPath(const QString &path)
if (fi.isFile()) {
static const QString copy = QString::fromLatin1("Copy");
- addOperation(copy, QStringList() << fi.filePath() << target);
+ addOperation(copy, fi.filePath(), target);
} else if (fi.isDir()) {
qApp->processEvents();
static const QString mkdir = QString::fromLatin1("Mkdir");
- addOperation(mkdir, QStringList(target));
+ addOperation(mkdir, target);
QDirIterator it(fi.filePath());
while (it.hasNext())
@@ -750,7 +746,7 @@ void Component::createOperationsForArchive(const QString &archive)
if (isZip) {
// archives get completely extracted per default (if the script isn't doing other stuff)
- addOperation(QLatin1String("Extract"), QStringList() << archive << QLatin1String("@TargetDir@"));
+ addOperation(QLatin1String("Extract"), archive, QLatin1String("@TargetDir@"));
} else {
createOperationsForPath(archive);
}
@@ -1012,44 +1008,24 @@ Operation *Component::createOperation(const QString &operationName, const QStrin
return operation;
}
-namespace {
+/*!
+ Convenience method for calling the operation \a operation with up to ten parameters:
+ \a parameter1, \a parameter2, \a parameter3, \a parameter4, \a parameter5, \a parameter6,
+ \a parameter7, \a parameter8, \a parameter9, and \a parameter10.
-inline bool convert(QQmlV4Function *func, QStringList *toArgs)
+ \sa {component::addOperation}{component.addOperation}
+*/
+bool Component::addOperation(const QString &operation, const QString &parameter1, const QString &parameter2,
+ const QString &parameter3, const QString &parameter4, const QString &parameter5, const QString &parameter6,
+ const QString &parameter7, const QString &parameter8, const QString &parameter9, const QString &parameter10)
{
- if (func->length() < 2)
- return false;
- QV4::Scope scope(func->v4engine());
- QV4::ScopedValue val(scope);
- val = (*func)[0];
-
- *toArgs << val->toQString();
- for (int i = 1; i < func->length(); i++) {
- val = (*func)[i];
- if (val->isObject() && val->as<QV4::Object>()->isArrayObject()) {
- QV4::ScopedValue valtmp(scope);
- QV4::Object *array = val->as<QV4::Object>();
- uint length = array->getLength();
- for (uint ii = 0; ii < length; ++ii) {
- valtmp = array->getIndexed(ii);
- *toArgs << valtmp->toQStringNoThrow();
- }
- } else {
- *toArgs << val->toQString();
- }
+ if (Operation *op = createOperation(operation, parameter1, parameter2, parameter3, parameter4, parameter5,
+ parameter6, parameter7, parameter8, parameter9, parameter10)) {
+ addOperation(op);
+ return true;
}
- return true;
-}
-}
-/*!
- \internal
-*/
-bool Component::addOperation(QQmlV4Function *func)
-{
- QStringList args;
- if (convert(func, &args))
- return addOperation(args[0], args.mid(1));
return false;
}
@@ -1057,8 +1033,6 @@ bool Component::addOperation(QQmlV4Function *func)
Creates and adds an installation operation for \a operation. Add any number of \a parameters.
The variables that the parameters contain, such as \c @TargetDir@, are replaced with their
values.
-
- \sa {component::addOperation}{component.addOperation}
*/
bool Component::addOperation(const QString &operation, const QStringList &parameters)
{
@@ -1071,13 +1045,23 @@ bool Component::addOperation(const QString &operation, const QStringList &parame
}
/*!
- \internal
+ Convenience method for calling the elevated operation \a operation with up to ten parameters:
+ \a parameter1, \a parameter2, \a parameter3, \a parameter4, \a parameter5, \a parameter6,
+ \a parameter7, \a parameter8, \a parameter9, and \a parameter10.
+
+ \sa {component::addElevatedOperation}{component.addElevatedOperation}
*/
-bool Component::addElevatedOperation(QQmlV4Function *func)
+bool Component::addElevatedOperation(const QString &operation, const QString &parameter1,
+ const QString &parameter2, const QString &parameter3, const QString &parameter4, const QString &parameter5,
+ const QString &parameter6, const QString &parameter7, const QString &parameter8, const QString &parameter9,
+ const QString &parameter10)
{
- QStringList args;
- if (convert(func, &args))
- return addElevatedOperation(args[0], args.mid(1));
+ if (Operation *op = createOperation(operation, parameter1, parameter2, parameter3, parameter4, parameter5,
+ parameter6, parameter7, parameter8, parameter9, parameter10)) {
+ addElevatedOperation(op);
+ return true;
+ }
+
return false;
}
@@ -1086,7 +1070,6 @@ bool Component::addElevatedOperation(QQmlV4Function *func)
The variables that the parameters contain, such as \c @TargetDir@, are replaced with their
values. The operation is executed with elevated rights.
- \sa {component::addElevatedOperation}{component.addElevatedOperation}
*/
bool Component::addElevatedOperation(const QString &operation, const QStringList &parameters)
{
diff --git a/src/libs/installer/component.h b/src/libs/installer/component.h
index a075a0145..71f10c272 100644
--- a/src/libs/installer/component.h
+++ b/src/libs/installer/component.h
@@ -44,7 +44,6 @@
#include <QtCore/QUrl>
QT_FORWARD_DECLARE_CLASS(QDebug)
-QT_FORWARD_DECLARE_CLASS(QQmlV4Function)
namespace KDUpdater {
class Update;
@@ -131,12 +130,22 @@ public:
OperationList operations() const;
void addOperation(Operation *operation);
- Q_INVOKABLE bool addOperation(QQmlV4Function *args);
- bool addOperation(const QString &operation, const QStringList &parameters);
+ Q_INVOKABLE bool addOperation(const QString &operation, const QString &parameter1 = QString(),
+ const QString &parameter2 = QString(), const QString &parameter3 = QString(),
+ const QString &parameter4 = QString(), const QString &parameter5 = QString(),
+ const QString &parameter6 = QString(), const QString &parameter7 = QString(),
+ const QString &parameter8 = QString(), const QString &parameter9 = QString(),
+ const QString &parameter10 = QString());
+ Q_INVOKABLE bool addOperation(const QString &operation, const QStringList &parameters);
void addElevatedOperation(Operation *operation);
- Q_INVOKABLE bool addElevatedOperation(QQmlV4Function *args);
- bool addElevatedOperation(const QString &operation, const QStringList &parameters);
+ Q_INVOKABLE bool addElevatedOperation(const QString &operation,
+ const QString &parameter1 = QString(), const QString &parameter2 = QString(),
+ const QString &parameter3 = QString(), const QString &parameter4 = QString(),
+ const QString &parameter5 = QString(), const QString &parameter6 = QString(),
+ const QString &parameter7 = QString(), const QString &parameter8 = QString(),
+ const QString &parameter9 = QString(), const QString &parameter10 = QString());
+ Q_INVOKABLE bool addElevatedOperation(const QString &operation, const QStringList &parameters);
QStringList downloadableArchives() const;
Q_INVOKABLE void addDownloadableArchive(const QString &path);
diff --git a/src/libs/installer/installer.pro b/src/libs/installer/installer.pro
index cfa83d08d..87af31f3c 100644
--- a/src/libs/installer/installer.pro
+++ b/src/libs/installer/installer.pro
@@ -34,8 +34,7 @@ QT += \
xml \
concurrent \
widgets \
- core-private \
- qml-private
+ core-private
win32:QT += winextras
HEADERS += packagemanagercore.h \