summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2023-12-21 15:32:28 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2024-01-08 12:49:07 +0200
commitdfc67bc3224aac8f1ede19adf531ee67221e8be0 (patch)
treec43f7bfd5efa5a1ec6eb88160527df8cfc39edd6 /src
parentbf5b701b10b2e2c8ddeba1485e87cd22053d488d (diff)
Fix offline generator state not resetting when navigating back
In case the user chose to generate offline installer by clicking the "Create Offline Installer" button on ComponentSelectionPage, navigating back to the page did not reset the internal binary marker. This made it impossible to perform a normal installation afterwards. Fix by resetting the state on ComponentSelectionPage::entering(). Task-number: QTIFW-3236 Change-Id: I0951ec90e70dff9e8e233dee0cc5592c5c509c28 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagercore.cpp11
-rw-r--r--src/libs/installer/packagemanagercore.h3
-rw-r--r--src/libs/installer/packagemanagergui.cpp4
3 files changed, 18 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 6b409a778..0ed744ca0 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -3983,6 +3983,17 @@ bool PackageManagerCore::isPackageViewer() const
}
/*!
+ Resets the binary marker supplement of the installer to \c Default.
+ The supplement enables or disables additional features on top of the binary
+ marker state (\c Installer, \c Updater, \c PackageManager, \c Uninstaller).
+*/
+void PackageManagerCore::resetBinaryMarkerSupplement()
+{
+ d->m_magicMarkerSupplement = BinaryContent::Default;
+ emit installerBinaryMarkerChanged(d->m_magicBinaryMarker);
+}
+
+/*!
Sets the installer magic binary marker based on \a magicMarker and
userSetBinaryMarker to \c true.
*/
diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h
index 74d45007f..e0c27d6e3 100644
--- a/src/libs/installer/packagemanagercore.h
+++ b/src/libs/installer/packagemanagercore.h
@@ -29,6 +29,7 @@
#define PACKAGEMANAGERCORE_H
#include "binaryformat.h"
+#include "binarycontent.h"
#include "component.h"
#include "protocol.h"
#include "repository.h"
@@ -306,6 +307,8 @@ public:
void setPackageViewer();
Q_INVOKABLE bool isPackageViewer() const;
+ void resetBinaryMarkerSupplement();
+
void setUserSetBinaryMarker(qint64 magicMarker);
Q_INVOKABLE bool isUserSetBinaryMarker() const;
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index e0a66f49a..dd3a30a6e 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -2232,6 +2232,10 @@ void ComponentSelectionPage::entering()
}
d->showCompressedRepositoryButton();
d->showCreateOfflineInstallerButton(true);
+
+ // Reset to default supplement state. The page may set it to OfflineGenerator
+ // which needs to be reset after navigating back to the page.
+ core->resetBinaryMarkerSupplement();
}
/*!