diff options
Diffstat (limited to 'src/libs/installer')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 4 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercoredata.cpp | 7 |
4 files changed, 14 insertions, 5 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 0a5eec513..02f12bd90 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1027,14 +1027,17 @@ PackageManagerCore::PackageManagerCore() and \a mode to set the server side authorization key. */ PackageManagerCore::PackageManagerCore(qint64 magicmaker, const QList<OperationBlob> &operations, - const QString &socketName, const QString &key, Protocol::Mode mode) + const QString &socketName, const QString &key, Protocol::Mode mode, + const QHash<QString, QString> ¶ms, const bool commandLineInstance) : d(new PackageManagerCorePrivate(this, magicmaker, operations)) { + setCommandLineInstance(commandLineInstance); Repository::registerMetaType(); // register, cause we stream the type as QVariant qRegisterMetaType<QInstaller::PackageManagerCore::Status>("QInstaller::PackageManagerCore::Status"); qRegisterMetaType<QInstaller::PackageManagerCore::WizardPage>("QInstaller::PackageManagerCore::WizardPage"); - d->initialize(QHash<QString, QString>()); + d->initialize(params); + // Creates and initializes a remote client, makes us get admin rights for QFile, QSettings // and QProcess operations. Init needs to called to set the server side authorization key. if (!d->isUpdater()) { diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 979ff50e6..eb4220072 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -62,7 +62,9 @@ public: PackageManagerCore(qint64 magicmaker, const QList<OperationBlob> &ops, const QString &socketName = QString(), const QString &key = QLatin1String(Protocol::DefaultAuthorizationKey), - Protocol::Mode mode = Protocol::Mode::Production); + Protocol::Mode mode = Protocol::Mode::Production, + const QHash<QString, QString> ¶ms = QHash<QString, QString>(), + const bool commandLineInstance = false); ~PackageManagerCore(); // status diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 54eace77a..dba96c222 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -592,7 +592,6 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> ¶ms #endif } processFilesForDelayedDeletion(); - m_data.setDynamicPredefinedVariables(); disconnect(this, &PackageManagerCorePrivate::installationStarted, ProgressCoordinator::instance(), &ProgressCoordinator::reset); diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp index b985487c9..df6d96a55 100644 --- a/src/libs/installer/packagemanagercoredata.cpp +++ b/src/libs/installer/packagemanagercoredata.cpp @@ -46,7 +46,6 @@ namespace QInstaller PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &variables) { - m_variables = variables; setDynamicPredefinedVariables(); // Set some common variables that may used e.g. as placeholder in some of the settings variables or @@ -86,6 +85,12 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va m_variables.insert(scTargetDir, replaceVariables(m_settings.targetDir())); m_variables.insert(scRemoveTargetDir, replaceVariables(m_settings.removeTargetDir())); + + // Iterate over user defined parameters. If those are found, add to table or + // replace existing values. + QHash<QString, QString>::const_iterator it; + for (it = variables.begin(); it != variables.end(); ++it) + m_variables.insert(it.key(), it.value()); } void PackageManagerCoreData::clear() |