From 3acc4e966025ea174fd873c4f29f76b6dfed9b4b Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Thu, 21 Jan 2021 09:01:58 +0200 Subject: 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 --- src/libs/kdtools/updateoperation.cpp | 20 ++++++++++++++++++++ src/libs/kdtools/updateoperation.h | 3 +++ 2 files changed, 23 insertions(+) (limited to 'src/libs/kdtools') 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) @@ -353,6 +364,15 @@ QStringList UpdateOperation::filesForDelayedDeletion() const return m_delayedDeletionFiles; } +/*! + 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. */ 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 -- cgit v1.2.3