From 32b640a5f9dbe9465ac2f6dd3da7c06839edda25 Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Thu, 7 Feb 2013 13:02:21 +0100 Subject: Add RunProgramArguments The common case that the called application needs arguments wasn't implemented. Change-Id: I60b2d149399b4036c4fc30b55b0d17997993d8bd Reviewed-by: Leena Miettinen Reviewed-by: Karsten Heimrich Reviewed-by: Niels Weber Reviewed-by: Kai Koehne --- src/libs/installer/constants.h | 1 + src/libs/installer/packagemanagercore_p.cpp | 2 +- src/libs/installer/packagemanagercoredata.cpp | 1 + src/libs/installer/packagemanagergui.cpp | 6 ++++-- src/libs/installer/settings.cpp | 5 +++++ src/libs/installer/settings.h | 1 + 6 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index 3929681a7..7ea73bbb9 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -80,6 +80,7 @@ static const QLatin1String scSortingPriority("SortingPriority"); static const QLatin1String scTitle("Title"); static const QLatin1String scPublisher("Publisher"); static const QLatin1String scRunProgram("RunProgram"); +static const QLatin1String scRunProgramArguments("RunProgramArguments"); static const QLatin1String scStartMenuDir("StartMenuDir"); static const QLatin1String scRemoveTargetDir("RemoveTargetDir"); static const QLatin1String scRunProgramDescription("RunProgramDescription"); diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 4a7452cd4..5bcbb5418 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -761,7 +761,7 @@ void PackageManagerCorePrivate::writeMaintenanceConfigFiles() QVariantHash variables; QSettingsWrapper cfg(iniPath, QSettingsWrapper::IniFormat); foreach (const QString &key, m_data.keys()) { - if (key != scRunProgramDescription && key != scRunProgram) + if (key != scRunProgramDescription && key != scRunProgram && key != scRunProgramArguments) variables.insert(key, m_data.value(key)); } cfg.setValue(QLatin1String("Variables"), variables); diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp index 4c848f13e..b15b2796c 100644 --- a/src/libs/installer/packagemanagercoredata.cpp +++ b/src/libs/installer/packagemanagercoredata.cpp @@ -99,6 +99,7 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash &va m_variables.insert(scTargetDir, replaceVariables(m_settings.targetDir())); m_variables.insert(scRunProgram, replaceVariables(m_settings.runProgram())); + m_variables.insert(scRunProgramArguments, replaceVariables(m_settings.runProgramArguments())); m_variables.insert(scRemoveTargetDir, replaceVariables(m_settings.removeTargetDir())); } diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 9dfcaa91c..c68891145 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -2011,11 +2011,13 @@ void FinishedPage::leaving() void FinishedPage::handleFinishClicked() { const QString program = packageManagerCore()->replaceVariables(packageManagerCore()->value(scRunProgram)); + const QStringList args = packageManagerCore()->replaceVariables( + packageManagerCore()->value(scRunProgramArguments)).split(QLatin1Char(' ')); if (!m_runItCheckBox->isChecked() || program.isEmpty()) return; - qDebug() << "starting" << program; - QProcess::startDetached(program); + qDebug() << "starting" << program << args; + QProcess::startDetached(program, args); } diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index c5e41ed3f..3fe8320fa 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -360,6 +360,11 @@ QString Settings::runProgram() const return d->m_data.value(scRunProgram).toString(); } +QString Settings::runProgramArguments() const +{ + return d->m_data.value(scRunProgramArguments).toString(); +} + QString Settings::runProgramDescription() const { return d->m_data.value(scRunProgramDescription).toString(); diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 51355d038..db7212b1e 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -95,6 +95,7 @@ public: QString applicationVersion() const; QString runProgram() const; + QString runProgramArguments() const; QString runProgramDescription() const; QString startMenuDir() const; QString targetDir() const; -- cgit v1.2.3