summaryrefslogtreecommitdiffstats
path: root/src/libs/kdtools
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2021-01-21 09:01:58 +0200
committerKatja Marttila <katja.marttila@qt.io>2021-02-03 22:17:42 +0200
commit3acc4e966025ea174fd873c4f29f76b6dfed9b4b (patch)
treee6ec29af9e81551ee476cb18ec19aad2808b3324 /src/libs/kdtools
parent9792033524025e433e5537c4d9bc26531f6ae679 (diff)
Save Execute operation with predefined variable
When operations are saved to dat file, the variables are resolved making it impossible to change it afterwards. This change allows saving the Execute -operation variables unresolved. Variables are resolved runtime so those can be changed using e.g. script. Task-number: QTIFW-2124 Change-Id: I22a0502a5760234fc331aa931b8c66864e855e34 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/kdtools')
-rw-r--r--src/libs/kdtools/updateoperation.cpp20
-rw-r--r--src/libs/kdtools/updateoperation.h3
2 files changed, 23 insertions, 0 deletions
diff --git a/src/libs/kdtools/updateoperation.cpp b/src/libs/kdtools/updateoperation.cpp
index 267cd8a80..35c9dce2e 100644
--- a/src/libs/kdtools/updateoperation.cpp
+++ b/src/libs/kdtools/updateoperation.cpp
@@ -89,6 +89,7 @@ static QString backupFileName(const QString &templateName)
UpdateOperation::UpdateOperation(QInstaller::PackageManagerCore *core)
: m_error(0)
, m_core(core)
+ , m_requiresUnreplacedVariables(false)
{
// Store the value for compatibility reasons.
m_values[QLatin1String("installer")] = QVariant::fromValue(core);
@@ -258,6 +259,16 @@ QStringList UpdateOperation::parseUndoOperationArguments()
return args;
}
+/*!
+ Sets the requirement for unresolved variables to \a isRequired.
+
+ \sa requiresUnreplacedVariables()
+*/
+void UpdateOperation::setRequiresUnreplacedVariables(bool isRequired)
+{
+ m_requiresUnreplacedVariables = isRequired;
+}
+
struct StartsWith
{
StartsWith(const QString &searchTerm)
@@ -354,6 +365,15 @@ QStringList UpdateOperation::filesForDelayedDeletion() const
}
/*!
+ Returns true if installer saves the variables unresolved.
+ The variables are resolved right before operation is performed.
+*/
+bool UpdateOperation::requiresUnreplacedVariables() const
+{
+ return m_requiresUnreplacedVariables;
+}
+
+/*!
Returns the package manager core this operation belongs to.
*/
QInstaller::PackageManagerCore *UpdateOperation::packageManager() const
diff --git a/src/libs/kdtools/updateoperation.h b/src/libs/kdtools/updateoperation.h
index b3642c78e..e05fc34d2 100644
--- a/src/libs/kdtools/updateoperation.h
+++ b/src/libs/kdtools/updateoperation.h
@@ -71,6 +71,7 @@ public:
QString errorString() const;
int error() const;
QStringList filesForDelayedDeletion() const;
+ bool requiresUnreplacedVariables() const;
QInstaller::PackageManagerCore *packageManager() const;
@@ -93,6 +94,7 @@ protected:
bool checkArgumentCount(int argCount);
QStringList parsePerformOperationArguments();
QStringList parseUndoOperationArguments();
+ void setRequiresUnreplacedVariables(bool isRequired);
private:
QString m_name;
@@ -102,6 +104,7 @@ private:
QVariantMap m_values;
QStringList m_delayedDeletionFiles;
QInstaller::PackageManagerCore *m_core;
+ bool m_requiresUnreplacedVariables;
};
} // namespace KDUpdater