diff options
author | Katja Marttila <katja.marttila@qt.io> | 2021-01-21 09:01:58 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2021-02-03 22:17:42 +0200 |
commit | 3acc4e966025ea174fd873c4f29f76b6dfed9b4b (patch) | |
tree | e6ec29af9e81551ee476cb18ec19aad2808b3324 /src/libs/kdtools | |
parent | 9792033524025e433e5537c4d9bc26531f6ae679 (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.cpp | 20 | ||||
-rw-r--r-- | src/libs/kdtools/updateoperation.h | 3 |
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 |