diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index 99d0039701..382a9fc881 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -291,6 +291,8 @@ class PackageModel(QObject): disablePackageTriggered = pyqtSignal(str) + recentlyInstalledChanged = pyqtSignal(bool) + # --- enabling --- @pyqtProperty(str, notify = stateManageButtonChanged) @@ -370,6 +372,10 @@ class PackageModel(QObject): self._is_recently_installed = value self.stateManageButtonChanged.emit() + @pyqtProperty(bool, notify = stateManageButtonChanged) + def isRecentlyInstalled(self): + return self._is_recently_installed + @property def can_downgrade(self) -> bool: """Flag if the installed package can be downgraded to a bundled version""" diff --git a/plugins/Marketplace/resources/qml/ManageButton.qml b/plugins/Marketplace/resources/qml/ManageButton.qml index a423e90ff6..b2a3ec7f1b 100644 --- a/plugins/Marketplace/resources/qml/ManageButton.qml +++ b/plugins/Marketplace/resources/qml/ManageButton.qml @@ -19,6 +19,7 @@ RowLayout property string confirmedSecondaryText: confirmedMessageText.text property bool busy property bool confirmed + property bool confirmedTextChoice: true signal clicked(bool primary_action) @@ -228,6 +229,7 @@ RowLayout { target: confirmedMessage visible: true + text: manageButton.confirmedTextChoice ? manageButton.confirmedPrimaryText : manageButton.confirmedSecondaryText } } ] diff --git a/plugins/Marketplace/resources/qml/PackageCard.qml b/plugins/Marketplace/resources/qml/PackageCard.qml index 667c645c61..b43ea580ba 100644 --- a/plugins/Marketplace/resources/qml/PackageCard.qml +++ b/plugins/Marketplace/resources/qml/PackageCard.qml @@ -361,10 +361,9 @@ Rectangle secondaryText: catalog.i18nc("@button", "Uninstall") busySecondaryText: catalog.i18nc("@button", "Uninstalling...") confirmedSecondaryText: catalog.i18nc("@button", "Uninstalled") + confirmedTextChoice: packageData.isRecentlyInstalled enabled: !(enableManageButton.busy || updateManageButton.busy) - onStateChanged: print(packageData.displayName + " " + state) // TODO: Cleanup once you find out why this happens - onClicked: { if (primary_action)